SimpleShell (working title)
- SimpleShell is meant to be a programming language to use in place of shell languages (POSIX sh, Bash, ...).
- SimpleShell compiles to POSIX sh, where the output is supposed to be human-readable.
- The syntax is de facto a mixture of sh, C and Haskell.
Variables
- Variables are local to their function or procedure; there are no (nested) variable scopes.
- All variables have static types. Same for function and procedure signatures.
Functions
- Functions are pure; they compute a single value from a list of arguments.
- Compare pure Haskell functions.
Procedures
- Procedures are similar to POSIX sh functions.
- Procedures take a list of arguments, and return a pair of exit code and return value.
- Procedures may receive data from stdin and write data to stdout and stderr.