Составители:
134
INTERCAL [9.8]
Первым из таких языков стал INTERCAL, созданный двумя
студентами Принстона в 1972 г. Предназначение языка – полностью
отличаться от существовавших на тот момент языков программирования,
таких как FORTRAN, COBOL и ассемблер, при этом пародируя их. В
руководстве языка справедливо отмечается, что язык иллюстрирует тот
факт, что зачастую человек, чья работа никому непонятна, пользуется
большим уважением начальства и окружающих. Большинство
стандартных операций в нем оказываются нетривиальными, язык
насыщен парадоксальными конструкциями, такими как COME FROM,
FORGET или PLEASE ABSTAIN FROM CALCULATING (пожалуйста,
воздержись от вычислений). По аналогии с разделом «Приложение»
(Appendix, т.е. аппендикс) в обычных языках, INTERCAL содержит
раздел «Миндалины». В языке используются разные модификаторы,
например такие как «ПОЖАЛУЙСТА». Этот модификатор
предусматривает два основания для получения ошибки компилятора:
если он используется в программе недостаточно часто, то программа
считается невежливой, а если слишком часто, то программа отвергается
как слишком вежливая. В то же время фрагменты кода, которые
действительно должны вызывать ошибку компиляции, тот же
компилятор попросту пропускает, будто «закомментированные».
Тем не менее, язык обладает полнотой по Тьюрингу, и может
решить любую задачу, которую машина Тьюринга способна решить,
предъявляя минимальные требования к объему памяти. Но делать это
будет очень медленно. Задача «решето Эратосфена», написанная на
INTERCAL, в 1992 г. на компьютере SPARCStation-1 выполнилась за 19
часов против результата 0,5 секунды, полученного на С.
Brainfuck
Язык brainfuck, созданный в 1993 г. немцем Урбаном Мюллером,
одной из целей разработки имел создание самого маленького
компилятора. В отличие от INTERCAL'а язык создавался скорее для
проверки концепции минимализма, чем для насмешки. Некоторые из
компиляторов к языку занимают меньше 200 байт, а сам язык содержит
всего 8 команд (> < + – . , [ ]). Программа на brainfuck представляет
собой последовательность этих команд (все другие символы
игнорируются и воспринимаются как комментарии). Указатель команд
начинает с первой команды, и после её выполнения обычно переходит к
следующей команде. Программа заканчивается, когда указатель команд
выходит за последнюю команду. Помимо программы и указателя команд
язык использует также массив не менее 30 кбайт, инициализируемых
одним нулем, указатель данных и два байтовых потока для ввода и
вывода. Язык также обладает Тьюринговой полнотой.
Страницы
- « первая
- ‹ предыдущая
- …
- 130
- 131
- 132
- 133
- 134
- …
- следующая ›
- последняя »