FLISL is short for Forth Like Interpreted Scripting Language, it is meant for embedding into other programs.
It is a bit different than Forth. It is simpler, so it doesn't have as many commands, but you can add some in whatever program it is being embedded in.
A few of the features are:
- Control-flow blocks are always delimited with square brackets, and the word that isn't a square bracket by itself actually does something, while square brackets by themself do nothing other than begin/end blocks
- Stack marking, allowing you to deal with many values at once
- Labels and GOTO, in addition to more structured programming contructs
- "If ... else if ... else ... end if" blocks. An example: aaa IF[ bbb ]ELSE ccc IF[ ddd ]ELSE[ eee ]
- Many abbreviations
Here is an example which calculates a fibonact sequence (assuming the existence of OUTPUT command, which is non-standard):
1 1 [ SWAP OVER + DUP OUTPUT ]LOOP
With abbreviations, it is:
1 1 [ S; O; + D; OUTPUT ]LOOP