False - це 1

  1. щоб можна було написати компілятор для нього розміром не більше одного кілобайт.
  2. придумати синтаксис. який би виглядав кодуванням. випадковим набором символів.

Разом з тим FALSE - все ще досить практичний мову програмування. Хоча його і відрізняє write-only синтаксис, він підтримує розумний набір операцій, на відміну від що є реалізацією варіанту машини Тьюринга Brainfuck, не кажучи вже про таких жахливих мовах як INTERCAL і Malbolge. Джерелом ідей для FALSE була мова Forth. його синтаксис також нагадує синтаксис відомого калькулятора dc для UNIX (зі зворотним польської нотацією). Одним з основних джерел складності при програмуванні на FALSE є використання екзотичних знаків пунктуації (не розділяти пробілами) замість форт-слів.

базові операції

Арифметичні операції +. -. *. і / беруть з вершини стека два верхні елементи і повертають туди, відповідно, суму, різницю, добуток або приватна. Знак підкреслення _ - це унарна операція зміни знака числа, що лежить на вершині стека. Логічні операції в FALSE це бінарні =.>. . | і унарна операція логічного заперечення

Досить екзотичний синтаксис в FALSE мають стекові операції:

  • $ - Дублює вершину стека (в форте DUP): 0 1 $ → 0 1 1
  • % - Видаляє вершину стека (DROP): 0 1% → 0
  • \ - Міняє місцями два верхні елементи стека (SWAP): 0 1 2 \ → 0 2 1
  • @ - Циклічна перестановка трьох верхніх елемента стека (ROT): 0 1 2 3 @ → 0 2 3 1
  • ø - Копіює n-й елемент стека на вершину (PICK): 7 8 9 2ø → 7 8 9 7

Змінні і підпрограми

Змінні в FALSE позначаються однією рядкової латинською літерою (a-z), всі змінні глобальні.

Для присвоювання змінній значення (взятого з вершини стека) використовується операція двокрапка. так 3a: привласнює змінної a значення 3. Щоб покласти значення змінної на стек використовується символ крапка з комою; .

Однак, оскільки FALSE - стековий мову, змінні рідко бувають потрібні для зберігання звичайних числових значень. Найчастіше вони використовуються в ролі функцій - в них зберігаються лямбда-вирази. напр .:

Це визначення функції інкремент. і їй дається ім'я i (все, що знаходиться між '[' і ']' - це і є лямбда-вираз). Для виконання лямбда-вирази використовується операція. якщо ж воно збережено в змінній - виклик приймає форму;.

керуючі конструкції

У FALSE є дві керуючі конструкції if (позначається.) І while - #. Ось приклади їх використання:

Якщо a = 1, привласнити b значення 3.

Поки a = 1, застосовувати функцію f до значення 2.

Ввід вивід

Рядки в FALSE - це все, що укладено між двома лапками ". Рядок можна покласти на стек або зберегти у змінній, однак вона може бути частиною лямбда-вирази. При виконанні рядка вона просто виводиться. Напр .:

Для виведення цілого числа використовується операція точка. для виведення символу - кома. Для читання символу - операція ^. Операція ß викликає скидання (flush) потоків введення і виведення (stdin. Stdout).

Приклад визначення функції факторіал на FALSE:

Реалізація

FALSE був реалізований як написаний на асемблері для процесорів 68000 компілятор розміром 1024 байт і переносимо інтерпретатор. написаний на Сі (на сайті доступна виконується версія для DOS). Є також реалізація інтерпретатора і компілятора для 386 DOS на ANSI Forth.

варіанти FALSE

Є написаний на ML функціональний варіант мови Strictly False. Ще одне функціональне розширення FALSE - мова F (Functional False), написаний на K (і реалізація «чистого» FALSE на тій же мові [2])

Зокрема, owl розрізняє цілі змінні і змінні-функції. Перші позначаються великими літерами, другі малими. Для присвоювання значень і тим і іншим використовується кома. а для отримання значення або запуску функції - @. Крім того у віртуальній машині owl присутній 1 масив, довжина якого за замовчуванням дорівнює 32Кбайт, для роботи з яким використовується операції #, і # @ (а також @, і @@ для функцій).

Як if і while використовуються символи. і. ці операції розрізняють знаходиться на стеку одне або два лямбда-вирази. Так якщо лямбда-виразів два. працює як if ... then ... else.

Операції ^ і. служать, відповідно, для зведення в ступінь і добування кореня. Для роботи зі стеком використовують такі операції:

Символи дужок використовуються для введення-виведення: (і) введення і виведення символу, <и> - введення і виведення рядка, <— ввод чисел (операция меньше — отсутствует, вместо него используется $> ).

owl також дозволяє підключати inc файли _] inc.owl [. або запускати зовнішні owl програми _ [file.owl].

Інтерпретатор owl написаний на Сі і кроссплатформенную. Під Windows не підтримуються можливості налагодження і профілювання, не працює функції _t для отримання поточного часу.

Тепер розглянемо програму виведення простих чисел на false і її переклад на owl:

Наступний приклад - програма обчислення факторіала.

Примітки

Основні мови програмування (порівняння • IDE • історія • хронологія)

використовувані
в розробці

Дивитися що таке "FALSE" в інших словниках:

False - False, a. [Compar. ; superl. .] [L. falsus, p. p. of fallere to deceive; cf. OF. faus, fals, F. faux, and AS. fals fraud. See,.] 1. Uttering falsehood; unveracious; given to deceit; dishnest; as, a false witness. ... ... The Collaborative International Dictionary of English

false - adj 1: not genuine, authentic, or legitimate compare counterfeit 2 a: not true or correct; esp: intentionally or knowingly untrue or incorrect injured by false accusations b: intended to mislead or deceive: decept ... Law dictionary

false - W3S3 [fo: ls US fo: ls] adj ▬▬▬▬▬▬▬ 1| (untrue) | 2| (wrong) | 3| (not real) | 4| (not sincere) | 5 false economy 6 under false pretences 7 false move / step 8 false imprisonment / arrest ▬▬▬▬▬▬▬ [Date: 900 тисячі ;. Latin; ... Dictionary of contemporary English

false - adj 1 False, wrong mean not in conformity with what is true or right. False in all of its senses is colored by its original implication of deceit; the implication of deceiving or of being deceived is strong when the term implies a contrariety ... ... New Dictionary of Synonyms

false - [fôls] adj. falser, falsest [ME

false - [fɔls] adjective ** 1.) not true: The report was dismissed as totally false. a false statement / claim / accusation ─ opposite TRUE 2.) made to look like something real: ARTIFICIAL: false eyelashes a) not real and intended to trick people: a ... ... Usage of the words and phrases in modern English

false - [fɔːls ǁ fɒːls] adjective 1. not true or real, but intended to look real in order to deceive people: • false and misleading advertisements • Firms issuing false certificates might be subject to lawsuits. 2. a false economy something that you ... ... Financial and business terms

false - fȯls adj, fals · er; fals · est 1) not corresponding to truth or reality 2) artificially made 3) of a kind related to or resembling another kind that is usu. designated by the ... ... Medical dictionary