Announcements

Последна лекция по ООП на КН 2 и СИ 1,2,3

Последна лекция по ООП на КН 2 и СИ 1,2,3

by Калин Николов -
Number of replies: 0

Здравейте, Колеги:


На следващата (и последна) лекция по ООП за спец. КН поток 2 и спец. СИ групи 1, 2 и 3 ще разгледаме следните теми:

  • Separation of Concerns
  • Visitor Pattern
  • Използване на Graphviz за визуализация на структури от данни
  • Допълване на учебния език за програмиране с променливи
  • Допълване на учебния език за програмиране с последователност на операциите
  • Допълване на учебния език за програмиране вход и изход

За пълноценно протичане на лекцията е добре да разгледате материали online (по ваш избор) за Visitor Pattern (напр. в Wikipedia). 

Разгледайте последните 4 ревизии на учебния интерпретатор:

https://github.com/stranxter/lecture-notes/tree/master/samples/02_oop/2017/interpreter

Разгледайте направените промени в последователните ревизии. Оставям на вас да решите дали да ползвате инструмент за сравнение на ревизиите и съответно - кой. 

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

  • Да се дефинира Visitor, с чиято помощ може да се намери броя на всички оператори IF в програмата
  • Да се дефинира Visitor, с чиято помощ може да се намери максималната дълбочина на вложения в програмата (или височината на абстрактното синтактично дърво)
  • Да се дефинира Visitor,  с който програмата да се отпечатва "прегледно". Например, при вход:
if ( 1 + 2 ) then if 3 then 4 else 5 else 6

Да се отпечата същата програма по следния начин:

if ( 1 + 2 )
   then if 3
           then 4
           else 5
    else 6