Керівництво по створенню інтерпретатора мови Pascal на Python


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Пропонуємо Вам серію статей, опубліковану в блозі Руслана Співака. В ній автор детально описує процес розробки базового інтерпретатора. Серія поповнюється, і в цій підбірці Ви знайдете перші частини керівництва.

Приклади коду наведені на Python, проте детальні пояснення дозволять читачеві використати для реалізації будь-яку іншу зручну мову. Як інтерпретована мова вибрана Pascal, проте і тут Ви не будете обмежені – можна звернутися до будь-якої іншої мови, із семантикою якої Ви добре ознайомлені.

Якщо Ви не знаєте, як працює компілятор, то Ви не знаєте, як працює комп’ютер. І якщо Ви не впевнені на 100 %, що знаєте, як працює компілятор, то Ви не знаєте, як він працює. – Стів Йіг

Невеликий лікнеп перед прочитанням. Компілятор – програма, яка перекладає (транслює) вихідний код мовою програмування (високого рівня) на мову, “зрозумілішу комп’ютеру” (низького рівня). При цьому програма спочатку повністю транслюється, а потім виконується. Інтерпретатор – такий самий транслятор, але виконує інструкції “на льоту” (пооператорно, відрядково), тобто без попередньої компіляції всього коду.

Відмінність між компілятором та інтерпретатором

Чому Вам треба створити свій інтерпретатор?

  1. Написати компілятор – означає задіяти та/або розвинути відразу декілька різних технічних навичок. Причому навичок, які виявляться корисними в програмуванні взагалі, а не тільки при написанні трансляторів.
  2. Ви наблизитесь до розгадки таємниці, як саме працюють комп’ютери. Компілятори та інтепретатори – це магія. І треба почуватись комфортно при роботі з цією магією.
  3. Ви зможете створити власну мову програмування, що заповнює видимі Вам недоліки наявних. Як відомо, це, по-перше, зараз модно, а по-друге, за удачі Ви набудете світової популярності.
  4. Чим Вам ще зараз можна зайнятися? (До речі, ми вже пропонували Вам декілька варіантів на зимові канікули і літо.)

Що приємно, статті детально ілюструються. Створюється враження, що автор читає Вам справжню лекцію. Ось, наприклад, одна із синтаксичних діаграм:

Наприкінці кожної частини керівництва дається декілька задач для самостійної реалізації і список корисних книг для глибшого вивчення питання. Отже, тепер приступайте до читання:

Частина 1. Основні поняття, розбиття на токени і складання однозначних чисел.

Частина 2. Обробка пробільних символів, багатозначні числа.

Частина 3. Синтаксичні діаграми, поодиноке множення і ділення.

Частина 4. Множинні множення і ділення, форма Бекуса-Наура.

Частина 5. Калькулятор з довільним числом операцій, асоціативність і порядок виконання операторів.

Частина 6. Закінчуємо калькулятор: довільний рівень вкладеності.

Частина 7. Базові використовувані структури даних. Також рекомендуємо цю серію статей.

Частина 8. Унарні оператори.

Частина 9. Оголошення програми, складені оператори, привласнення, таблиці символів і обробка змінних.

Частина 10. Продовження попередньої частини керівництва. Обробка коментарів.

Серія буде поповнюватися, а поки що можете звернутися до одного з посібників, які рекомендує автор наприкінці кожної частини.

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *