Часть II. Формальное описание языков программирования(Формальная спецификация формальных языков) презентация

Атрибутная грамматика ::= .symtab := emptystack ::= begin ; end .symtab := push(.tbl, .symtab) 1 ::= .symtab := 1.symtab | ; 2 .symtab := 1.symtab

Слайд 1Часть II. Формальное описание языков программирования (Формальная спецификация формальных языков)
Приложение.
Атрибутная грамматика языка

IMP

Слайд 2Атрибутная грамматика
::=
.symtab := emptystack
::= begin ;

end
.symtab :=
push(.tbl, .symtab)
1 ::=
.symtab := 1.symtab
| ; 2
.symtab := 1.symtab
2.symtab := 1.symtab


Слайд 3Декларации
1 ::=
1.tbl := .tbl
| ; 2
1.tbl :=
.tbl ∪ 2.tbl
Условие:
ids(.tbl)

∩ ids(2.tbl) = ∅
ids – функция, которая получает множество вида имя-тип и возвращает множество всех имен

Слайд 4Возврат к .symtab
::= begin ; end
.symtab :=
push(.tbl,

.symtab)
.symtab :=
push(.tbl, .symtab)


Слайд 5Декларации
::= int
.tbl := { (.name, INT) }
| bool


.tbl := { (.name, BOOL) }
| fun ( ) : int =
.tbl :=
{ (.name,
FUN(.types, INT) ) }
.symtab := push(.tbl,.symtab)


Слайд 6Операторы

::=
.symtab := .symtab
|
.symtab := .symtab
| if then

else ...
.symtab := .symtab
.symtab := .symtab

Слайд 7Операторы
::= :=
.symtab := .symtab
Cond: (typeof(.name,.symtab) = INT) ∨ (typeof(.name,.symtab)

= FUN)
| :=
.symtab := .symtab
Cond:
typeof(.name,.symtab) = BOOL



Слайд 8Арифметические выражения
1 ::=
|
Cond: typeof(.name,
1.symtab) = INT
| 2 + 3
2.symtab

:= 1.symtab
3.symtab := 1.symtab


Слайд 9Булевские выражения
::= true | false |
Cond: typeof(.name,
.symtab) =

BOOL
| |



Слайд 10Вызов функции (Function Call)
::= ( )
Cond: typeof(.name,.symtab) =

FUN
Cond: rettype(.name,.symtab) = INT
.expTypes :=
paramtypes(.name,.symtab)
.symtab := .symtab
Cond: are_equal_lists(.expTypes, argtypes(),.symtab)


Слайд 11Аргументы функции
::=
| ,

::= |




Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика