[!] 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. Если ещё не знакомы - познакомьтесь с Линуксом (можно установить на виртуальную машину)
  5. Установим среду разработки VsCodium, настроим её, познакомимся с рабочими пространствами и запуском скриптов.
  6. Теоретическая подготовка

  7. Базовый Javascript (познакомимся с синтаксисом, с учётом того, что уже умеем писать несложные программы на каком-либо языке)
  8. Формы Бэкуса-Наура (Теория + задачи №1-5)
  9. Git

  10. Зарегистрируйтесь на https://github.com
  11. Настроим и разберемся с основами работы с Git
  12. Вводный проект pascal.js-intro

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

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

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

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

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

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

Что почитать

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

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

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

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