Решение задач эфемеридной астрономии средствами предметно-ориентированного языка программирования
УЧРЕЖДЕНИЕ РОССИЙСКОЙ АКАДЕМИИ НАУК ИНСТИТУТ ПРИКЛАДНОЙ АСТРОНОМИИ РАННа правах рукописи
МИХЕЕВА Вероника Дмитриевна Решение задач эфемеридной астрономии средствами предметно-ориентированного языка программирования Специальность 01.03.01 – «Астрометрия и небесная механика»
АВТОРЕФЕРАТ
диссертации на соискание ученой степени кандидата физико-математических наук
Санкт-Петербург 2010
Работа выполнена в Учреждении Российской академии наук Институте прикладной астрономии РАН в Санкт-Петербурге.
Научный консультант:
Кандидат физико-математических наук В. И. Скрипниченко
Официальные оппоненты:
Доктор физико-математических наук, профессор Н. В. Емельянов Доктор физико-математических наук, профессор К. В. Холшевников
Ведущая организация:
Главная астрономическая обсерватория РАН (Пулково)
Защита диссертации состоится « 11 » октября 2010 г. в час. на заседании Диссертационного совета Д 002.067.01 при Учреждении Российской академии наук Институте прикладной астрономии РАН по адресу: 191187, С.-Петербург, наб. Кутузова, д. 10.
С диссертацией можно ознакомиться в библиотеке Института прикладной астрономии РАН.
Автореферат диссертации разослан «» сентября 2010 г.
Ученый секретарь диссертационного совета, Доктор физ.-мат. наук Ю. Д. Медведев
ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Актуальность темы. Современная астрономия является высокотехнологичной областью и не обходится без применения компьютерных технологий. В частности для автоматизации астрономических вычислений применяются как универсальные средства программирования общего назначения, так и специализированные системы. Специализированная система «Эфемеридные Расчеты в Астрономии» (ЭРА), разработанная в Институте прикладной астрономии (ИПА РАН) [16-20], используется в научно-исследовательской деятельности Института и других учреждений Российской академии наук более 20 лет и является одним из лучших пакетов для вычисления эфемерид и обработки наблюдений. Система ЭРА является развитым пакетом прикладных программ, в который входит, в частности, набор функций для выполнения специализированных вычислений в эфемеридной астрономии (предметное наполнение), оригинальная система управления данными и предметно-ориентированный язык СЛОН (СЛежение и Обработка Наблюдений).
Язык СЛОН является основным инструментом программирования в системе ЭРА.
Это предметно-ориентированный язык, в который непосредственно введены понятия предметной области и действия над ними, реализованные в виде пакета прикладных программ на языке программирования общего назначения.
Схема работы с системой ЭРА состоит из двух этапов: 1) реализации специализированных функций (действий) на языке Object Pascal в среде Borland Delphi [22] и 2) использования готовых действий в программах на языке СЛОН. Это достаточно распространенная схема использования для пакетов прикладных программ (ППП) со своим предметно-ориентированным языком. Она обладает следующими характерными для таких систем ограничениями: при описании действий (на языке Object Pascal) нельзя воспользоваться возможностями языка СЛОН, с другой стороны, в программах на языке СЛОН нельзя воспользоваться всеми выразительными средствами языка программирования общего назначения.
При решении некоторых задач эти особенности становятся обременительными для пользователей системы. Поэтому исследования, направленные на преодоление указанных ограничений, и связанные с этим задачи проектирования и реализации инструментальных средств для совместного использования предметно ориентированного и традиционного программирования, весьма актуальны. Решение такого рода задач требует привлечения знаний из двух научных областей:
1) предметной области, в данном случае, — эфемеридной астрономии — подраздела небесной механики, и 2) теоретической информатики.
Цели и задачи диссертационной работы. Главной целью диссертационной работы является: расширение области применения системы ЭРА (Эфемеридные Расчеты в Астрономии) за счёт развития её выразительных и функциональных возможностей в соответствии с практическими потребностями увеличившегося круга пользователей в средствах решения более широкого класса эфемеридных задач и с учётом современного уровня компьютерных технологий. В качестве средства достижения указанной цели была поставлена следующая основная задача диссертационной работы: разработать подход, позволяющий интегрировать в одной системе программирования средства предметно-ориентированного языка (СЛОН) и языка программирования общего назначения (Object Pascal). Для ее выполнения были поставлены следующие исследовательские задачи:
1. Разработать концепцию развития средств обработки и интерпретации данных на базе системы ЭРА.
2. Выработать методы реализации предметно-ориентированного расширения языка Object Pascal средствами языка СЛОН.
3. Разработать инструментальные средства программирования, обеспечиваю щие совместное использование языков СЛОН и Object Pascal.
4. Обеспечить настраиваемость на предметную область в соответствие с описа нием конфигурации системы ЭРА.
5. Сохранить обратную совместимость с программным обеспечением системы ЭРА.
6. Развить средства представления результатов решения задач эфемеридной астрономии в части графического отображения данных.
7. Разработать примеры решения актуальных эфемеридных задач и демонстрационные примеры построения графических представлений в эфемеридной астрономии с помощью полученных инструментальных средств.
Поставленные исследовательские задачи были решены и реализованы в системе, названной Дельта (Delta от слов Delphi и table) [1-7, 12, 14].
Научная новизна работы. В ходе диссертационной работы получены следующие результаты, характеризующиеся научной новизной.
1. Для предметной области «эфемеридная астрономия» разработана оригинальная система предметно-ориентированного программирования Дельта, интегрирующая в единой среде преимущества средств языка общего назначения и специализированного языка таблично-ориентированного программирования (на основе языка СЛОН) со средствами настройки на предметную область, в которую в полном объеме включены средства базовой системы ЭРА.
2. Благодаря комбинированному использованию в единой системе программирования как универсальных средств общего назначения, так и специализированных программных средств предметного наполнения с помощью системы Дельта разработаны исполняемые модули решения эфемеридных задач в системе «Персонального астрономического ежегодника» (21 модуль), созданы программы решения 17 задач в системе навигационного обеспечения «Штурман».
Новые средства системы Дельта использованы при разработке модулей решения трёх задач из состава примеров в объяснении к «Морскому астрономическому альманаху» (МАА-2) ИПА РАН [15], а также двух иллюстративных задач, описанных в диссертации (см. Приложение 1).
3. В результате проведенных исследований получены новые теоретические результаты: формальное определение предложенного средства предметно ориентированного программирования Дельта, классификация методов расширения современных языков программирования, формальное определение модели данных систем ЭРА и Дельта, доказательство ее реляционной суб-полноты и определение условий, достаточных для обеспечения реляционной полноты этой модели данных.
4. Благодаря результатам представленной диссертационной работы новая версия системы ЭРА для Windows дополнена средствами графического представления данных, выполненными на качественно новом уровне по сравнению с реализацией графических средств, имевшейся ранее только в версии для DOS.
5. Особенностями концепции графических средств, предложенной автором, являются: разработанная оригинальная объектная модель научной графики;
отделение части подготовительных вычислений исходных данных от части построения целевого графического изображения;
реализация расширенных возможностей по управлению процессом постепенного построения изображения в режиме «живая графика» для получения динамического изображения [20, 8]. Эти качества расширяют возможности графического моделирования в области эфемеридной астрономии и других областях, связанных с необходимостью анализа больших объемов данных, обеспечивая бльшую независимость целевого изображения от средств графического вывода по сравнению с традиционными графическими пакетами, а также позволяют обойтись без программирования при построении изображений.
6. С помощью графических средств, реализованных автором, построены графические изображения для шести задач эфемеридной астрономии, входящих в различные работы ИПА РАН.
Научная и практическая значимость работы. Основные результаты диссертационной работы внедрены в ИПА РАН.
Система Дельта регулярно используется при подготовке очередных электронных версий «Персонального астрономического ежегодника» ИПА РАН, начиная с 2006 года, когда появилась первоначальная версия системы Дельта [4-5].
Система Дельта применена при разработке системы удаленного доступа «Штурман», используемой для автоматизированного решения задач, входящих в объяснение к «МАА-2» ИПА РАН [15].
На входном языке системы Дельта разработаны программы решения трёх задач эфемеридной астрономии, опубликованных в объяснении к «МАА-2». [15]:
1. Определение поправки компаса. Общий метод.
2. Определение места судна по наблюдениям звезд.
3. Определение места судна по наблюдениям Солнца.
Средствами системы Дельта разработаны программы для решения еще двух эфемеридных задач, описанных в диссертации:
4. Вычисление эфемериды светила в горизонтальной системе координат [1].
5. Вычисление звездной величины больших планет.
Средства графической подсистемы, реализованные автором, вошли в качестве важного дополнения к вычислительным средствам в 32-разрядную версию системы ЭРА [12, 14]. С их помощью получены графические изображения для шести примеров задач эфемеридной астрономии [14]:
1. Сравнение значений нутации в долготе и наклоне в двух моделях на 20-летнем интервале (2000 – 2020 гг.).
2. Остаточные невязки LLR измерений для эфемериды ERA EPM в метрах.
3. Разница между вычисленными и наблюдёнными значениями времён запаздывания (O – C) в метрах для КА Pathfinder и MGS в теории движения планет Солнечной системы (EPM2008).
4. Динамическое изображение траекторий видимых движений малых планет Солнечной системы Сизиф, Церера и Паллада в период 01.01.2000 – 01.01.2100.
5. Динамическое изображение движения полюса Земли в период 1961 – 2008 гг.
6. Ошибки сопровождения источника радиоизлучения по азимуту (для радиотелескопа РТ-32).
Таким образом, включая разработку программных средств для решения задачи из «Персонального астрономического ежегодника», 17 задач для системы «Штурман», 3 задач для «МАА-2» и еще двух вычислительных и 6 графических задач, описанных в диссертации, в целом, имеется более 40 примеров успешного применения результатов представленной диссертационной работы для решения актуальных эфемеридных задач. Система Дельта регулярно используется при подготовке очередных версий «Персонального астрономического ежегодника» и раздела объяснений к «МАА-2».
Положения и результаты, выносимые на защиту:
1. Архитектура системы Дельта, существенно дополняющей функциональные возможности системы ЭРА и расширяющей перспективные пути её применения для решения задач эфемеридной астрономии в связи с увеличившимся кругом пользователей. Синтаксис языка Дельта, объединившего в себе возможности выразительных средств языка программирования общего назначения Object Pascal и специализированного таблично-ориентированного языка СЛОН [1-3].
2. Инструментальные средства программирования на языке Дельта, включающие транслятор языка, интерпретатор табличных операторов, модифицированный конфигуратор системы, позволяющие в совокупности применять систему Дельта на практике для решения эфемеридных задач [3];
а также применение этих средств при разработке «Персонального астрономического ежегодника» (система PersAY) [4-5] и «Морского астрономического альманаха» (МАА-2) [15].
3. Анализ и классификация методов расширения языков программирования [6].
4. Формальное определение модели данных систем ЭРА и Дельта, доказательство реляционной суб-полноты этой модели и определение условий, достаточных для обеспечения реляционной полноты этой модели [7].
5. Оригинальная модель графического представления данных для предметных областей, связанных с обработкой данных, и реализованная на базе этой модели графическая подсистема для визуального представления результатов вычислительной обработки данных в системах ЭРА и Дельта [12, 14].
Апробация работы. Основная концепция языка Дельта доложена на семинаре ИПА РАН «Проблемно-ориентированные расширения языка Object Pascal для эфемеридной астрономии. Язык Дельта: Нотация и особенности реализации» в январе 2006. Описание инструментальных средств разработки на языке Дельта доложено на семинаре ИПА РАН «Разработка предметно-ориентированных приложений с помощью инструментальных средств Дельта» в январе 2008.
Результаты работы, относящиеся к разработке методов графической интерпретации астрометрических данных, доложены на Всероссийской астрономической конференции ВАК-2004 «Горизонты вселенной», (Москва, июнь, 2004) [12], а также на научном семинаре ИПА РАН в ноябре 2009. Применение результатов работы в системе PersAY доложено на научном семинаре ИПА РАН в мае 2010. Результаты всей работы доложены на семинарах: в ИПА РАН (июнь, 2010), в Астрономическом институте СПбГУ и в Главной астрономической обсерватории РАН (Пулково) (сентябрь, 2010).
Публикации и личный вклад автора. Все выносимые на защиту результаты опубликованы. В целом по теме диссертации опубликовано 14 печатных работ, из них 7 самостоятельных, 7 — в соавторстве, в том числе 2 — в рецензируемых изданиях: «Научно-технические ведомости СПбГПУ» [2] и «Информационно-управляющие системы». [6].
Автором разработаны архитектура и синтаксис языка Дельта, а также выработаны методы интеграции интерпретатора предметно-ориентированного языка (СЛОН) и средств программирования на языке общего назначения (Object Pascal). Эти результаты опубликованы в качестве составных частей совместных работ [1-2] и в работах автора [3, 6].
Автором реализован транслятор языка Дельта, библиотека интерпретатора табличных операторов на основе интерпретатора языка СЛОН и программный интерфейс к этой библиотеке (API) для различных типов приложений и способов сборки. Автором расширены функциональные возможности конфигуратора системы ЭРА средствами настройки на предметную область для инструментальных средств и приложений Дельта и с помощью конфигуратора выполнена настройка системы Дельта на предметную область (эфемеридная астрономия). Эти результаты опубликованы в работе автора [3].
Автором получены следующие теоретические результаты: проведён анализ методов расширения языков программирования с классификацией этих методов (публикация автора [6]), формализован и описан жизненный цикл приложений системы Дельта при использовании этой системы для решения эфемеридных задач, построено формальное выражение описания метода двухпроходной трансляции программ на языке Дельта. Автором построены формальное определение языка Дельта, а также формальное определение модели данных систем ЭРА и Дельта;
доказана реляционная суб-полнота этой модели, определены условия, достаточные для обеспечения реляционной полноты модели данных. Эти результаты опубликованы в работе автора [7].
Автором разработана методика подготовки вычислительной базы поставляемых пользователям экземпляров «Персонального астрономического ежегодника» (система PersAY). Этот результат опубликован в качестве составной части совместных работ [4-5].
Автором разработана базовая концепция и сформирована модель графического представления данных для предметных областей, связанных с обработкой данных (публикация автора [12]). На базе этой модели выполнена работа по созданию предметно-ориентированных средств графического представления данных эфемеридной астрономии как подсистемы 32-разрядной версии системы ЭРА (публикация автора [14]). Эти средства используются также для визуализации результатов в системе PersAY. Данные графические средства являются важным дополнением к средствам программирования для решения прикладных задач эфемеридной астрономии. Совокупность средств программирования на языке Дельта и средств графического представления данных предоставляет возможность пользователю (специалисту в предметной области) решать комплексные задачи, включающие и вычислительную часть, и визуализацию данных.
Работа над основными концепциями реализованной модели графического представления данных была начата автором ещё в магистерской диссертации [8].
Работа была продолжена автором при проектировании и реализации графических средств для системы Ample (Adaptable Minor Planet Ephemerides) в рамках плановой темы ИПА РАН и описана в публикаци автора [10], а также в ряде совместных публикаций [9, 11, 13]. Окончательный вариант концепций был сформулирован автором на основе анализа графических средств системы ЭРА-7 (версии для DOS) и опубликован в работе автора [14]). Для демонстрации возможностей графической подсистемы автором реализованы графические представления результатов шести задач эфемеридной астрономии (публикация автора [14]).
С целью демонстрации преимуществ разработанных автором инструментальных средств системы Дельта автором усовершенствована программная реализация на языке Дельта решений трёх эфемеридных задач из объяснения к «МАА-2» посредством введения промежуточных переменных в предметных обозначениях. Примеры фрагментов реализации решения этих задач описаны в разделе 5.2. Постановка этих трёх задач и особенности программной реализации их решения средствами системы Дельта описана в Приложении 1. Эта работа выполнена автором с использованием имеющихся программ на языке Дельта, разработанных сотрудником ИПА РАН Свешниковым М. Л., и описания этих задач в объяснении к «МАА-2» [15]. Таким образом, автором представлены и описаны в диссертации примеры программной реализации решений актуальных задач эфемеридной астрономии с применением инструментальных средств системы Дельта. Автором было осуществлено тестирование инструментов Дельта на существующем прикладном программном обеспечении, реализованном на языке СЛОН системы ЭРА, и на новых приложениях, разработанных с использованием расширенных возможностей языка Дельта. Для тестирования системы Дельта использовались также описанная в Приложении 1 разработанная автором программа для вычисления звёздной величины больших планет. В качестве отладочного теста использовалась также разработанная автором демонстрационная задача вычисления горизонтальных координат небесного тела (эта программа является фрагментом совместной публикации [1]).
Структура и объем диссертации. Диссертация состоит из введения, пяти глав, заключения, библиографического списка и сборника приложений. Общий объем диссертации составляет 155 страницы основного текста (из них 10 страниц списка литературы), включая 25 рисунков, 6 таблиц;
и еще 69 страниц сборника приложений, включая 8 рисунков, 9 таблиц. Список цитируемой литературы содержит 98 наименований.
ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ
Во введении обоснована актуальность темы диссертации, сформулированы ее цели, освещены научная новизна и практическая ценность основных результатов работы, охарактеризован личный вклад автора, сформулированы положения, выносимые на защиту.
Первая глава посвящена описанию целей и задач диссертационной работы. Поиск методов решения некоторых актуальных задач эфемеридной астрономии определил направление исследовательской работы и формулировку основной задачи представленной диссертационной работы. Приводится обоснование постановки задачи и определение методов ее решения посредством разработки расширения языка программирования общего назначения средствами решения задач эфемеридной астрономии системы ЭРА.
Точные эфемеридные вычисления составляют фундаментальную основу актуальной проблемы координатно-временного и навигационного обеспечения.
Чтобы автоматизировать процесс выполнения эфемеридных вычислений и иметь возможность решать не одну, а целый класс подобных задач, как правило, разрабатываются специализированные программные системы. В ИПА РАН с этой целью уже более 20-ти лет успешно применяются средства специализированного программного комплекса ЭРА [16-20]. Ключевой идеей, положенной в основу системы ЭРА, является предложение Г.А. Красинского об использовании таблиц и алгебры таблиц как основных элементов программирования для решения задач эфемеридной астрономии в форме так называемых табличных операторов [16-20].
Используемая в системе ЭРА методика применения табличного подхода к обработке данных получила в дальнейшем название парадигмы таблично ориентированного программирования. В течение всего времени своего существования комплекс ЭРА постоянно развивался. С учётом этого развития система ЭРА в течение многих лет оставалась самодостаточной, а составление программ на языке СЛОН (входном языке системы ЭРА) в виде последовательности табличных операторов стало нормой для значительной части исследователей в области эфемеридной астрономии.
Вместе с тем в последние годы круг задач, решаемых с применением системы ЭРА, существенно расширился. В настоящее время система ЭРА регулярно используется для подготовки эфемеридных материалов, публикуемых в фундаментальных отечественных эфемеридных изданиях «Астрономический ежегодник» [28], «Морской астрономический ежегодник» [27], «Морской астрономический альманах» [15]. Система ЭРА была выбрана также в качестве базового вычислителя при разработке связанных с этими изданиями интерактивных электронных систем, таких как «Персональный астрономический ежегодник» [4-5] и система «Штурман». Указанное значительное расширение сферы применения системы ЭРА не обошлось без определённых трудностей, обусловленных некоторыми имеющимися в стандартной реализации системы ЭРА ограничениями.
К числу таких ограничений, присущих стандартной версии системы ЭРА, можно отнести следующие.
Пополнение функционального предметного наполнения новыми процедурами и функциями требует расширения реализации СЛОН-процессора и перенастройки системы ЭРА на новое описание предметной области в каждом таком случае. Однако, в случаях, когда такие процедуры и функции имеют ограниченное (в рамках одной, или нескольких задач) применение, такая перенастройка всей системы коллективного пользования нецелесообразна.
Множество доступных переменных ограничено имеющимися определениями в конфигурации предметной области системы ЭРА. В связи с этим нельзя, не затрагивая реализации СЛОН-процессора, вводить дополнительные временные переменные в содержательных обозначениях для промежуточных вычислений.
Наличие количественных ограничений в имеющейся реализации системы ЭРА, в частности, ограничений на объем кода в блоке действий.
Необходимость существенного расширения сферы применения системы эфемеридных расчётов определила направление исследований диссертационной работы. В результате в качестве целевой была сформирована задача создания системы программирования эфемеридных расчётов по вычислительной мощности и богатству выразительных средств, не уступающей системе ЭРА, но не обременённой вышеперечисленными ограничениями. Именно эта задача и была поставлена в качестве основной для данной диссертационной работы.
В качестве примера тех типов эфемеридных задач, для решения которых, в частности, создавалась разработанная в результате диссертационной работы система, автором рассмотрена постановка и решение следующих пяти задач (описанных в Приложении 1):
1. Определение поправки компаса. Общий метод [15].
2. Определение места судна по наблюдениям звезд [15].
3. Определение места судна по наблюдениям Солнца [15].
4. Вычисление горизонтальных координат светила [1].
5. Вычисление звездной величины больших планет.
Первые три задачи используются в качестве примеров в «Объяснении к Морскому астрономическому альманаху» [15], две последние задачи являются типовыми эфемеридными задачами.
В разделе 1.1 сформулирован конкретизированный список требований, предъявляемых к конечному результату работы. Удовлетворение этих требований необходимо для использования полученного инструментария при решении широкого спектра эфемеридных задач разнообразных типов, в том числе и тех пяти из них, которые выбраны в качестве иллюстративных. Анализ этих требований ещё раз подтвердил назревшую потребность в расширении средств, предоставляемых специализированным языком СЛОН [16-20], выразительными средствами, доступными в традиционном языке программирования (а именно, Object Pascal [22]), что, согласно исследованиям [21, с. 15], вполне типично для предметно ориентированных языков вообще. Эта потребность явилась побудительным мотивом к разработке нового языка Дельта на основе двух языков: СЛОН и Object Pascal, с объединением их функциональных возможностей, а именно, путем расширения языка Object Pascal табличными операторами языка СЛОН. Выбор языка Object Pascal в качестве прототипа требующихся средств программирования общего назначения обусловлен несколькими причинами, в частности, тем фактом, что Object Pascal применяется для разработки предметного функционального наполнения системы ЭРА, а также схожестью отдельных конструкций языков Object Pascal и СЛОН [1]. Таким образом, новая система программирования, получившая (как и её входной язык) название Дельта [1-3], создавалась не как альтернатива системе ЭРА, а как дополнение к ней. При этом, в конечном счёте, удалось не только полностью достичь поставленной цели, но и придать расширенному языку новые качества, обусловленные взаимопроникновением в друг друга выразительных средств двух языков, объединённых в единое целое. В языке Дельта, в отличие от Object Pascal, появилась возможность употреблять табличные операторы языка СЛОН наряду с обычными операторами языка программирования общего назначения;
и, в отличие от исходного языка СЛОН, синтаксис табличных операторов и варианты их применения несколько расширены (см. главы 2 и 5, Приложения 2-4).
Выполнение поставленной задачи потребовало привлечения знаний из двух научных областей — предметной области (в данном случае эфемеридной астрономии) и теоретической информатики, — а также изучения имеющихся систем прикладного программирования (систем ЭРА, AMPLE и других) и опыта их практического применения. Действительно, с одной стороны, постановка задачи и выработка требований к конечной системе явились результатом анализа накопленного опыта и выявления проблем, возникающих на практике при разработке прикладных программ с использованием имеющихся средств решения задач эфемеридной астрономии и формирующих потребности в развитии такого инструментария. С другой стороны, решение поставленной задачи разработки языка Дельта и средств программирования, удовлетворяющих всем выдвинутым требованиям, связано с поиском наиболее удобного, и вместе с тем эффективного, способа выражения понятий предметной области на языке программирования. Вот почему в этом случае требуются как знания в предметной области, так и знания в теоретической информатике, в частности, в теории языков программирования, перевода и компиляции. Обоснование задачи не было бы вполне убедительным без использования некоторых аспектов теоретической информатики. Реализация же концепции языка Дельта и соответствующих инструментов программирования требует привлечения знаний из обеих упомянутых областей знаний.
В разделе 1.2 охарактеризовано место языка Дельта во множестве существующих языков программирования, приведены основные определения использующихся терминов теоретической информатики и дан краткий обзор истории развития языков программирования. Затем, в разделе 1.3, приводится обзор определенных автором методов расширения современных языков программирования. Определения этих методов использованы автором для построения классификации существующих специализированных расширений, применяющихся для решения различных прикладных задач [6]. В результате анализа упомянутых методов, автором сделан и обоснован выбор методов, подходящих для реализации языка Дельта:
Для интеграции расширений в базовый язык используются новые языковые конструкции на уровне разработки исходного кода приложений Дельта, а также используются интерфейс прикладного программирования API и специальные строковые параметры на уровне представления промежуточного кода на Object Pascal.
Для исполнения кода расширений используется сочетание программной интерпретации с предварительной трансляцией в код на базовом языке программирования.
Вторая глава содержит результаты теоретических исследований, заключающихся в построении формального определения предложенного средства предметно ориентированного программирования Дельта.
В результате проведенного анализа применяющихся формальных методов теории языков для определения синтаксиса языка Дельта был выбран способ описания в виде расширенной формы Бэкуса-Наура (РБНФ) (раздел 2.1). Описание синтаксиса языка Дельта приведено в Приложении 4. Описание семантики языка Дельта представлено в разделе 2.2, а также в научных публикациях [1-3].
Основу концепции специализированных средств языка Дельта составляет табличный подход к обработке данных [19], унаследованный из системы ЭРА, подробно рассмотренный в разделе 2.2.1.
Основу таблично-ориентированного программирования составляют понятия таблицы, алгебры таблиц, табличного выражения и табличного оператора. Эти понятия, на неформальном уровне были определены в первых версиях системы ЭРА. Автором построены формальные определения этих понятий [7] на основе их неформального описания в документации системы ЭРА [20]. При этом было использовано изложенное в [23-24] описание формальной модели данных системы таблично-ориентированного программирования. Понятия таблица и операции алгебры таблиц определены в разделе 2.2.1, а понятия табличный оператор и табличное выражение — в разделе 2.2.2.
В языке Дельта концепция и синтаксис табличных операторов заимствованы из языка СЛОН [16-20]. Однако в связи с помещением их в контекст программ на Object Pascal, в языке Дельта они получили определенное развитие, обусловленное введением в блоки действий языковых расширений, пришедших из Object Pascal.
Этим особенностям языка Дельта посвящен раздел 2.2.3, в котором также приведены формальные определения множества конструкция языка Дельта в сравнении с множествами конструкций языков СЛОН и Object Pascal, кратко описана структура программы на языке Дельта, приведен короткий пример такой программы.
В разделе 2.3 выполнено сравнение модели данных системы Дельта, унаследованной из системы ЭРА, с реляционной моделью данных Кодда с использованием теоретических результатов, полученных при подобном сравнении для ТОП-модели [23], родственной табличной модели системы ЭРА. В ходе доказательств автором построено формальное определение сигнатуры табличной алгебры системы ЭРА и выполнено сопоставление этой сигнатуры (множества имен основ и семейства множеств имен операций), а также алгебраической системы для модели данных ЭРА (совпадающих с таковыми для модели данных Дельта) с аналогичными компонентами модели данных ТОП. После этого автором применены выводы, полученные в [23] для алгебры ТОП-модели по отношению к реляционной модели, к построенной модели данных системы ЭРА. В результате формальных доказательств получены следующие наиболее важные выводы [7]:
Табличная алгебра системы ЭРА реляционно суб-полна. Т. е. выразительные средства модели данных системы ЭРА достаточно мощны и покрывают основные средства реляционной модели.
Для получения реляционной полноты табличной алгебры системы ЭРА необходимо и достаточно определение в ней операции "–" разность таблиц и доопределение операции "*" умножение таблиц (в соответствии с семантикой одноименных операций модели ТОП [23]).
Третья глава посвящена основным аспектам реализации системы Дельта [3]. Идеи и концепция языка Дельта, предложенные в качестве решения поставленной задачи, изложенные в первых двух главах диссертации и публикациях [1-3, 7], реализованы автором диссертации в системе программирования Дельта, включая полный набор инструментальных средств программирования и исполнения приложений Дельта.
Инструментальные средства Дельта разработаны автором на базе реализации инструментальных средств программирования на языке СЛОН системы ЭРА.
Основные принципы реализации, изложенные в разделе 3.1, включают сопоставление процессов трансляции и сценариев исполнения приложений СЛОН и Дельта. Также приведено описание метода двухпроходной трансляции программы на языке Дельта и его формальное выражение. При первом проходе исходная программа, написанная на языке Дельта, транслируется в программу на языке Object Pascal. На втором этапе штатными средствами системы Delphi производится компиляция полученной программы. Возможны три варианта использования генерируемого при первом проходе текста программы. Во-первых, этот текст может использоваться в качестве фрагмента других программ, написанных на языке Object Pascal. Во-вторых, система Дельта может сгенерировать задание для создания DLL-библиотеки, которую (после компиляции её системой Delphi) можно использовать из программ, написанных не только на входном языке системы Delphi, но и на языках других систем программирования. И, наконец, с помощью штатного компилятора системы Delphi из того же текста на Object Pascal можно получить исполняемый модуль, который в последующем будет многократно исполняться. В разделе 3.2 описан жизненный цикл приложений Дельта, включая этапы разработки и использования приложений для решения задач предметной области, а также категории пользователей. Рассмотрена архитектура системы Дельта, составляющие ее компоненты и инструментальные средства, а также ее сравнение с архитектурой системы ЭРА. Описано применение интегрированной среды PersAY (версии для разработчика) для разработки на языках СЛОН и Дельта и работы с таблицами ЭРА. В разделе 3.3 описаны технологические процессы и задействованные в них инструментальные средства для всех этапов жизненного цикла приложений Дельта. Для представления схем жизненного цикла, архитектур и технологических процессов автором применена нотация UML 2.0 [25].
Четвертая глава посвящена описанию средств графического представления данных предметной области эфемеридной астрономии, разработанных автором [12, 14]. Перед автором была поставлена задача разработки таких средств как подсистемы 32-х разрядной (работающей под управлением Windows) версии системы ЭРА. С этой целью были проанализированы существующие и развиваемые в ИПА РАН системы электронной обработки астрометрических данных, а также имеющиеся графические средства системы ЭРА-7. Особое внимание было уделено используемому в этих системах таблично-ориентированному подходу к представлению и обработке астрометрических данных. Был также использован предыдущий опыт автора по теме графического расширения таблично ориентированной системы программирования, по которой ранее была защищена магистерская диссертация [8] и опыт автора в разработке научной графики для электронной версии системы «Эфемериды малых планет» (Ample) [9-11, 13]. В результате работы, представленной в данной кандидатской диссертации, автором разработана концепция научной графики эфемеридной астрономии (раздел 4.1), объектная модель представления научной графики (раздел 4.2) и ее отображение на таблично-ориентированные данные в соответствии с предложенной концепцией (раздел 4.2.3). Согласно предложенной автором концепции, настраиваемость графических средств обеспечена широким набором параметров (свойств объектной модели) с системой значений по умолчанию (раздел 4.2.2), позволяющих получить достаточно большое разнообразие графиков, представляющих собой различные виды конкретных изображений в предметной области (раздел 4.3.2). Особенностью предложенной модели научной графики является реализация расширенных возможностей по управлению процессом постепенного построения изображения [20, 8], названного «живая графика» [8] (раздел 4.2.4), позволяющего графически моделировать динамические процессы и явления в предметной области, что нашло применение в эфемеридной астрономии (примеры 4 и 5, раздел П1.6). В разделе 4.3.2 приведены примеры использования разработанных автором средств для получения графического изображения для двух эфемеридных задач (см. образцы на рис. 1). Остальные примеры приведены в Приложении 1 (раздел П1.6).
Рис. 1. Примеры графических представлений эфемеридных задач (1 и 2).
Для управления объектной моделью научной графики автором реализован программный интерфейс API (раздел 4.2.5) и диалоговый интерфейс пользователя GUI в виде пошагового Мастера настройки параметров (раздел 4.2.6). Автором выполнено сравнение предложенной концепции с графическими средствами системы ЭРА-7 (версии для DOS) (раздел 4.3.1). В системе ЭРА-7 указания на построение графика оформляются в форме операторов, помещаемых в текст программы. В предложенной автором концепции этап подготовки (сбора и вычисления) исходных данных и этап их графической интерпретации отделены друг от друга. Этап вычисления данных, как и прежде, описывается в программе и заканчивается сохранением результатов в виде таблиц. В свою очередь, процесс графической визуализации сохранённых в таблицах результатов вычислений осуществляется пользователем в сеансе работы с вышеупомянутым диалоговым интерфейсом без программирования.
Пятая глава посвящена применению инструментальных средств программирования на языке Дельта для решения реальных прикладных задач предметной области.
Специализированные предметно-ориентированные системы программирования не являются источниками собственно новых методов решения задач в той или иной предметной области. Их предназначение — предоставить пользователям более удобный инструмент программной реализации существующих в предметной области методов решения задач. И в этом смысле не существует таких задач, программу для решения которой можно было бы реализовать только в той или иной системе программирования. Различные системы программирования отличаются друг от друга лишь степенью полноты доступных в системе специализированных данных и процедур их обработки, уровнем выразительных средств входных языков, а также возможностями взаимодействия с другими системами программирования.
При рассмотрении в пятой главе диссертации примеров приложения системы Дельта к решению эфемеридных задач особое внимание уделяется тем возможностям этой системы, которые дополняют средства, доступные в системе ЭРА.
В разделе 5.1 описаны элементы реализации приложений Дельта, включая рассмотрение разновидностей приложений Дельта и интеграции с интерпретатором Дельта для исполнения табличных операторов. В разделе 5.2 приведены примеры фрагментов реализации решения эфемеридных задач с целью демонстрации преимуществ применения средств системы Дельта. Полное описание примеров содержится в Приложении 1.
На рис. 2 в качестве примера приведено построчное сравнение программного кода вычисления поправок наблюденной высоты за рефракцию, входящего в программную реализацию решения задачи 2 «Определение места судна по наблюдениям звезд» (см. раздел 5.2). В данном случае проиллюстрировано применение следующих преимуществ системы Дельта: возможности введения вспомогательных процедур (что позволяет улучшить структуру кода блока действий), а также вспомогательных переменных (в содержательных обозначениях) без изменения настройки инструментария на предметную область.
Реализация на языке Дельта Реализация на языке СЛОН hDeg = h[j] / 600e0 X=L[53+j]/600e refrac(hDeg, t, B, 0, 0, ro[j], dht[j], dhB[j]) 80 строк на СЛОНе вместо вызова refrac в Дельте ho[j]=h[j]+ro[j]+dht[j]+dhB[j] L[65+j]=L[53+j]+L[56+3*j]+L[57+3*j]+L[58+3*j] Рис. 2. Фрагмент вычисления поправок за рефракцию на языках Дельта и СЛОН.
Здесь использованы следующие содержательные обозначения:
h[j] (вместо L[53+j]) — видимая высота опорной звезды (с индексом j) в 0.1 угл. мин., hDeg (вместо X) — видимая высота в угловых градусах (и их долях), t — температура воздуха в °С, B — атмосферное давление в мм.рт.ст., ho[j] (вместо L[65+j]) — действительная наблюдённая высота для опорной звезды, ro[j] (вместо L[56+3*j]]) — средняя рефракция (также в 0.1 угловых минут), dht[j] (вместо L[57+3*j]) — поправка за изменение температуры воздуха, dhB[j] (вместо L[58+3*j]) — поправка за изменение атмосферного давления.
Наконец, вместо восьмидесяти строк программного кода на языке СЛОН в системе Дельта оформлена (на языке Object Pascal) процедура refrac, которая и вызывается в указанном на рис. 2 месте программы в системе Дельта, а также в других местах, где выполняются те же вычисления.
В разделе 5.3 рассказано о возможностях применения разработанных автором инструментальных средств Дельта в других предметных областях. Оценка результатов всей работы, представленной в данной диссертации, приведена в разделе 5.4.
Приложения. Текст диссертации сопровождается сборником приложений. В Приложении 1 рассмотрены примеры решения упомянутых пяти вычислительных эфемеридных задач и еще примеры графических изображений для шести задач эфемеридной астрономии. Полное описание синтаксиса обсуждаемых языков в форме РБНФ приведено в Приложениях 2-4. Приложение 2 содержит полное определение синтаксиса языка СЛОН в форме РБНФ, построенное автором на основе формальной спецификации синтаксиса языка СЛОН в формате для системы ШАГ [26], используемой в реализации системы ЭРА. Приложение содержит формальное определение синтаксиса языка Object Pascal в форме РБНФ из документации Borland Delphi [22]. Приложение 4 содержит построенное автором формальное определение в форме РБНФ синтаксиса новых конструкций языка Дельта, отличающихся от конструкций базовых языков СЛОН и Object Pascal.
Таким образом, совокупность всех трех данных приложений дает полное формальное определение синтаксиса языка Дельта, в соответствии с формальным определением множества конструкций языка Дельта, сформулированным в главе (утверждение 2.2). Приложение 5 содержит примеры к анализу методов расширения языков программирования. В Приложении 6 представлены элементы анализа теории языков, выполненного автором и послужившего в качестве теоретической основы для построения определения языка Дельта.
ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ РАБОТЫ Заключение. В результате представленной работы разработана система Дельта, существенно расширяющая возможности дальнейшего применения хорошо зарекомендовавшего себя программного комплекса эфемеридных расчётов ЭРА.
Созданная система предоставляет специалистам в области эфемеридной и динамической астрономии новое средство специализированного программирования — предметно-ориентированное расширение традиционного языка общего назначения Object Pascal средствами решения эфемеридных задач. Ранее упомянутые средства решения эфемеридных задач были доступны только при автономном применении комплекса ЭРА. Система Дельта создана не вместо системы ЭРА, а в дополнение к ней и по существу является развитием и логическим продолжением системы ЭРА, поскольку, система Дельта обладает следующими качествами: полной обратной совместимостью со средствами программирования на языке СЛОН, настраиваемостью на предметную область, существенным расширением выразительных возможностей входного языка, улучшенной производительностью и усовершенствованным процессом отладки. Практическая ценность полученных результатов подтверждена их апробацией и опытом внедрения и эксплуатации в различных проектах ИПА РАН. Предложенная концепция и реализация системы Дельта представляются перспективными и открывают пути для дальнейшего расширения области применения идеологии и средств таблично-ориентированного программирования, ранее реализованных в системе ЭРА, а также для улучшения качества результатов решения задач в заданной предметной области, в первую очередь, в области эфемеридной астрономии, благодаря усовершенствованию средств для программной реализации этих решений.
В заключение автор выражает благодарность и глубокую признательность своему научному руководителю Скрипниченко В. И. и Новикову Ф. А. за поддержку, ценные замечания, советы и помощь, а также сотрудникам ИПА РАН Кочетовой О. М. Нецветаевой Г. А., Парийской Е. Ю., Питьевой Е. В., Рыжковой Д. А., Свешникову М. Л., Стэмпковскому В. Г., Шору В. А., Ягудиной Э. И. и Тихоновой У. Н.
за сотрудничество, способствовавшее выполнению данной работы.
Автор глубоко признателен администрации ИПА РАН за возможность проведения научно-исследовательской диссертационной работы.
СПИСОК ПУБЛИКАЦИЙ ПО ТЕМЕ ДИССЕРТАЦИИ
1. Михеева В. Д., Скрипниченко В. И. Расширение языка Object Pascal (Delphi) таблично-ориентированными средствами решения задач эфемеридной астрономии // Сообщения ИПА РАН. СПб. 2006. №168. — 20 c.
2. Михеева В. Д., Новиков Ф. А., Скрипниченко В. И. Дельта — язык и система программирования для решения прикладных задач с табличными данными // Научно-технические ведомости СПбГПУ. СПб. 2007. № 4 (52), том 2 — С. 57-60.
3. Михеева В. Д. Разработка предметно-ориентированных приложений с помощью инструментальных средств Дельта // Сообщения ИПА РАН. СПб. 2008.
№ 179. — 32 с.
4. Глебова Н. И., Лукашова М. В., Михеева В. Д., Нецветаева Г. А., Парийская Е. Ю., Свешников М. Л., Скрипниченко В. И. Программная система PersAY — «Персональный астрономический ежегодник». // Труды ИПА РАН, Вып.
17. СПб.:Наука, 2007. — С. 223-228.
5. Глебова Н. И., Лукашова М. В., Михеева В. Д., Нецветаева Г. А., Парийская Е. Ю., Свешников М. Л., Скрипниченко В. И. Система PersAY — Персональный астрономический ежегодник. Версия 1.0 // Сообщения ИПА РАН. — СПб. 2010. №185. — 68 c.
6. Михеева В. Д. Методы расширения языков программирования (часть 1) // Информационно-управляющие системы. СПб. 2010. № 4. — С. 46-52.
7. Михеева В. Д. Проблемно-ориентируемый язык Дельта и его модель // Актуальные проблемы гуманитарных и естественных наук. — Москва, 2010. № 6.
— С. 38-51;
Эл. версия: http://www.publikacia.net/arhiv/062010.pdf — C. 40-54. (дата обращения 11.07.2010).
8. Михеева В. Д. Разработка и реализация представления и визуализации графической информации в системе таблично-ориентированного программирования АстроТОП. // Диссертация на соискание ученой степени магистра. Направление: 510200 – Прикладная математика и информатика.
Руководитель, к. ф.-м. н., доц. Ф. А. Новиков. Санкт-Петербургский государственный технический университет, физико-механический факультет, кафедра прикладной математики, С.-Петербург. 1999. — 103 с.
9. 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.
10. Михеева В. Д. Научная графика в электронной версии эфемерид малых планет // Сообщения ИПА РАН № 151, СПб. 2003. — 40 с.
11. 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 с.
12. Михеева В. Д. Эффективная технология графического представления астрометрических данных // Труды Государственного астрономического института им. П.К. Штернберга, Т.75, М., 2004, 278 с. (Тезисы докладов на Всероссийской астрономической конференции ВАК-2004 «Горизонты вселенной», Москва, МГУ, ГАИШ, 3-10 июня 2004 г. — С. 234).
13. 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 multi-purpose software package for minor planets // Communications of IAA RAS. St.-Petersburg. 2006. N 175. — 54 с.
14. Михеева В. Д. Средства графического представления данных в 32-разрядной версии системы ЭРА // Сообщения ИПА РАН. СПб. 2010. № 183 — 40 с.
КРАТКИЙ СПИСОК ЦИТИРУЕМОЙ ЛИТЕРАТУРЫ (Полный список использованной литературы приведен в тексте диссертации.) 15. Морской астрономический альманах на 2009-2010 годы. СПб.: Наука, 2008. 391 с.
16. Васильев М. В., Красинский Г. А. Универсальная система программирования для эфемеридной и динамической астрономии. // Труды ИПА РАН, 1997, вып.1, С. 228-248.
17. Krasinsky G. A., Vasilyev M. V. Universal programming system ERA for high precision applications of dynamic and ephemeris astronomy. // IAU Coll., 1997 N 165 / Dynamics and Astrometry of Natural and Artificial Celestial Bodies (eds. I.M.Wytrzyszczak, J.H.Lieske, R.A.Feldman), Kluwer Academic Publishers, Dordrecht, P. 239-244.
18. Krasinsky G. A., Novikov F. A., Skripnichenko V. I. Problem Oriented Language for Ephemeris Astronomy and its Realization in System ERA. // Cel. Mech., 1989. Vol. 45, P. 219-229.
19. Новиков Ф. А. Архитектура системы “ЭРА” — табличный подход к обработке данных // Препринт ИПА АН СССР, №16 Ленинград 1990 г. 32 с.
20. Krasinsky G. A., Vasiljev M. V. ERA-7. Knowledge Base and Programming System for Dynamical Astronomy // Manual. IAA RAS, 2001. 226 p.
21. Horowitz E. Fundamentals of Programming Languages. Second Edition.
Computer Science Press, USA, 1984. 446 p., fig.
22. Object Pascal Language Guide. // Borland Software Corporation, 2001. Enterprise Way, Scotts Valley, CA 95066-3249.
23. Крашенинников С. В. ТОП-модель: формальное описание // Препринт ИТА РАН № 45 С.-Петербург, 1995 г. 34 с.
24. Крашенинников С. В. Сравнительный анализ алгоритмов интерпретации табличных выражений // Препринт ИТА РАН № 30 С.-Петербург, 1993 г. 28 с.
25. Pilone D. UML 2.0 Pocket Reference, O’Reilly Media Inc., 2006 — 128 p., fig.
26. Агамирзян И. Р. Система технологической поддержки разработки трансляторов "ШАГ". Подсистема построения анализаторов. // Алгоритмы небесной механики (Материалы математического обеспечения ЭВМ) № Ленинград, ИТА АН СССР, 1986 50 с.
27. Морской астрономический ежегодник на 2009 г. УНиО МО РФ 2008, ИПА РАН 336 с.
28. Астрономический Ежегодник на 2009 г. СПб.: Наука. 2008. 86 с.