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