Презентация Семантика языков программирования онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Семантика языков программирования абсолютно бесплатно. Урок-презентация на эту тему содержит всего 21 слайд. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Семантика языков программирования



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    21 слайд
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    338.00 kB
  • Просмотров:
    179
  • Скачиваний:
    1
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Семантика языков
Содержание слайда: Семантика языков программирования Определение языка программирования должно иметь как минимум две части: синтаксис и семантику. Синтаксис задаётся формально контекстно – свободными грамматиками. Семантика чаще всего определяется неформально, например смысл оператора while B do C объясняют так: «Для вычисления этого оператора нужно вычислять оператор C до тех пор, пока значение выражения B истинно». В этом курсе мы рассмотрим методы формального задания семантики языков программирования.

№2 слайд
Зачем нужна формальная
Содержание слайда: Зачем нужна формальная семантика? Чтобы точно знать возможности языка программирования. Чтобы доказывать корректность программы, а не экспериментировать с компилятором. Чтобы убедиться, что компилятор работает корректно. Для облегчения переносимости компилятора на различные платформы.

№3 слайд
Эквивалентные преобразования
Содержание слайда: Эквивалентные преобразования программы Зная, что if true then C1 else C2 делает тоже самое, что и C1 можно упростить программу. Используя формальную семантику можно доказывать эквивалентность и более сложных фрагментов программы.

№4 слайд
Эквивалентны ли фрагменты
Содержание слайда: Эквивалентны ли фрагменты программы? begin C1 ; if B then C2 else C3 end

№5 слайд
А эти? begin if B then C else
Содержание слайда: А эти? begin if B then C2 else C3 ; C1 end

№6 слайд
Абстрактный синтаксис языка
Содержание слайда: Абстрактный синтаксис языка арифметических выражений Синтаксические категории е  Exp op  Op n  Num Определения op ::= + | - | * | div e ::= n | e/ op e//

№7 слайд
Методы определения семантики
Содержание слайда: Методы определения семантики Конкретная операционная семантика Естественная семантика Вычислительная (структурно – операционная) семантика Денотационная семантика

№8 слайд
Конкретнтая операционная
Содержание слайда: Конкретнтая операционная семантика языка Exp topostfix(N,S,[N|S]) :- number(N). topostfix(E,S,R) :- E =.. [Op,A,B], member(Op,[+,-,*,/]), topostfix(A,[Op|S],S1), topostfix(B,S1,R). calc([],[R],R). calc([N|Cs],S,R) :- number(N), calc(Cs,[N|S],R). calc([Op|Cs],[N1,N2|S],R) :- member(Op,[+,-,*,/]), E =.. [Op,N1,N2], N is E, calc(Cs,[N|S],R).

№9 слайд
Естественная семантика Это
Содержание слайда: Естественная семантика Это аксиоматическая система, определяющая смысл каждой конструкции языка в виде вычисляемого ею значения. Определим семантику языка арифметических выражений. Для этого понадобится отношение  : Exp  Num , отображающее множество арифметических выражений на множество чисел. Оно определяется индуктивно: Правило 1: Для каждой числовой константы n, n  n. Правило 2: Если e  v и e’  v’, то e op e’  Ap (op, v, v’).

№10 слайд
Правила, определяющие
Содержание слайда: Правила, определяющие естественную семантику языка арифметических выражений Правило CR Правило OpR

№11 слайд
Вычисление значений
Содержание слайда: Вычисление значений арифметических выражений Пусть нужно вычислить значение выражения 3 * 4 + 8 div (4 – 2). Это сумма, и применение правила OpR приведёт к Для вычисления применим ещё два раза правила OpR:

№12 слайд
Вычисление значения
Содержание слайда: Вычисление значения арифметических выражений (продолжение) В конце концов, получив численную константу применим правила CR:

№13 слайд
Реализация естественной
Содержание слайда: Реализация естественной семантики языка Exp eval(N,N) :- number(N). eval(E,R) :- E =.. [Op,E1,E2], member(Op,[+,-,*,/]), eval(E1,R1), eval(E2,R2), Ee =.. [Op,R1,R2], R is Ee. test(V) :- eval(2*3+4-6/2, V).

