λanguage: Як реалізувати мову програмування на JavaScript

Цей переклад статті є спробою донести інформацію про створення мови програмування на JavaScript до українського читача. Оригінальна стаття була опублікована на блогі автора. Сподіваюся, що цей переклад буде корисним для тих, хто цікавиться створенням власних мов програмування та розвитком у ІТ галузі.
Автор: Joan Gamell. Опубліковано на Unsplash

Це навчальний посібник з реалізації мови програмування. Якщо ви коли-небудь писали інтерпретатор або компілятор, то, ймовірно, тут немає нічого нового для вас. Але якщо ви використовуєте регулярні вирази для "розбору" чогось, що схоже на мову програмування, то, будь ласка, прочитайте хоча б розділ про синтаксичний аналіз. Давайте писати менше помилок!

Ви завжди можете звернутися назад, якщо щось не зрозуміли. Крім того, питання і відгуки дуже вітаються! [[email protected]]

Цільова аудиторія - середній JavaScript / NodeJS програміст.

Що ми будемо вивчати:

  1. Що таке парсер і як його писати.

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

  3. Продовження (continuations) і чому вони важливі.

  4. Написання компілятора.

  5. Як перетворити код на стиль передачі продовження (continuation-passing style).

  6. Кілька базових технік оптимізації.

  7. Приклади того, що нового принесе наша мова порівняно з простим JavaScript.

Протягом цього часу я буду аргументувати, чому Lisp - велика мова програмування. Однак мова, над якою ми працюватимемо, не є Lisp. Вона має більш розгалужений синтаксис (класичний інфіксний запис, який знає кожен) і буде приблизно такою ж потужною, як Scheme, за винятком макросів. На жаль або на щастя, макроси - це останній бастион Lisp, щось, що іншим мовам просто не вдається завоювати (якщо вони не називаються діалектами Lisp). [Так, я знаю про SweetJS..., але не цілком.]

Але спочатку давайте вигадаємо мову програмування.

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Romashka
Romashka@Romashka

Створюю інтерпретатор Mash Src

65Прочитань
1Автори
1Читачі
На Друкарні з 16 березня

Більше від автора

  • λanguage: Написання парсера

    Написання парсера - це досить складне завдання. У сутності, він повинен перетворити фрагмент коду у "абстрактне синтаксичне дерево". Це структуроване представлення програми в пам'яті, воно абстрактне в тому сенсі, що не має значення, з яких саме символів складається вихідний код.

    Теми цього довгочиту:

    Парсер
  • λanguage: Неформальний опис мови

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

    Теми цього довгочиту:

    Js

Вам також сподобається

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається