[!] Pascal.js Алгоритмическая практика. Как подключиться к разработке

На этой странице собираем материалы, которые помогут подключиться к разработке Pascal.js

Программа подготовки PJS

    Базовая алгоритмическая подготовка

  1. Решите на Паскале и/или JS Задачку №12 Урока 18, про расчет выражений вида за один проход строки:
     Входные данные   Результат 
    
    5+2               7
    1-2*5+2          -7
    5*6+7-3*2+11      42
    5*6+7-3*2*3+11    30
    
  2. Решите на Паскале и/или JS Задачку №8 Урока 22, про расчет выражений вида:
    5*(3+4)-7*9+3*(2+(2-7))
    

    с помощью рекурсии.

  3. Теоретическая подготовка

  4. Знание основ JavaScript (Для нашего проекта достаточно прочитать все из раздела "Часть 1": https://learn.javascript.ru/
  5. Формы Бэкуса-Наура (Теория + задачи №1-5)
  6. Настройка среды разработки

  7. Если ещё не знакомы - познакомьтесь с Линуксом (можно установить на виртуальную машину)
  8. Зарегистрируйтесь на https://github.com
  9. Настроим среду разработки (VsCodium, Git)
  10. Вводный проект pascal.js-intro

  11. Разворачиваем pascal.js-intro
  12. Обзор кода проекта в стартовом состоянии
  13. Ознакомьтесь: ФБН поддерживаемых выражений на момент старта работы с репозиторием
  14. И далее можно переходить к задачам (см. инструкцию по оформлению):

  15. Задача 1: Реализуйте поддержку унарного минуса
  16. Задача 2: Реализуйте поддержку выражений со скобками
  17. Задача 3: Реализуйте поддержку переменных
  18. Задача 4: Поддержка цепочки присваиваний -- pascal.js
  19. Переходим к реальному проекту

  20. Запросите у более опытных участников персональную задачу по добавлению новых возможностей в "боевой" интерпретатор (тот что используется в деле, а не учебный pascal-js.intro)

Дополнительные материалы (не обязательно)

Видео (дополнительно)

См. плейлист: https://www.youtube.com/playlist?list=PL...

Что почитать

Берем книжку Л. А. Залогова -- Разработка Паскаль-компилятора [Электронный ресурс] / . — 4-е изд. (эл.)
и читаем:

  • Главы 1, 2, 3, 4
  • Главы 6 "Семантический анализатор"
  • Главы 7 "Введение в генерацию кода"
  • Глава 9 "Организация оперативной памяти во время выполнения программы"

-- или все главы книжки, по желанию. Наша реализацию будет отличаться в некоторым моментах.

Далее переходим к практике.