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

Презентация:



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

Часть II. Формальное описание языков программирования ( Формальная спецификация формальных языков ) Приложение. Описание статической семантики языка IMP.
Часть II. Формальное описание языков программирования ( Формальная спецификация формальных языков ) Приложение. Атрибутная грамматика языка IMP.
Часть II. Формальное описание языков программирования ( Формальная спецификация формальных языков ) Приложение. Грамматика языка IMP в форме BNF.
Часть II. Формальное описание языков программирования ( Формальная спецификация формальных языков ) Приложение. Операционная семантика языка SIL.
Семантический анализ КC-грамматики, с помощью которых описывают синтаксис языков программирования, не позволяют задавать контекстные условия (КУ), имеющиеся.
1 Глава 2. Средства функционального программирования Кубенский А.А. Функциональное программирование. Глава 2. Средства функционального программирования.
Лекция Неполная спецификация и недетерминизм. Let- и Case-выражения.
1 Кубенский А.А. Функциональное программирование. Глава 5. Системы исполнения функциональных программ. Глава 5. Системы исполнения функциональных программ.
1 Эффективность рекурсивных функций. Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. -- Вычисление.
Часть II. Формальное описание языков программирования ( Формальная спецификация формальных языков ) Операционная семантика.
1 Кубенский А.А. Функциональное программирование. Глава 5. Системы исполнения функциональных программ Eval / Apply-интерпретатор Интерпретация, основанная.
Часть II. Формальное описание языков программирования ( Формальная спецификация формальных языков ) Введение. Атрибутные грамматики.
класс-ПОВТОРЕНИЕ ОСНОВНЫХ ПОНЯТИЙ ТЕМЫ « ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ » 8 КЛАСС.
Часть II. Формальное описание языков программирования ( Формальная спецификация формальных языков ) Введение. Атрибутные грамматики.
1 Кубенский А.А. Функциональное программирование. Глава 4. Основы лямбда-исчисления Рекурсия в лямбда-исчислении fac = λn.(if (= n 0) 1 (* n (fac.
Функции. Функция- это подпрограмма, которая вычисляет и возвращает некоторое значение. Функции описываются в разделе описаний следующим образом: Function.
Функциональное программирование Лекция 11. Содержание Анализ искусственных и естественных языков Метапрограммирование: Quotations 2.
Глава 1. Язык реализации: TSG. Супер- компиляция scp Специализация программ Приложения суперкомпиляции, в том числе Базовые понятия и методы метавычислений.
1 Кубенский А.А. Функциональное программирование. Глава 5. Системы исполнения функциональных программ. Глава 5. Системы исполнения функциональных программ.
Транксрипт:

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

«Расширение» RSL(1) type T1 = T2 T3 это сокращение, означающее, что описаны типы T2 и Т3 -T2 :: T2 1 T2 2 … (short record definition) или T2 = T4 … -T3 :: T3 1 T3 2 … или T3 = T5 …

«Расширение» RSL(2) Напоминаем, что type T :: T 1 T 2 … это сокращение, означающее, что T == mk_C(p 1, p 1, …) Кроме того, допускаем, что возможно со-сущестование типов T1 и T2 с одноименными конструкторами: T1 == mk_C(p 1, p 2, …) и T2 == mk_C(p 1, p 2, …)

«Расширение» RSL(3) T1 T2 == mk_C1(p1 1, p1 2, …) T3 T4 == mk_C4(p4 1, p4 2, …) T5 == mk_C5(p5 1, p5 2, …) T1 = T2 T3 T3 = T4 T5

Программа и блок Prog :: Block Block :: Decl-list Stmt-list

Декларации Decl = Var_Def Func_Def Var_Def :: Id_Decl Type_Desc Fun_Def :: Id_Decl Param-list Type_Desc Block Type_Desc = int bool Param :: Id_Decl Type_Desc Id_Decl :: Text int :: Int bool :: Bool

Операторы Stmt = Assign Block If While Assign :: Id Expr If = If_pair-list If_pair :: Boolexp Stmt-list While :: Boolexp Stmt-list

Выражения Expr = Intexp Boolexp Intexp = Integer Id_Use Bi_Int_Exp Funcall Boolexp :: False | True | Id_Use | Equal | Comp Bi_Int_Exp :: Int_Exp Ar_Operation Int_Expr Ar_Operation = Sum Sub Mult … Equal :: Expr Expr Comp :: Intexp Op Intexp Id_Use :: Text

Вызов функции (Function Call) Funcall ::= Id_Use Arg-list Arg :: Expr