Файл: История развития программирования в России (Институт прикладной математики РАН).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 67

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

С созданием систем программирования для проекта Эльбрус связана и существующая в лаборатории технологии программирования и экспертных систем Института математики и механики Санкт-Петербургского университета группа под руководством В. О. Сафонова. Группа была организована более пятнадцати лет назад С. С. Лавровым для поддержки широких планов создания программного обеспечения для Эльбруса.

В этой группе разработан широкий спектр систем программирования для Эльбруса - реализованы языки Паскаль, Модула-2, CLU, SNOBOL-4, Рефал, АВС (язык символьной обработки, предложенный С. С. Лавровым), а также ряд интерактивных систем программирования - для языков Алгол 60, Basic, Forth.

Уже из перечисления языков программирования, реализованных этой и двумя предыдущими группами, видно, насколько амбициозным (в положительном смысле слова) был проект Эльбрус.

В конечном счете для Эльбруса (не только в этих группах) были созданы трансляторы для всех мало-мальски употребляемых и для ряда экспериментальных языков, причем целенаправленно, в рамках общегосударственной программы.

В реализованных в этой группе трансляторах использован ряд новых и интересных решений по трансляции, например в трансляторе с CLU. На основании этих разработок и в их поддержку была создана так называемая TIP-технология (Technological Instrumental Package), предназначенная для создания больших модульных систем [12]. TIP-технология предполагает более содержательную спецификацию пакета как элемента сложной системы, чем это существует в известных языках. Достаточно детально регламентируется интерфейс пакета, что облегчает его переиспользование. На основе TIP-технологии был разработан ряд трансляторов, причем с использованием одних и тех же пакетов в различных трансляторах.

В настоящее время группа, насчитывающая около 10 сотрудников, разрабатывает транслятор с Паскаля для Эльбруса-3. Так же, как и предыдущие две, группа сотрудничает с Sun Microsystems и ведет разработку Паскаль-транслятора для новой рабочей станции семейства SPARC.

6. Лаборатория системного программирования Института математики и механики Санкт-Петербургского университета

Одним из известных российских коллективов, ведущих разработки и исследования в области трансляторов и окружений программирования, является лаборатория системного программирования Института математики и механики Санкт-Петербургского университета (руководитель лаборатории - А. Н. Терехов).


Коллектив был организован Г. С. Цейтиным и был связан с созданием одной из наиболее известных в России и мире системы программирования с языка Алгол-68. Мало того, что реализация оказалась успешной, но эта группа стала активным центром по внедрению Алгола-68 в реальную практику программирования. Этот интересный (тем более ко времени своего создания) язык, как показала международная конференция, посвященная 25-летию его создания (Амстердам, февраль 1993 г.), стал к настоящему времени уважаемым, но практически мертвым (подобно латыни) языком - везде, кроме области влияния данной группы. Ее деятельность показала практическую мощность и хорошее соответствие языка большому кругу прикладных задач.

В настоящее время коллектив насчитывает около 60 сотрудников. Основное направление деятельности - создание технологии разработки программ для систем реального времени, прежде всего, для систем связи [13]. Основу создаваемой технологии составляют языки высокого уровня, обеспечивающие большую надежность разрабатываемого программного обеспечения, а именно языки с полным статическим контролем типов (Алгол-68, Модула-2, Ада). Они, и в первую очередь Алгол-68, положены в основу большинства создаваемых технологических инструментов. В коллективе созданы трансляторы для ряда подобных языков, наиболее интересными из которых являются трансляторы для Алгола-68 и Ады.

Наиболее важной для технологии, создаваемой в коллективе, является система программирования WBC [14] для Алгола-68. Входной язык системы учитывает ряд новых предложений по расширению языка, связанных с модульностью, раздельной трансляцией, обработкой исключительных ситуаций.

Отличительной особенностью системы является ее ориентация на несколько инструментальных и целевых машин. Вся структура трансляторов и динамических окружений организована таким образом, чтобы выделить машинно- и операционно-зависимые части и унифицировать обращение к ним. Все трансляторы системы WBC одинаковы по синтаксису промежуточных языков: спецификации структур данных и доступа к ним; способам распределения памяти и регистров; технике генерации объектного кода; спецификации процедур динамической поддержки; способам выбора вариантов реализации конструкций языка. В трансляторах существуют единые программы монитора интерфейсной системы, видонезависимого и видозависимого (в терминологии Алгола-68) анализа, фрагментов фазы оптимизации, текстового редактора и отладки.

Специфика проблемной области - высокие требования к эффективности и надежности создаваемого по данной технологии программного обеспечения. Поэтому трансляторы системы обладают весьма изощренной техникой квазилокальной оптимизации программ, связанной прежде всего с развитым casing при реализации конструкций языка - особое внимание при этом уделяется тем конструкциям, реализация которых в наибольшей мере влияет на эффективность объектного кода (циклы, вырезки, процедуры). Система содержит средства конфигурационного контроля и поддержки разработки многомодульных программных комплексов.


