Актуальность работы. На сегодняшний день многие задачи, связанные с научными вычислениями, эффективно решаются с помощью уже готовых прикладных программ — математических пакетов, или систем компьютерной алгебры. Они позволяют работать в интерактивном режиме, более удобно, чем в языках программирования, записывать математические формулы для расчетов, имеют средства для вывода графиков и избавляют от необходимости заботиться об интерфейсной части программы. Недостатком математических пакетов является невозможность создания с их помощью относительно независимых программ-приложений со своим интерфейсом, разработанным под конкретную задачу. Кроме того, отсутствие возможности работы с аппаратурой не позволяет с помощью математических пакетов управлять экспериментальными установками. В области программного обеспечения (ПО) управления экспериментом в настоящее время лидирует программный комплекс Lab View фирмы National Instruments [1]. Это система визуального проектирования, предназначенная для работы с аппаратурой, в первую очередь, выпускаемой фирмой National Instruments. Главным недостатком этой системы является то, что программирование в ней сделано тоже визуальным. По сути, оно сводится к рисованию блок-схем, что крайне неудобно для записи сколько-нибудь сложных алгоритмов.
Подробный анализ существующих программных средств для решения научных и учебных задач в области физики, проведенный в настоящей работе, показывает необходимость создания более эффективного языка программирования и среды визуального проектирования для этих целей. Одна из причин отсутствия до настоящего времени такого языка заключается в том, что не было проведено четкого разграничения задач системно-ориентированного и проблемно-ориентированного программирования. Это привело к тому, что даже языки программирования высокого уровня содержат в себе черты, характерные для низкоуровневого управления ресурсами системы.
В настоящей работе предложен и реализован объектно-ориентированный язык программирования нового поколения В ARS 1С [2−5], в значительной степени лишенный указанных недостатков. BARSIC (Business And Research Simple Interactive Calculator) — язык проблемно-ориентированного программирования, имеющий интерактивную среду визуального проектирования интерфейса, а также среду-интерпретатор времени выполнения. Основой языка является богатый набор стандартных объектов, команд и функций. Развитие объектной модели позволило избежать неограниченного роста количества стандартных команд и функций, как это произошло во многих математических пакетах. Такой подход, заимствованный из языков Java и JavaScript, значительно упростил процесс обучения программированию, что доказывается примерами пригодных к использованию программ-приложений, написанных студентами. Язык BARSIC поддерживает многие возможности обычных математических пакетов, за исключением символьных вычислений, и в то же время позволяет строить собственные интерфейсы для приложений и работать с аппаратурой. Синтаксис языка в сочетании с системой диагностики ошибок упрощает процесс отладки программ. Если в программе-приложении возникает исключительная ситуация (например, деление на ноль), не предусмотренная создателем программы, то среда BARSIC выдает диагностику об ошибке, давая возможность вернуться в соответствующую экранную форму программы и либо исправить вводимые данные и продолжить работу, либо сохранить полученные результаты.
Для описания синтаксиса языка BARSIC и его реализации был разработан метаязык описания синтаксиса MetaL. Этот язык пока несколько менее универсален, чем широко используемая в мире нотация Бэкуса-Наура [6], но более нагляден и приспособлен для целей реализации языков программирования типа BARSIC. Был разработан парсер-генератор и парсер, которые значительно упростили процесс реализации языка BARSIC. Парсер-генератор преобразует исходный текст описания синтаксиса языка BARSIC, написанный на языке MataL, в специальную структуру данных — сеть синтаксического анализа. После этого парсер, пользуясь сетью синтаксического анализа, производит разбор текста на языке BARSIC и вызывает функции, строящие дерево вычислений в соответствии с этим текстом. Возможность задавать синтаксис на языке MataL и быстро его реализовывать позволила хорошо отладить идеологию языка BARSIC, испробовав различные варианты синтаксиса и выбрав наиболее эффективные конструкции.
На языке BARSIC был написан ряд программ-приложений как для обучения студентов и школьников физике [7−15], так и для управления научными установками [16−22]. Эти программы успешно используются в вузах России и за рубежом. Часть программ была написана студентами физического факультета.
СПбГУ. Сравнительный анализ простоты использования студентами языков и сред BARSIC, Visual Basic, Delphi, Java и др. подтвердил преимущества BARSIC в широком классе задач, относящихся к физике, а также простоту обучения данному языку программирования и работы в интегрированной среде.
Целью работы являлось создание языка программирования и интерактивной среды для решения научных и учебных задач в естественнонаучной сфере, преимущественно в физике, с возможностью построения относительно независимых программ-приложений с развитым пользовательским интерфейсом.
В соответствии с этой целью решались следующие задачи:
1. Анализ существующих языков программирования и интегрированных сред для выяснения их основных недостатков и достоинств при решении учебных и научных задач в физике.
2. Разработка метаязыка описания синтаксиса (MataL), а также парсера и парсер-генератора для реализации синтаксического анализа в соответствии с синтаксисом, заданным на метаязыке.
3. Разработка и усовершенствование синтаксиса языка BARSIC, включая объектную модель.
4. Разработка программы-интерпретатора, реализующей язык программирования BARSIC посредством взаимодействия с парсером.
5. Написание программ-приложений на языке BARSIC с последующей корректировкой синтаксиса языка, чтобы сделать его максимально удобным для написания такого рода приложений, а также проверка работоспособности среды-интерпретатора на большом количестве программ-приложений.
Научная новизна:
1. Разработан новый язык программирования, в синтаксисе которого последовательно реализован принцип проблемной ориентированности и практически отсутствуют конструкции, характерные для системного программирования.
2. Предложен новый вариант объектной модели, позволяющий успешно решить проблему надежной статической и динамической проверки синтаксических конструкций в языке программирования интерпретируемого типа.
3. Предложен новый подход в компьютерной графике и анимации для программ моделирования физического эксперимента — работа с подокнами программы.
4. Разработан подход к созданию программ-приложений, позволяющий значительно повысить надежность учебного и научного программного обеспечения в области физики.
5. Разработан язык метаопределений, позволяющий преодолеть ряд недостатков расширенной нотации Бэкуса-Наура при задании синтаксиса языка программирования.
6. Реализован новый подход в создании парсер-генераторов для построения парсеров языков программирования.
Основные положения, выносимые на защиту:
1. Разработанный язык программирования ВАЯБЮ позволяет значительно повысить скорость создания и надежность программ в области управления компьютеризированными установками, обработки и визуализации физических данных, а также моделирования физических явлений.
2. Разработана интегрированная среда, поддерживающая средства визуального проектирования, псевдокомпиляции и отладки проектов ВАЯБЮ, а также, исполняющая псевдокомпилированные файлы.
3. Предложенный язык метаопределений и поддерживающий работу с ним парсер-генератор позволяют оперативно изменять и добавлять синтаксические конструкции в язык ВАЯБЮ, а также, при некоторой доработке, реализовывать парсеры широкого класса языков программирования и языков разметки.
4. Разработанное в среде ВАЯ81С программное обеспечение эффективно для управления компьютеризированными установками, используемыми в области научного и учебного физического эксперимента.
5. Разработанные в среде ВАЯБЮ программы для численной обработки и визуализации данных, а также учебные программы моделирования физических явлений, удобны в использовании и показывают ряд преимуществ перед программами, написанными на других языках программирования.
Практическая значимость работы:
1. Новый язык программирования ВАКЕЮ позволяет быстро создавать надежно работающее программное обеспечение в области математического моделирования физических процессов, обработки и визуализации физических данных, компьютеризации физического эксперимента.
2. Новый язык задания синтаксиса и разработанные парсер-генератор и парсер после незначительной доработки позволят значительно облегчить задачу реализации широкого класса языков программирования и разметки.
3. Программное обеспечение, разработанное в среде BARSIC, успешно используется в научных исследованиях и учебном процессе в нашей стране и за рубежом.
Апробация работы. Основные результаты докладывались на международной конференции «Физика и промышленность» (Голицино, Московская обл., 1996 г.), IV международной конференции «Физика в системе современного образования» (Волгоград, 1997 г.), IV международном совещании «Использование информационных технологий в учебном процессе кафедр физики и математики «(Ульяновск, 1997 г.), международной конференции «Modern Trends in Computational Physics» (Дубна, 1998 г.), V международной конференции «Физика в системе современного образования» (СПб, 1999 г.) и еще более чем на 10 российских и международных конференциях.
Публикации. По материалам диссертации опубликована 21 работа, в том числе 4 статьи в реферируемых журналах, 1 учебное пособие для студентов физического факультета СПбГУ и 16 тезисов докладов на научно-технических и научно-методических конференциях.
Объем и структура диссертации. Диссертация состоит из введения, 5 глав, заключения и списка используемой литературы из 85 наименований, содержит 15 рисунков. Общий объем составляет 131 страницу.
Заключение
.
В итоге проведенной работы, посвященной созданию и совершенствованию нового языка программирования, были выполнены поставленные задачи и полученные следующие основные результаты:
1. Исследованы существующие языки программирования, интегрированные среды, математические пакеты и другое программное обеспечение в плане возможностей их применения для решения физических задач. Выяснены недостатки этих программ и причины, порождающие эти недостатки.
2. Разработан новый язык программирования и интегрированная среда, включающая средства визуального проектирования. Этот язык позволяет существенно повысить эффективность работы при решении широкого класса научных и учебных задач в физике.
3. В новом языке предложена оригинальная объектная модель, облегчающая разработку программ и позволяющая отслеживать широкий класс возможных ошибок как на этапе псевдокомпиляции, так и в режиме интерпретации в среде времени выполнения.
4. Разработан новый язык метаопределений для описания синтаксиса языков программирования и разметки страниц. Этот язык более нагляден и в ряде случаев более гибок, чем широко известная расширенная нотация Бэкуса-Наура.
5. Разработаны и реализованы парсер-генератор и парсер, позволяющие в значительной степени автоматизировать процесс создания трансляторов компьютерных языков.
6. В процессе усовершенствования парсера и парсер-генератора удалось добиться полного разделения задач синтаксического разбора текста программы, написанной на языке программирования, и реализации действий, описываемых в этом тексте.
На новом языке программирования в интегрированной среде ВАИ^Ю создано большое число программ-приложений, которые успешно применяются для решения широкого класса научных и учебных задач.