GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - terencode/SAIL: SAfe Interactive Language

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

203 Commits
203 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
bin
bin
 
 
examples/imperative
examples/imperative
 
 
media
media
 
 
src
src
 
 
test/blackbox-tests
test/blackbox-tests
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
dune-project
dune-project
 
 
grammar.bnf
grammar.bnf
 
 
sail-pl.opam
sail-pl.opam
 
 
sail.el
sail.el
 
 

Repository files navigation

SaIL Banner

SAIL aims at improving safety in Reactive Domain Specific Languages. It is a simple imperative programming language with support for synchronous concurrent processes. By synchronous, we mean that processes share a logical clock as in Esterel like-language. Processes are cooperative, communicate through shared memory and synchronize by means of broadcasted signals. As Esterel and Fairthread/C, SAIL is control oriented. Causality issues are put aside by delaying reaction to absences as in Fairthread/C.

SAIL stands for SAfe Interactive Language

The long term objectives are :

  • safe, garbage collection free, memory handling with an ownership type system (largely inspired by the rust type system, but with a specific management of shared memory better suited to cooperative programming)
  • efficient parallel scheduling of memory independent processes
  • program proof support

The language propose the following features :

  • ground data types, structures and enumeration
  • imperative methods
  • parallel composition of processes
  • cooperative processes which may
    • emit signal, execute on behalf of a signal and preempt on behalf of a signal

The grammar of the language can be found in 'grammar.bnf' and several examples are provided in 'examples'. To test SAIL you need an ocaml toolchain (ocaml compiler, dune and some additional packages)

  • clone the repository
  • run 'dune build' and then 'dune install'
  • you can compile a file 'filename.sl' using the command sailc filename.sl
  • you can run the test by using the script 'runtest.sh' in 'examples'

type sailc --help for more options

About

SAfe Interactive Language

Resources

Readme
License
Activity

Stars

2 stars

Watchers

1 watching

Forks

1 fork
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.