Как стать автором
Обновить
14
0
Эдвард Саркисян @edwardoid

Пользователь

Отправить сообщение

Пишем интерпретатор для своего эзотерического языка (часть 2)

Время на прочтение5 мин
Количество просмотров1.7K
Напомню, что в предыдущей статье я поставил задачу написать интерпретатор для надстройки над Brainfuck. Естественно, что для начала нужно было реализовать сам Brainfuck, и только затем переходить к надстройке. Благо в предыдущей статье эта часть была реализована. Собственно опишем то, что следует реализовать в этой части:
  1. Понятие функции(процедуры).
  2. Комментарии.

Читать дальше →
Всего голосов 12: ↑7 и ↓5+2
Комментарии8

Пишем интерпретатор для своего эзотерического языка

Время на прочтение4 мин
Количество просмотров5K
За основу я взял язык Brainfuck он настолько мал, что можно немного расширив получить практически новый и достаточно функциональный язык программирования. И при этом не потерять изюминку исходного языка – мой язык будет все так же терзать мозг программиста, как и его родитель!

Итак, Brainfuck. Вкратце, идея такая, есть N регистров/ячеек. У программиста есть доступ к ним всем но перемещения по ним делаются явным образом. Т.е. из ячейки 2 нельзя перейти к ячейке 7 сразу, нужно последовательно.

“Ключевые слова” языка:

  • > – перейти на ячейку вправо.
  • < – перейти на ячейку влево.
  • + – увеличить значение ячейки на единицу.
  • — – уменьшить значение ячейки на единицу.
  • , – прочесть значение в ячейку со стандартного устройства ввода.
  • . – напечатать значение ячейки стандартным устройством вывода.
  • [ – начать цикл while если значение текущей ячейки не равно 0 и перейти к следующей ячейке.
  • ] – конец блока while. Продолжить цикл, если значение “условной” ячейки не равно 0 ( “условная ячейка” — ячейка на которой начался цикл ).

Читать дальше →
Всего голосов 26: ↑15 и ↓11+4
Комментарии21

Информация

В рейтинге
Не участвует
Откуда
Yerevan, Армения
Дата рождения
Зарегистрирован
Активность