Превођење програмских језика

Курс Превођење програмских језика је обавезан курс на трећој години И смера у оквиру којег се проучавају основни концепти превођења програмских језика (лексичка и синтаксичка анализа).

Предметни наставници

Асистенти

Главни и основни извор информација је званична страница курса.

Програм курса

  1. Регуларни изрази
    1. Алати командне линије са регуларним изразима
    2. Регуларни изрази у Python
  2. Лексичка анализа у Flex
  3. Синтаксичка анализа у Bison
  4. Синтаксна стабла
  5. Синтаксичка анализа наниже (рекурзивни спуст и потисни аутомати)

Литература за вежбе

  1. Искоментарисани кодови из 2023/2024 (одељак Materijali sa časova)
  2. Владимир Кузмановић, Ана Вуловић, Збирка задатака из Превођења програмских језика
  3. GitHub репозиторијум одржаних часова мојих вежби из 2024/2025.
  4. Скрипта за синтаксна стабла (уз пратеће видео снимке)

Препоруке за учење

Први извор за спремање вежби су кодови из ставке 1 са списка литературе. Ту можете наћи све што је пређено на вежбама. За детаљнија објашњења можете да користите збирку из ставке 2 коју већина примера који се могу наћи у 1 прате. Она покрива све теме програма осим синсаксних стабала, за њу можете користити скрипту из ставке 4 пропаћену кодовима из 3.

Дакле, кодови из 1. ставке за све, и још додатно, по градиву:

  1. Регуларни изрази - збирка (поглавље 1)
    1. Алати командне линије са регуларним изразима - збирка (поглавље 2)
    2. Регуларни изрази у Python-у - збирка (поглавље 3)
  2. Лексичка анализа у Flex-у - збирка (поглавље 5)
  3. Синтаксичка анализа у Bison-у - збирка (од секције 8.2 до краја поглавља 8)
  4. Синтаксна стабла - скрипта уз кодове
  5. Синтаксичка анализа наниже (рекурзивни спуст и потисни аутомати) - збирка (поглавље 7) и може бити корисна теорија око формирања скупова избора са предавања

Када је наведена секција подразумева се у целини. Међутим, кодови са часова могу да служе као филтер задатака које треба прећи из одговарајућих секција. Наравно, пожељно урадити што више примера.