Pull to refresh
13
Karma
0
Rating
Эдвард Саркисян @edwardoid

User

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

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

Читать дальше →
Total votes 12: ↑7 and ↓5 +2
Views 1.6K
Comments 8

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

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

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

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

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

Читать дальше →
Total votes 26: ↑15 and ↓11 +4
Views 4.7K
Comments 21

Information

Rating
Does not participate
Location
Yerevan, Армения
Date of birth
Registered
Activity