Разработка проблемно- ориентированного языка программирования Никита Дубровин группа С-104 1.

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



Advertisements
Похожие презентации
Текстовый язык автоматного программирования В. С. Гуров, М. А. Мазин, А. А. Шалыто.
Advertisements

Использование и архитектура Parsec Дмитрий Тимофеев Санкт-Петербургская группа пользователей Haskell 15 декабря 2007 г.
Профильные курсы информатики, ориентированные на программирование. Объекто- ориентированное программирование.
1 3 o 5 Оценка эффективности инвестиций 6 Определение затрат.
«Разработка типовой конфигурации для автоматизации учебно-производственного отдела ОАО «ЖБК» в среде программирования 1С Конфигуратор » Дипломный проект.
Этапы разработки базы данных.. Этапы разработки БД. 1. Постановка задачи. 2. Проектирование БД. 3. Создание БД в СУБД. 4. Управление БД в СУБД.
Отчет по преддипломной практике Выполнил Студент гр. ИСЗ – С 05 Кудаков Д.Ю.
«Поиск шаблонов в программном коде» Автор: студент 445 группы Евгений Куделевский Руководитель: к.ф.-м.н., ст. разработчик компании JetBrains Максим Мосиенко.
Студент гр. 08-САПР Попов И. С.. Целью данного курсового проекта является разработка САПР для расчета и построения конического редуктора, которая включает.
Стадник Е. Г. ФПМИ НГТУ Руководитель: Городничев М.А., м.н.с. ИВМ и МГ СО РАН.
К построению и контролю соблюдения политик безопасности распределенных компьютерных систем на основе механизмов доверия А. А. Иткес В. Б. Савкин Институт.
ПЛИСКО ВЯЧЕСЛАВ. Удобная работа с базой данных в PHP.
1 Тема дипломной работы: Разработка Web-портала для продвижения продукции ООО «Бригадир» на рынке строительных материалов Выполнил: студент гр. ПИ-001.
Методика управления процессом разработки ПО систем ЧПУ c помощью Rational RequisitePro Москаленко Анна Цель работы: Формализация процесса разработки программного.
Программирование на языке высокого уровня Лекция 2. Метод. Алгоритм. Программа. Кафедра АСОИУ ОмГТУ, 2012 Богатов Р.Н.
1 Выполнила: студентка группы ПИЭ Дипломный руководитель: А.Н.Лебедев Разработка подсистемы учета компенсаций, скидок и льгот для клиентов компании ОАО.
СОЗДАНИЕ И РАЗВИТИЕ ОТКРЫТОЙ ЭЛЕКТРОННОЙ БИБЛИОТЕКИ РЕЗУЛЬТАТОВ ПРОЦЕССОВ МОДЕРНИЗАЦИИ РОССИЙСКОГО ОБРАЗОВАНИЯ, ВКЛЮЧАЯ ЭКСПЕРТИЗУ И ЭКСПЕРТНУЮ ОЦЕНКУ.
Разработка системы базового финансового учёта для организации Антон Климов группа С-104 Руководитель: Дмитрий Шурупов 1.
Сошников Дмитрий Валерьевич к.ф.-м.н., доцент Факультет инноваций и высоких технологий Московский физико-технический институт.
РАЗРАБОТКА КЛИЕНТСКОГО ПРИЛОЖЕНИЯ ИНФОРМАЦИОННОЙ СИСТЕМЫ ТОРГОВОГО ПРЕДПРИЯТИЯ Баранок А.В.
Транксрипт:

Разработка проблемно- ориентированного языка программирования Никита Дубровин группа С-104 1

Постановка задачи Цель проекта: Разработать систему учета оборудования для предприятия 2

Постановка задачи Цель работы: Повысить эффективность разработки информационной системы учета оборудования на предприятии. 3

Постановка задачи Задачи: Разработать проблемно-ориентированный язык программирования Определить требования к языку на основе анализа предметной области Выбрать основной язык программирования Реализовать проблемно-ориентированный язык на основе выбранного основного 4

Введение Современное ПО характеризуется: Сложностью разработки Высокой стоимостью поддержки Сложностью полноценного тестирования Для преодоления этих недостатков предполагается разработать специализированные для конкретной задачи языка программирования 5

Обоснование разработки ПОЯ Введение абстракций высокого уровня путем разработки заточенного под решаемую задачу языка Синтаксическая абстракция Сокрытие деталей предметной области либо задачи в семантике языка Снижение затрат на поддержку кода Предоставление стандартизированного средства расширения и настройки системы для пользователей 6

Применение ПОЯ в проекте 7

Пример модуля на ПОЯ device cpu label "DEVICE_CPU" { required string vendor_name label "LBL_VENDOR"; required string model_name label "LBL_MODEL"; required int core_number label "LBL_CORENUM"; required float frequency label "LBL_FREQ" units "UNIT_GHZ"; optional text description label "LBL_DESCRIPTION" } 8

Современное состояние ЯОП Среды разработки: JetBrains Meta Programming System openArchitectureWare Microsoft Software Factories Методики разработки ПОЯ: Model-driven development Generative programming Metalinguistic abstraction Примеры ПОЯ: LaTeX SQL BNF 9

Обоснование выбора основного ЯП В качестве основного языка был выбран язык Common Lisp Развитые возможности метапрограммирования: Прямой доступ к AST Доступ к интерпретатору в время исполнения Возможность изменять интерпретатор во время исполнения Мощная система макросов: Управление вычислением в макросе Доступ ко всем возможностям языка 10

Описание предметной области 11

Грамматика языка field-delimiter > ; list-delimiter >, block-start > { block-end > } list-start > ( list-end > ) string-literal > ¾([A-Za-z0-9˜#$%ˆ&*()_+/ ]*)¿ id > [A-Za-z][A-Za-z_]* integer-number > 0|([+]|[-])?[1-9][0-9]* float-number > ([+]|[-])?[0-9]+[.][0-9]+([Ee][0-9]+)? definition-types > definition-type field-delimiter definition-types > definition-type definition-type > device-definition > status-definition device-definition > device-description block-start field-definitions block-end 12

Грамматика языка device-definition > device-description block-start field-definitions block-end status-definition > status-description block-start field-definitions block-end device-description > device id label string-literal standalone > device id label string-literal status-description > status id label string-literal field-definitions > field-definition field-delimiter field-definitions > field-definition field-definition > requirement-specifier type-specifier id label string-literal units string-literal > requirement-specifier type-specifier id label string-literal 13

Грамматика языка requiremet-specifier > required > optional type-specifier > simple-type > complex-type complex-type > set list-start list-elements list-end >enum list-start list-elements list- end list-elements > list-element list-delimiter list-elements > list-element 14

Грамматика языка list-element > string-literal > integer-number > float-number simple-type > bool > integer > float > double > date > time > datetime > string > text 15

Ограниченность языка Возможно вынести генераторы кода в отдельный модуль Генератор SQL-кода привязан к реализации MySQL, что ограничивает переносимость. Отображение таблиц в объекты Python также рассчитан на типы данных MySQL Возможна адаптация языка для решения различных задач в рамках предметной области Для встраивания разработанного ПОЯ в программу необходимо переписать его на Scheme 16

Выводы Выбраны инструментальные средства разработки (язык Common LISP) В результате анализа предметной области были сформулированы требования к ПОЯ Разработан проблемно-ориентированный язык в соответствии со сформулированными требованиями Разработан транслятор языка 17

Разработка проблемно- ориентированного языка программирования Никита Дубровин группа С Вопросы…