Система интегрирована с другими средствами инструментальной поддержки разработки, в качестве которых выступают средства планирования и управления ходом разработки проекта, инструменты текстового и графического проектирования SDL-диаграмм (известный язык спецификации систем связи), средства комплексирования, отладки и измерения программ, инструменты вероятностного и имитационного моделирования аппаратуры и среды, ассемблеры и интерпретаторы целевых ЭВМ, действующие на инструментальных ЭВМ и пр. Разработаны специальные языки для описания оборудования и связей между его компонентами, а также процессоры, которые преобразуют эти описания в специальную базу данных, используемую при создании программного обеспечения средств связи.

Работа над технологией разработки программ, основанной на статических языках, привела к созданию архитектуры ЭВМ Самсон, ориентированной на программы, получаемые трансляцией с этих языков. В настоящее время Самсон выпускается как в виде отдельного устройства (процессор и локальная память), так и в виде троированного комплекса высокой надежности.

Самсон - микропрограммируемая ЭВМ. Средства микропрограммирования для нее разработаны на основе языка Алгол 68 и позволяют на порядок облегчить микропрограммирование по сравнению с традиционными микроассемблерами, что делает возможной микропрограммную эффективизацию конкретных программ. Сейчас на основе этого ведется проработка методики настройки ЭВМ Самсон на заданные предметные области.

Для языка Ада осуществлена полная реализация его и средств поддержки программирования в виде интегрированной инструментальной среды Pallada. Последняя содержит набор инструментов для разработки Ада-программ, в том числе отладчик в терминах входного языка, собственный текстовый редактор, систему конфигурационного контроля. Особое внимание в системе уделяется поддержке многобиблиотечного окружения. Специально для технологических целей в систему введены такие возможности, как гибкое управление проектом на основе абстрактных атрибутов, связанных с разделами библиотек: как поддержка запросов программ из библиотек, аналогичных принятым в базах данных. Система обладает высокой скоростью компиляции и перекомпиляции, в частности, за счет автоматической минимизации необходимых перекомпиляций, вызванных изменениями в контексте, и реализации пошагового связывания (incremental binding).

Pallada реализована для IBM/370 под VM/SP и PC 386 под UNIX. Система в принципе доведена до состояния программного продукта, однако не имеет использования.


Ряд исследовательских групп Санкт-Петербурга ведут работы, в области трансляции и построения окружений программирования, основанные на языке Форт.

В Санкт-Петербургском институте информатики и автоматизации РАН работы, ведущиеся под руководством С. К. Баранова, связаны с использованием Форта как инструментального средства для создания системного и прикладного программного обеспечения и на переносимой реализации этого языка, - Бета-Форт, - разработанной С. Н. Барановым. Создан программный пакет, выполняющий функции системы построения трансляторов и ориентированный на реализацию специализированных языков для приложений. Пакет состоит из форт-определений, к которым для конкретного языка добавляются форт-определения, отражающие синтаксические правила (в виде регулярных выражений) с включенными обращениями к семантическим (генерационным) процедурам, описания которых задаются также форт-определениями. Трансляция такого конкретизированного пакета порождает транслятор для данного специализированного языка (его шитый код). Существенно, что указанный пакет легко комбинируется с другими компонентами окружения программирования, также реализованными на языке Форт, и может настраиваться на конкретный специализированный язык, Такими как пользовательский интерфейс, управление файлами, системы меню и протоколирования работы, средства отладочного слежения и пр. Подобный подход к построению трансляторов и окружений был опробован на ряде специальных языков и позволял создавать эффективные их реализации.

В Санкт-Петербургском техническом университете под руководством В. П. Котлярова разработана технология построения программного обеспечения для встроенных ЭВМ (технология КОМФОРТ), основанная на модульном расширении языка Форт. Были созданы инструменты этой технологии, поддерживающие сборочное программирование. Группой велись исследования по применению методологии смешанных вычислений для построения эффективного программного кода.

ЗАКЛЮЧЕНИЕ

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


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

- большая часть программного обеспечения, в первую очередь системного, к которому относятся и трансляторы, до сих пор распространяется нелегально, за счет несанкционированного (и практически бесплатного для собственников ПО) копирования,

- не существует системы продаж и сопровождения для отечественного программного обеспечения (и даже нет традиций организации такой системы). Складывающаяся сейчас система обязана своим возникновением зарубежным производителям ПО, которые не имеют никакого отношения к отечественным производителям и не заинтересованы в их работах,

- доведение системы программирования до конкурентноспособного программного продукта требует больших финансовых вложений, окупаемость которых на внутреннем рынке сейчас непредсказуема.

Несмотря на общую пессимистичность оценки следует отметить, что существуют и положительные доводы в пользу отечественных разработчиков трансляторов. Есть ряд систем, которые могли бы практически продаваться --- это Mithrill, система WBC, Pallada. Хороший программный продукт могли бы представлять собой после определенного доведения Setl и Рефал-системы.

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

Чтобы быть правильно понятым, хочу сказать, что многие из перечисленных групп имели достаточный опыт в широком распространении созданных ими систем, но отечественные требования все-таки не соответствовали современным международным стандартам к распространяемому рыночному продукту - ни по качеству документации, ни по технике выпуска версий программного продукта (что требует высокой технологичности как разработки самого продукта, так и подготовки следующих версий).

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