Работа по дисциплинеТехнологии программирования Тема: Метапрограммирование Выполнили: Савельев А. Л. Воробьев Д. Н. Проверил: Куприянов Ю.

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



Advertisements
Похожие презентации
Усовершенствование языка и компилятора Для системы фрагментированного программирования Крупин Сергей ФИТ НГУ 3 курс Руководитель: Перепёлкин Владислав.
Advertisements

ЯЗЫКИ ПРОГРАММИРОВАНИЯ С РАСШИРЯЕМЫМ СИНТАКСИСОМ П.В. Егоров Екатеринбург, Июнь 2006.
Алгоритмический трейдинг c Python Денис Колодин ген. директор AlgoMarkets LLC Денис Колодин ген. директор AlgoMarkets LLC.
Генератор синтаксических анализаторов для решения задач автоматизированного реинжиниринга программ Дипломная работа студента 544 группы Чемоданова Ильи.
Введение в теорию компиляции Основные принципы построения трансляторов.
Что такое паттерны (шаблоны) проектирования? Эффективные способы решения характерных задач проектирования Обобщенное описание решения задачи, которое.
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
Функциональное программирование Лекция 11. Содержание Анализ искусственных и естественных языков Метапрограммирование: Quotations 2.
ParaCon Система параллельного программирования на основе типовых алгоритмических структур Истомин Тимофей Научный руководитель: д.ф-м.н. Берзигияров П.К.
Основы объектно-ориентированного программирования (ООП)
Системы программирования Системы программирования обеспечивают создания новых программ для компьютера. Современные системы программирования обычно представляют.
Этапы рассмотрения Простейшие примеры Свойства графиков линейных функций Графики и коэффициенты уравнений Пересечения графиков и системы Динамические.
Методология объектно- ориентированного программирования.
Математический диктант 1 вариант 2 вариант 56 = 7 n 1. n = 8 72 : x = x = – a = a = 323 y : 27 = y = 108 z =
Апробация технологий Silverlight/LINQ/WCF для создания web-приложений, ориентированных на интенсивную обработку данных Дипломная работа студента 545 группы.
Программное и аппаратное обеспечение. Программное обеспечение (ПО, software) Классификация ПО по назначению: –системное; –прикладное; –инструментальное.
Текстовый язык автоматного программирования В. С. Гуров, М. А. Мазин, А. А. Шалыто.
Алгоритмический подход – главное алгоритм решения задачи ( в основном, используется для вычислительных задач ); Структурное программирование – декомпозиция,
ТЕХНОЛОГИИ РАЗРАБОТКИ ЭКСПЕРТНЫХ СИСТЕМ. Отличия систем искусственного интеллекта от обычных программных систем ХарактеристикаПрограммирование в системах.
М.Ю. Харламов, ВНУ им. В.Даля, Транслятор Транслятор - это программа, которая переводит программу на исходном (входном) языке в эквивалентную ей.
Транксрипт:

Работа по дисциплинеТехнологии программирования Тема: Метапрограммирование Выполнили: Савельев А. Л. Воробьев Д. Н. Проверил: Куприянов Ю.

1.Метапрограммирование Метапрограммирование создание программ, которые создают другие программы как результат своей работы (либо частный случай изменяющие или дополняющие себя во время выполнения).

2.Содержание - генераторы кода - шаблоны С++ - виртуальные функции С++ - самомодифицирующийся код

3. Генераторы кода - теоретическое введение - Lex - Yacc - Lex & Yacc

4.Шаблоны С++ Парадигма обобщенного программирования: Решить, какие требуются алгоритмы; параметризовать их так, чтобы они могли работать со множеством подходящих типов данных

5. Виртуальные функции -vtbl -абстрактные классы

6. Самомодификация кода - Интроспекция - Интерпретация произвольного кода - Динамическое использование динамических библиотек

7. Интерпретатор математических формул - Грамматика: EXPR-> [ | ]TERM MORETERMS MORETERMS-> TERM MORETERMS | TERM MORETERMS | TERM-> FACTOR MOREFACTORS MOREFACTORS-> FACTOR MOREFACTORS | FACTOR MOREFACTORS | FACTOR-> POW MOREPOWS MOREPOWS-> POW{ }0 | POW-> | | EXPR | FUNC EXPR FUNC-> | | | | | | |

8. Интерпретатор математических формул - Лексический анализатор - Взаимодействие анализаторов - Оптимизатор - Сохранение дерева вывода - Интерпретатор

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

10. Выводы Ухудшение временных характеристик работы программы Уменьшение времени разработки Генераторы кода 55 Шаблоны 24 Виртуальные функции 33 Самомодификация кода 42

Демонстрация интерпретатора математических формул