Як написати інтерпретатор

Щоб створити інтерпретатор, треба написати парсер вихідного коду, цикл виконання байт-коду і величезна кількість кодів стандартної бібліотеки. Це не завжди весело і просто, якщо не скористатися інструментами, які будуть генерувати компілятор і парсер для вас. З ними написати інтерпретатор мови для знаючої людини буде простіше простого. Розглянемо на прикладі написання інтерпретатора з JIT на PyPy.
Як написати інтерпретатор




Інструкція
1
Оберіть мову для написання. В даному випадку це brainfuck. Він дуже простий і складається з стрічки цілих чисел, які ініціалізовані нулем, і 1 покажчика на поточну комірку у стрічці. У мові всього вісім команд: «>» - переміщення покажчика в наступну комірку, «
2


Напишіть інтерпретатор на звичайному Пітоні. Лічильник команд буде зберігати покажчики на поточну інструкцію. Перший вираз витягне інструкцію, після декілька операторів визначать, як її виконати. Опустіть реалізацію операторів «[» і «]», оскільки вони повинні поміняти лічильник команд на становище такий же дужки.
3
Реалізуйте клас Tape, який зберігає покажчик на поточне число і стрічку цілих чисел. Стрічка з потреби буде збільшуватися. Парс вихідний код заздалегідь, щоб безліч коментарів не читалися по одному байту. Зробіть заодно словник для дужок, щоб при необхідності можна було знайти в ньому парні дужки.
4
Виконайте def parse (program). Ця функція повертає рядки тільки з команд і словника парних дужок.
5
З'єднайте все, що вийшло, і ви отримаєте робочий інтерпретатор brainfuck. Запустіть інтерпретатор на Python і переконайтеся в його працездатності. Це лише одиничний випадок написання інтерпретатора з використанням найпростішого мови. При бажанні писати можна практично на будь-якій мові, ознайомившись з його властивостями і призначенням.
Переглядів: 2826

Увага, тільки СЬОГОДНІ!