№14 слайд
Индукция Свойства семантики
Содержание слайда: Индукция Свойства семантики языка программирования можно доказывать по индукции. Метод математической индукции: Чтобы доказать свойство P(x) всех натуральных чисел, нужно доказать два отдельных утверждения: 1) Истинность P(0). Это база индукции. 2) То, что из истинности P(k) следует истинность P(k+1) . Это индуктивный шаг. Почему? - Потому, что эти два утверждения определяют рекурсивный процесс, который проверит истинность свойства P(x) для всех натуральных чисел.

№15 слайд
Пример Пусть нужно доказать,
Содержание слайда: Пример Пусть нужно доказать, что сумма первых n натуральных чисел равна n * (n+1) div 2, то есть 0 + 1 + … + n = n * (n+1) div 2. Это свойство всех натуральных чисел. Итак, для доказательства P(n), для всех n   нужно показать, что: 1) 0 = 0 * (0+1) div 2. Для этого достаточно просто выполнить арифметические действия. 2) Из истинности (1) 0 + 1 + … + n = n * (n+1) div 2 вывести (2) 0 + 1 + … + n + (n+1) = (n+1) * (n+2) div 2. Прибавим к обоим частям истинного равенства (1) (n+1) получим: 0 + 1 + … + n + (n+1) = n * (n+1) div 2 + (n+1). Далее выполнив преобразование правой части получим: n * (n+1) div 2 + (n+1) = {умножим и поделим (n+1) на 2 } n * (n+1) div 2 + 2 * (n+1) div 2 = {сложим дроби} (n * (n+1) + 2 * (n+1)) div 2 = {вынесем (n+1)за скобку} (n+1) * (n+2) div 2.

№16 слайд
Структурная индукция Метод
Содержание слайда: Структурная индукция Метод математической индукции применим к натуральным числам потому, что их множество определяется по индукции: 0   Если n  , то и n+1  . Доказательство по индукции можно строить и для других множеств, заданных по индукции. Например, возьмем множество списков натуральных чисел. Обозначим через [] – пустой список, а через : - операцию построения списка из головы и хвоста. Наше множество Lists() можно определить так. []  Lists() Если l  Lists(), а n  , то n:l  Lists() . В форме правил:

№17 слайд
Закон map после Для всех
Содержание слайда: Закон « map после (++)» Для всех списков xs, ys и функций f выполняется равенство: map f (xs++ys) = map f xs ++ map f ys , при условии что правильно определены типы.

№18 слайд
Содержание слайда:

№19 слайд
Теорема. Отношение для языка
Содержание слайда: Теорема. Отношение  для языка Exp является функцией Для всех выражений е  Exp справедливо, что если e  v и e  v’ , то v = v’. Это P(e). Для доказательства применим структурную индукцию. Нужно доказать: 1) P(n) для всех чисел n. 2) При условии истинности P(e) и P(e’) доказать P(e op e’) .

№20 слайд
Первый случай Если n v, а для
Содержание слайда: Первый случай Если n  v, а для вычисления v мы могли использовать только правило CR то n = v . Если n  v’, то из тех же соображений получим n = v ’ . Из n = v и n = v ’ следует, что v = v ’ .

№21 слайд
Второй случай Если e op e v,
Содержание слайда: Второй случай Если e’ op e”  v, а для вычисления v мы могли использовать только правило OpR , значит e’m’, e”m” а v = Ap(opNum, m’, m”) , где m’, m” - некоторые числа. Если e’ op e”  v’, а для вычисления v’ мы могли использовать только правило OpR , значит e’k’, e”k” а v’ = Ap(opNum, k’, k”) , где k’, k” - некоторые числа. Из P(e’) и P(e”) получим, что m’=k’, m”=k” . А поскольку opNum - функция, получим v=v’ .

Скачать все slide презентации Семантика языков программирования одним архивом: