Показать сообщение отдельно
Старый 08.10.2009, 17:36   #1
Tronix
Знающий
 
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений
(для 331 пользователей)
Интерпретатор языка brainfuck

В последнее время заинтересовал принцип написания компиляторов/интерпретаторов. Начал с простого и весьма, судя по форуму, боянистого - интерпритатора языка brainfuck.

Писал на Virtual Pascal, но так же компилится и на Free Pascal (только у exe-шника уж совсем размер какой-то не приличный получается). Возможно будет и на дельфях как консольное приложение, но у меня их не стоит, проверить не могу. Исходный код, пара забавных программ на brainfuck прилагаются.
В самом интерпритаторе применяется некоторая оптимизация, например сочитание операторов [-], [+] расценивается как установка текущей ячейки в ноль; операторов [<],[>] - как поиск первой левой или правой ячейки содержащей ноль; и длинные наборы операторов ++++++, --------, <<<<<<, >>>>>> выполняются как одна инструкция, а не по одиночке.

Запуск: brainfk <имяфайла.bf>

UPD: Добавил поддержку ANSI-последовательностей, например для hanoi.b Новые версии и подробности тут: http://tronix286.pochta.ru/brainfk/index.htm
Вложения
Тип файла: zip brainfk.zip (46.9 Кб, 1294 просмотров)

Последний раз редактировалось Tronix, 11.10.2009 в 19:29.
(Offline)
 
Ответить с цитированием