MontiLang is a stack-oriented imperative programming language.
Programming in MontiLang is done through the use of imperative statements. As an alternate to functions, MontiLang uses user defined statements that can take input as items from the parameter stack. Unlike other similar concatenative languages such as forth, cat and joy, MontiLang supports the use of variables, processor statements and other similar higher level programming constructs.
Here is an example 'fizzbuzz' program written in MontiLang
/# loops through numbers 1-100. Prints 'Fizz' if it is a multiple of 3, 'Buzz' if it is a multiple of 5, 'FizzBuzz' if it is a multiple of both, or the number if neither #/ &DEFINE LOOP 100& 1 VAR i . FOR LOOP || VAR ln . i 5 % 0 == IF : . ln |Buzz| + VAR ln . ENDIF i 3 % 0 == IF : . ln |Fizz| + VAR ln . ENDIF ln || == IF : . i PRINT . ENDIF ln || != IF : . ln PRINT . ENDIF i 1 + VAR i . ENDFOR
View montilang at https://lduck11007.github.io/MontiLang or https://github.com/lduck11007/MontiLang. Or contact the developer at http://whiteheadsoftware.dev