
Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.
Пропонуємо Вам серію статей, опубліковану в блозі Руслана Співака. В ній автор детально описує процес розробки базового інтерпретатора. Серія поповнюється, і в цій підбірці Ви знайдете перші частини керівництва.
Приклади коду наведені на Python, проте детальні пояснення дозволять читачеві використати для реалізації будь-яку іншу зручну мову. Як інтерпретована мова вибрана Pascal, проте і тут Ви не будете обмежені – можна звернутися до будь-якої іншої мови, із семантикою якої Ви добре ознайомлені.
Якщо Ви не знаєте, як працює компілятор, то Ви не знаєте, як працює комп’ютер. І якщо Ви не впевнені на 100 %, що знаєте, як працює компілятор, то Ви не знаєте, як він працює. – Стів Йіг
Невеликий лікнеп перед прочитанням. Компілятор – програма, яка перекладає (транслює) вихідний код мовою програмування (високого рівня) на мову, “зрозумілішу комп’ютеру” (низького рівня). При цьому програма спочатку повністю транслюється, а потім виконується. Інтерпретатор – такий самий транслятор, але виконує інструкції “на льоту” (пооператорно, відрядково), тобто без попередньої компіляції всього коду.

Відмінність між компілятором та інтерпретатором
Чому Вам треба створити свій інтерпретатор?
- Написати компілятор – означає задіяти та/або розвинути відразу декілька різних технічних навичок. Причому навичок, які виявляться корисними в програмуванні взагалі, а не тільки при написанні трансляторів.
- Ви наблизитесь до розгадки таємниці, як саме працюють комп’ютери. Компілятори та інтепретатори – це магія. І треба почуватись комфортно при роботі з цією магією.
- Ви зможете створити власну мову програмування, що заповнює видимі Вам недоліки наявних. Як відомо, це, по-перше, зараз модно, а по-друге, за удачі Ви набудете світової популярності.
- Чим Вам ще зараз можна зайнятися? (До речі, ми вже пропонували Вам декілька варіантів на зимові канікули і літо.)
Що приємно, статті детально ілюструються. Створюється враження, що автор читає Вам справжню лекцію. Ось, наприклад, одна із синтаксичних діаграм:
Наприкінці кожної частини керівництва дається декілька задач для самостійної реалізації і список корисних книг для глибшого вивчення питання. Отже, тепер приступайте до читання:
Частина 1. Основні поняття, розбиття на токени і складання однозначних чисел.
Частина 2. Обробка пробільних символів, багатозначні числа.
Частина 3. Синтаксичні діаграми, поодиноке множення і ділення.
Частина 4. Множинні множення і ділення, форма Бекуса-Наура.
Частина 5. Калькулятор з довільним числом операцій, асоціативність і порядок виконання операторів.
Частина 6. Закінчуємо калькулятор: довільний рівень вкладеності.
Частина 7. Базові використовувані структури даних. Також рекомендуємо цю серію статей.
Частина 8. Унарні оператори.
Частина 9. Оголошення програми, складені оператори, привласнення, таблиці символів і обробка змінних.
Частина 10. Продовження попередньої частини керівництва. Обробка коментарів.
Серія буде поповнюватися, а поки що можете звернутися до одного з посібників, які рекомендує автор наприкінці кожної частини.
Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?