ДИССЕРТАЦИЯ на соискание ученой степени кандидата физ.-мат. наук Предметно-ориентированное расширение языка программирования общего назначения средствами решения задач эфемеридной астрономии 01.03.01 – «Астрометрия и небесная механика» Михеева Вероника Дмитриевна Научные руководители: к.ф.-м.н. Новиков Ф. А. к.ф.-м.н. Скрипниченко В. И. Институт прикладной астрономии РАН Санкт-Петербург 2010 «Дельта» 1. Исторические предпосылки и постановка задачи Глава 1 • • • • • Успешное применение системы ЭРА более 20 лет Периодические издания ИПА РАН: АЕ, МАА-2, МАЕ, PersAY, Штурман Ограничения системы ЭРА Потребность в одновременном применении средств СЛОН и Object Pascal Потребность в графических средствах Стр. 2/22 Михеева В.Д. «Дельта» 16.06.2010 Основная цель и задача Глава 1 • Цель. Расширение области применения системы ЭРА (Эфемеридные Расчеты в Астрономии) за счёт развития её выразительных и функциональных средств. • Задача. Разработать подход, позволяющий интегрировать в одной системе программирования средства предметно-ориентированного языка (СЛОН) и языка программирования общего назначения (Object Pascal). • На стыке научных областей: 1. Предметная область – эфемеридная астрономия 2. Теоретическая информатика Стр. 3/22 Михеева В.Д. «Дельта» 16.06.2010 Обоснование поставленной задачи Глава 1 • Практическое обоснование • Теоретическое обоснование Стр. 4/22 Михеева В.Д. «Дельта» 16.06.2010 Глава 1 Конкретизация постановки задачи Разработать новый язык Дельта как расширение языка программирования общего назначения табличными операторами ЭРА и реализовать соответствующие средства программирования. Требования: – Доступ к табличным операторам СЛОН в Object Pascal с возможными расширениями – Эффективность исполнения не хуже интерпретации СЛОН-процессором – Усовершенствованные средства отладки целевых программ – Обратная совместимость с программами на языке СЛОН – Настройка на предметную область по описанию конфигурации ЭРА – Развитие инструментальных средств в области графического представления данных эфемеридной астрономии Стр. 5/22 Михеева В.Д. «Дельта» 16.06.2010 Анализ методов расширения языков программирования Глава 1 • Определены методы расширения языков прог. (8) • Выделены соответствующие классы расширений (8) • Выработаны методы реализации языка Дельта (5) Интеграция расширений: Исполнение расширений: 1. API к внешней реализации 2. Подмножество языка 3. Строковый параметр 4. Новые конструкции языка (расширение синтаксиса) Стр. 6/22 1. Библиотека объектов на основном языке 2. Библиотека объектов на другом языке 3. Программная интерпретация 4. Аппаратная интерпретация Михеева В.Д. «Дельта» 16.06.2010 2. Определение языка Дельта Глава 2 • Формальное определение языка • Табличный подход к обработке данных (из системы ЭРА) – Описание предметной области – Определение таблицы ЭРА – Алгебра таблиц • Основные конструкции языка – Табличные операторы D := (A+B)٭C begin y=2٭x end. Стр. 7/22 Михеева В.Д. «Дельта» 16.06.2010 Основные нововведения системы Дельта • Два вида программ на языке Дельта: – Только табличные операторы – Расширение ими кода на Object Pascal Глава 2 • Различные типы приложений Дельта: – Консольное, графическое GUI, отдельный модуль – Многомодульные приложения • • Доступ ко всем выразительным средствам Object Pascal Расширение средств описания блоков-действий: – – – – Определение локальных и глобальных переменных Вызов внешних функций, не включенных в конфигурацию Pascal-подобный стиль синтаксиса операторов СЛОН Употребление операторов Object Pascal Доступ к специализированным функциям из конфигурации вне табличных операторов • Употребление табличных операторов внутри структурных операторов: циклы и условные переходы, оператор выбора (case), оператор доступа к полям структур данных (with), в телах процедур* и функций* • Стр. 8/22 Михеева В.Д. «Дельта» 16.06.2010 Сопоставление с реляционной моделью данных Использовано сопоставление ТОП <=> Реляционная модель [С.В. Крашенинников, Реляционная ТОП-модель] ТОП-модель Дельта’ | ЭРА-таблицы ЭРА’ Глава 2 модель Дельта Стр. 9/22 ЭРА Михеева В.Д. «Дельта» [В.Д. Михеева] Вывод: Модель данных системы Дельта (ЭРА) реляционно суб-полна. 16.06.2010 3. Система программирования Дельта • Основные принципы реализации Глава 3 • Жизненный цикл приложений Дельта • Категории пользователей • Инструментальные средства • Сравнение архитектур ЭРА и Дельта • Интегрированная среда PersAY • Технологические процессы Дельта Стр. 10/22 Михеева В.Д. «Дельта» 16.06.2010 Глава 3 Жизненный цикл приложений Дельта Стр. 11/22 Михеева В.Д. «Дельта» 16.06.2010 Процесс разработки приложения на языке Дельта • Редактирование исходного Глава 3 текста • Первый этап трансляции (с помощью транслятора Дельта) • Второй этап трансляции (с помощью компилятора Borland Delphi) Стр. 12/22 Михеева В.Д. «Дельта» 16.06.2010 Набор инструментальных средств Дельта Глава 3 • Транслятор Дельта • Интерпретатор Дельта (или СЛОН') • Компилятор, компоновщик, отладчик Object Pascal (Borland Delphi 6.0) • Конфигуратор Дельта (транслятор конфигурации) • Подсистема средств научной графики Стр. 13/22 Михеева В.Д. «Дельта» 16.06.2010 4. Дополнительные средства графической интерпретации • Концепция научной графики Глава 4 для эфемеридной астрономии – ERA-7, Ample, AGAT, … => ERA-32, PersAY • Объектная модель научной графики – – – – – – Объекты, Параметры, Методы Отображение табличных данных в модель научной графики Метод изображения «Живая графика» Сохранение (EGC, BMP, JPG) Внешние интерфейсы (GUI, API, DSL) Мастер настройки графика • Сравнение с концепцией графики ЭРА-7 Стр. 14/22 Михеева В.Д. «Дельта» 16.06.2010 Реализация в контексте системы ЭРА Глава 4 Организация процесса построения графического изображения: 1. Система ЭРА генерирует таблицу 2. Имена столбцов — это атрибуты предметной области (описанные в конфигурации ЭРА) 3. Пользователь выбирает атрибуты (столбцы) в диалоговом интерфейсе (GUI) 4. Значения выбранных атрибутов в строке таблицы определяют значения соответствующих параметров графического изображения Стр. 15/22 Михеева В.Д. «Дельта» 16.06.2010 Настраиваемый рисунок обобщенного вида Составные части графика: • Область прямоугольных координат X, Y в 2D-плоскости • Набор графиков (серий ) • Графический образ • Пояснительные надписи Разметка осей Координатная сетка Фоновый рисунок Автомасштабирование (3 вида) • • • • Графическая интерпретация в эфемеридной астрономии: • График точки – последовательность положений объекта • График линии – орбита, координатная линия • Графический образ – тип и состояние объекта (н-р, фазы Луны) Стр. 16/22 Михеева В.Д. «Дельта» 16.06.2010 Пример 1. Остаточные невязки LLR измерений эфемериды ERA EPM в метрах ERA-32, PersAY (Windows) Стр. 17/22 ERA-7 (MS-DOS) Михеева В.Д. «Дельта» 16.06.2010 Пример 2. Траектории видимых движений малых планет Сизиф, Церера, Паллада (1 января 2000 г. – 1 января 2100 г.) AMPLE ERA-32, PersAY Стр. 18/22 Михеева В.Д. «Дельта» 16.06.2010 5. Применение инструментальных средств Дельта Глава 5 • Элементы реализации приложений Дельта • Примеры программ решения реальных задач эфемеридной астрономии на языке Дельта • Решение задач в других предметных областях (медицина, физика, финансы…) • Оценка результатов работы Стр. 19/22 Михеева В.Д. «Дельта» 16.06.2010 СЛОН Дельта Пример 3. Определение поправки компаса. Общий метод. [МАА-2] Вычислить tM⊙ 1 2 3 4 5 6 7 8 9 10 11 t_gr_Sun = t_grt_Sun + D1t + D2t if t_gr_Sun => 360*600 then t_gr_Sun = t_gr_Sun - 360*600 t_m_Sun = t_gr_Sun + lambda_c_sign*(lambda_c_ddd*600+ lambda_c_m1*100+lambda_c_m2*10+lambda_c_m3) if t_m_Sun => 360*600 then t_m_Sun = t_m_Sun360 - 360*600 if t_m_Sun < 0 then t_m_Sun = t_m_Sun360 + 360*600 t_m_Sun_EW = "W" t_m_Sun180 = t_m_Sun360 t_m_Sun180_EW = "W" if t_m_Sun180 > 180*600 then begin t_m_Sun180 = 360*600 - t_m_Sun t_m_Sun180_EW = "E" end 1 2 3 4 5 6 7 8 9 10 11 l[44]=l[41]+n[25]+n[26] ⊙ ⊙ ⊙ ⊙ if l[44]=>360*600 then l[44]=l[44]-360*600 tГР = tГР,T + Δ1tГР + Δ2tГР l[45]=l[44]+n[28]*(n[15]*600+ tM⊙ = tГР⊙ ± λ n[16]*100+n[17]*10+n[18]) if l[45]=>360*600 then l[45]=l[45]-360*600 if l[45]<0 then l[45]=l[45]+360*600 name[28]="W" l[46]=l[45] name[29]="W" if l[46]>180*600 then begin l[46]=360*600-l[45] Вычислить t ⊙ по t ⊙ ПР M name[29]="E" end Стр. 20/22 Михеева В.Д. «Дельта» 16.06.2010 Разновидности приложений Дельта Глава 5 Типы приложений Дельта • • • Консольное приложение (EXE) Приложение с графическим интерфейсом (GUI) Библиотека динамической загрузки (DLL) Разновидности сборки приложений Дельта С использованием общей библиотеки Интерпретатора Дельта в виде DLL С включением библиотеки Интерпретатора Дельта в состав приложения Стр. 21/22 Михеева В.Д. «Дельта» 16.06.2010 Положения и результаты, выносимые на защиту • • • • • • Архитектура системы Дельта, существенно дополняющей функциональные возможности системы ЭРА и расширяющей перспективные пути её применения. Синтаксис языка Дельта, инструментальные средства программирования на языке Дельта. Применение этих средств для МАА-2, PersAY, Штурман. Анализ методов расширения языков программирования. Формальное определение модели данных систем ЭРА и Дельта, доказательство реляционной суб-полноты этой модели, определение достаточных условий для обеспечения реляционной полноты этой модели. Оригинальная модель графического представления данных для предметных областей, связанных с обработкой данных, и реализованная на ее основе графическая подсистема. 14 публикаций: 7 самостоятельных и 7 в соавторстве, из них 2 в рецензируемых изданиях Стр. 22/22 Михеева В.Д. «Дельта» 16.06.2010 Архив Страница 23 Михеева В.Д. «Дельта» 16.06.2010 Публикации (основные) 1. 2. 3. 4. 5. 6. 7. Михеева В. Д., Скрипниченко В. И. Расширение языка Object Pascal (Delphi) таблично-ориентированными средствами решения задач эфемеридной астрономии // Сообщения ИПА РАН. СПб., 2006, №168. — 20 c. Михеева В. Д., Новиков Ф. А., Скрипниченко В. И. Дельта — язык и система программирования для решения прикладных задач с табличными данными // Научнотехнические ведомости СПбГПУ. СПб., 2007, № 4 (52), том 2 — сс. 57-60. Михеева В. Д. Разработка предметно-ориентированных приложений с помощью инструментальных средств Дельта // Сообщения ИПА РАН. СПб., 2008, № 179. — 32 с. Глебова Н. И., Лукашова М. В., Михеева В. Д., Нецветаева Г. А., Парийская Е.Ю., Свешников М. Л., Скрипниченко В. И. Программная система PersAY — «Персональный астрономический ежегодник». // Труды ИПА РАН, Вып. 17. — СПб.:Наука, 2007. — сс. 223-228. Глебова Н. И., Лукашова М. В., Михеева В. Д., Нецветаева Г. А., Парийская Е.Ю., Свешников М. Л., Скрипниченко В. И. Система PersAY — Персональный астрономический ежегодник. Версия 1.0 // Сообщения ИПА РАН. СПб., 2010, №185. 68 c. Михеева В. Д. Методы расширения языков программирования (часть 1) // Информационно-управляющие системы. СПб., 2010, № 4. — сс. 46-52. Михеева В. Д. Проблемно-ориентируемый язык Дельта и его модель // Актуальные проблемы гуманитарных и естественных наук. — Москва, 2010, № 6. — в печати. Страница 24 Михеева В.Д. «Дельта» 16.06.2010 Публикации (по графике) 8. 9. 10. 11. 12. 13. 14. Михеева В. Д. Разработка и реализация представления и визуализации графической информации в системе таблично-ориентированного программирования АстроТОП. // Диссертация на соискание ученой степени магистра. Направление: 510200 – Прикладная математика и информатика. Руководитель, к. ф.-м. н., доц. Ф. А. Новиков. Санкт-Петербургский государственный технический университет, физикомеханический факультет, кафедра прикладной математики, Санкт-Петербург, 1999. — 103 с. Shor V. A., Bytsin A. Yu., Chernetenko Yu. A., Kochetova O. M., Mikheeva V. D., Netsvetaeva G. A., Parijskaya E. Yu., Skripnichenko V. I., Sumzina N. K., Vinogradova T. A. New possibilities for ephemeris support of minor planets. // IAA Transactions, No. 8 “Celestial Mechanics”, St.-Petersburg, 2002, Труды ИПА РАН. Вып.8. Небесная механика. — С.-Петербург, 2002, — сс. 159-160. Михеева В. Д. Научная графика в электронной версии эфемерид малых планет // Сообщения ИПА РАН № 151, Санкт-Петербург, 2003. — 40 с. Shor V. A., Bytsin A. Yu., Kochetova O. M., Mikheeva V. D., Netsvetaeva G. A., Parijskaya E. Yu., Skripnichenko V. I., Sumzina N. K., Vinogradova T. A. A M P L E — Integrated multi-purpose software package for minor planets. // Communications of IAA RAS, St.-Petersburg, 2003, N 153. — 56 с. Михеева В. Д. Эффективная технология графического представления астрометрических данных // Труды Государственного астрономического института им. П.К. Штернберга, Т.75, М., 2004, 278 с. (Тезисы докладов на Всероссийской астрономической конференции ВАК-2004 «Горизонты вселенной», Москва, МГУ, ГАИШ, 3-10 июня 2004 г. — с. 234). Shor V. A., Chernetenko Yu. A., Kochetova O. M., Mikheeva V. D., Netsvetaeva G. A., Parijskaya E. Yu., Skripnichenko V. I., Vinogradova T. A., Zheleznov N. B. AMPLE — Integrated multipurpose software package for minor planets // Communications of IAA RAS, St.-Petersburg, 2006, N 175. — 54 с. Михеева В. Д. Средства графического представления данных в 32-разрядной версии системы ЭРА // Сообщения ИПА РАН. СПб., 2010, № 183 — 40 с. Страница 25 Михеева В.Д. «Дельта» 16.06.2010 Архив Страница 26 Михеева В.Д. «Дельта» 16.06.2010 Настраиваемый рисунок Страница 27 Михеева В.Д. «Дельта» 16.06.2010 Пример. Движение полюса График на основе таблицы EOP.ERA Кадр «А» Кадр «B» Михеева В.Д. «Дельта» 16.06.2010 Режим «Живая графика» • Базовые принципы [5]: – Постепенное последовательное построение изображения (в процессе перебора кортежей таблицы) – В каждый момент времени отображается текущее состояние изображения – Возможность моделирования динамических процессов и явлений (движение/состояние объектов с течением времени) • Разновидности «живых» графиков объектов: – Движение, след, трек (точки/линии) Михеева В.Д. «Дельта» 16.06.2010 Пример 2. Траектории видимых движений малых планет Сизиф, Церера, Паллада (1 января 2000 г. – 1 января 2100 г.) AMPLE ERA-32, PersAY Стр. 30/22 Михеева В.Д. «Дельта» Решение задачи • Разработана концепция научной графики для эфемеридной астрономии (базовые принципы): – Применение таблично-ориентированного подхода – Объектная модель представления научной графики в астрометрии – Ее отображение на таблично-ориентированные данные • Разработано средство графического представления: – Двумерный рисунок обобщенного типа, настраиваемый для каждого конкретного случая с помощью широкого набора параметров. – Набор параметров изображения на основе графической интерпретации табличных данных и их отображения в объектную модель научной графики. Подавляющее большинство параметров могут получить свое значение автоматически по умолчанию. – Набор операций с изображением: построение графика, сохранение в статическом (BMP, JPG) или изменяемом виде (EGC), настройка параметров, режим «Живая графика». Михеева В.Д. «Дельта» 16.06.2010 Многомодульное приложение Включение модуля на языке Дельта в многомодульное приложение на языке Object Pascal 32 16.06.2010 Настройка на предметную область с помощью Конфигуратора Транслятор конфигурации Дельта создан на базе Конфигуратора СЛОН • Конфигурация СЛОН-процессора Конфигурация средств системы Дельта 33 16.06.2010 Настройка параметров трансляции программ на языке Дельта Некоторые параметры: Использовать интерфейс к библиотеке интерпретатора Дельта из заданной папки Папка для помещения результирующего приложения Дельта Включать ли интерпретатор СЛОН’ в состав приложения Использовать исходный код ядра СЛОН’ из заданной папки Использовать исходный код интерфейса интерпретатора СЛОН’ из заданной папки Выбрать результат трансляции – тип приложения (EXE, DLL, модуль) Вывести краткую справку о параметрах транслятора Дельта 34 Михеева В.Д. «Дельта» 16.06.2010 Отладка приложения Дельта с помощью отладчика Borland Delphi 35 16.06.2010 Основное содержание работы • Структура и объем диссертации – Введение – Глава 1. Исторические предпосылки и постановка задачи – Глава 2. Определение языка Дельта – Глава 3. Система программирования Дельта – Глава 4. Доп. средства графической интерпретации данных – Глава 5. Применение инструментальных средств Дельта – Заключение – Список литературы – Приложения 1-9. • Описания примеров решения эфемеридных задач • Синтаксис языков СЛОН, Дельта, Object Pascal • Краткое руководство пользователя инстр. средств Дельта Страница 36 Михеева В.Д. «Дельта» 16.06.2010 Заключение • Решена поставленная задача разработки нового • • • • языка Дельта и графической подсистемы как развитие концепций и средств системы ЭРА Выполнены предъявленные требования Получены новые теоретические и практические результаты Подтверждена практическая ценность Открыты пути расширения применения концепций ТОП, реализованных в системе ЭРА, и улучшения качества решений задач в предметных областях, в первую очередь, в эфемеридной астрономии Страница 37 Михеева В.Д. «Дельта» 16.06.2010 Положения, выносимые на защиту • • • • • • • • Теоретические результаты Определение языка Дельта, в т.ч. формальный синтаксис языков СЛОН и Дельта в форме РБНФ Определение методов расширения языков программирования и классификация расширений Подбор методов реализации предметно-ориентированного расширения – языка Дельта Формальное определение модели данных систем ЭРА и Дельта, в т.ч. алгебры таблиц Формальный вывод о суб-полноте этих моделей данных Описание категорий пользователей, жизненного цикла приложений Дельта, технологических процессов их разработки и использования Формальное выражение метода двухпроходной трансляции для языка Дельта Концепция графического представления данных Страница 38 Михеева В.Д. «Дельта» 16.06.2010 Положения, выносимые на защиту Практические результаты • Реализованы инструментальные средства программирования Дельта, удовлетворяющие предъявленным требованиям • Расширена функциональность конфигуратора системы ЭРА для настройки на предметную область средств Дельта • Реализована графическая подсистема для визуализации данных в предметной области с табличными данными • Выполнена интеграция с графической оболочкой системы PersAY Страница 39 Михеева В.Д. «Дельта» 16.06.2010 Оценка результатов • Достоверность • Практическая ценность • Реализация и внедрение • Личный вклад автора • Апробация работы • Публикации Страница 40 Михеева В.Д. «Дельта» 16.06.2010