Wouter's FALSE
Реализация языка программирования FALSEРеализация языка FALSE, созданная автором языка Wouter van Oortmerssen в 1993 году. В дистрибутив входит компилятор, написанный на ассемблере для процессора 68000, и интерпретатор на C.
Ссылки:
Примеры:
Hello, World!:
Пример для версий Morphett's FALSE, Wouter's FALSE 1.2.CFСтрока эквивалентна команде вывода ее содержимого на печать.
"Hello, World!"
Факториал:
Пример для версий Morphett's FALSE, Wouter's FALSE 1.2.CFИспользуется итеративное вычисление факториала. В переменных i
и f
хранятся текущее число (счетчик цикла) и текущее значение факториала. После инициализации переменных начинается цикл: [i;17=~]
— условие продолжения цикла: пока i не равно 17. Затем следует тело цикла, в котором выводится значение i
и символьная константа, затем i
увеличивается на 1, выводится старое значение факториала и вычисляется новое.
Для Wouter’s FALSE 1.2.CF значения факториала 13 и больше вычисляются с ошибкой из-за переполнения.
0i: 1f:
[i;17=~]
[i; $."! = " 1+$i: f;$.10, *f:]
#
Числа Фибоначчи:
Пример для версий Morphett's FALSE, Wouter's FALSE 1.2.CFИспользуется итеративное вычисление чисел Фибоначчи. Текущие числа хранятся в переменных a
и b
, счетчик цикла — в i
.
Второй цикл примера очищает содержимое стека (числа Фибоначчи, записанные в него первым циклом). Некоторые интерпретаторы позволяют оставлять данные в стеке после конца работы программы, но, к примеру, Wouter’s FALSE 1.2.CF требует, чтобы стек был пустым, и выдает ошибку выполнения в противном случае.
0i: 1a: 1b:
[i;16=~]
[a; $. ", " $ b; $ a: + b: i;1+i:]
#
"..."
[1=~]
[]
#
%
CamelCase:
Пример для версий Wouter's FALSE 1.2.CFЭтот пример аналогичен примеру для Morphett’s FALSE, за исключением того, что в Wouter’s FALSE 1.2.CF признаком конца ввода является конец строки, поэтому условие продолжения цикла использует сравнение с 10. Кроме того, % в конце программы очищает стек от оставшегося там значения.
1_s: ^
[$10=~]
[ $$ 96> \123\> & [32-]?
$$ 64> \91\> & $l: [s;~[32+]? , 0s:]? l;~[1_s: %]?
^]
#
%
Комментарии
]]>blog comments powered by Disqus
]]>