автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Объектно—ориентированная схема трансляции на примере транслятора с языка ПЛ/1

кандидата технических наук
Лысковский, Виктор Иванович
город
Новосибирск
год
1991
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Объектно—ориентированная схема трансляции на примере транслятора с языка ПЛ/1»

Автореферат диссертации по теме "Объектно—ориентированная схема трансляции на примере транслятора с языка ПЛ/1"

АКАДЕМИЯ НАУК СССР Ордена Ленина Сибирское отделение Институт систем информатики

На правах рукописи

ЛЫСКОВСКИИ ВИКТОР ИВАНОВИЧ

Объектно—ориентированная схема трансляции на примере транслятора с языка ЛЛ/1

(специальность B5.13.ll. — математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей)

АВТОРЕФЕРАТ диссертации на соискание ученой степенй кандидата технических наук

НОВОСИБИРСК - 1991

Работа выполнена а Новосибирском филиале Института точной механики и вычислительной техники им. С.А.Лебедева АН СССР

Научный руководитель — доктор технических наук,

профессор Г.Д. Минин Официальные оппоненты — доктор физико-математических наук,

доцент И.В. Поттосин,

кандидат технических наук, научн.сотр. В.А. Коситов Ведущая организация - НИВЦ МГУ им. М.В.Ломоносова.

' Зашита состоится 14 июня 1991г. в часов на

заседании специализированного совета K003.93.iai при Институте систем информатики Сибирского отделения АН СССР, актовый зал.

С диссертацией можно ознакомиться в читальном зале ГПНТБ ( Новосибирск, пр. Академика Лавреньтьева 6 > Автореферат разослан М -чиЯ 1991г.

Ученый секретарь к. Ф. —м. н.

/В.К.Сабельфельд/

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

АКТУАЛЬНОСТЬ. В настоящее время преобладающим становится способ использования ЭВМ через универсальные или специализированные языки высокого уровня. Эффективное использование языков высокого уровня (ЯВУ) в той или иной предметной области ставил— ся в прямую зависимость от наличия эффективных по своим характеристикам (скорость исполнения программы, качество диагностики и т.п.) трансляторов соответстуницих языков программирования.

Для высокопроизводительных ЭВМ типа МВК "Эльбрус" задача получения эффективных трансляторов не потеряла своей актуальности, скорее наоборот появились новые возможности оборудования, которые позволяют эффективно реализовать семантику такого сложного языка как ПЛ/1.

Исследование в этой области и получение практических методик в разработке такого рода трансляторов актуальны еще и в силу того, что новое оборудование ЭВМ создается сейчас как правило в сжатые сроки, что, в свою очередь, требует сокращения сроков создания программного обеспечения ЭВМ. Последнего можно достичь различными способами. Один из возможных путей в этом направлении, который развивается в последнее время в различных странах, это — автоматизация создания трансляторов. Для языков высокого уровня эта проблема наиболее трудна и практические результаты, полученные в этом направлении, выглядят достаточно скромно. Однако работы в.этой области все чаще выдвигаются на первый план.

ЦЕЛЬ РАБОТЫ. Основной целью, поставленной в настоящей работе, является создание модели семантических преобразований в трансляторах языков высокого уровня.

Решением этой задачи является разработка теоретических основ классификации семантических преобразований в ЯВУ с последующей апробацией и уточнением полученной теоретической модели в с::стс™ грйгркппи^ованния ГШ/1 на МВК "Эльбрус" ( СП ПЛ/1-Э ).

Отметим, что классификация той или иной предметной деятельности является необходимым шагом к ее дальнейшей автомати—

-з-

аации.

МЕТОДИКА ИССЛЕДОВАНИИ. Исследование семантических преобразований (СПР) базируется на идеях концептуального программирования, примененных к данной предметной области системного npoi— раммирования.

Одной из основных теоретических предпосылок предпринятой классификации СПР является парадигма "объектов", развитая в ряде современных ЯВУ, таких как Эль—76, Ада, Си++, Смолток.

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

По отношении к практической части результата (реализация СПР в системе программирования ПЛ/1—Э> методика исследований состояла в выборе адекватных языковых средств для воплощения концептуальной модели применительно к разработке конкретного транслятора.

НАУЧНАЯ НОВИЗНА. В работе обобщены существующие идеи семантического анализа, приме!шсмыо в тех или иных трансляторах. На основе объктно—ориентированного подхода разработана объектно-ориентированная схема трансляции. Ядром данного исследования стало выявление закономерностей СПР для трансляторов с ЯВУ исходя из. концепции ООП, что в предлагаемых в диссертации-полноте и объеме проделано впервые.

Полученная модель СПР нашла реальное воплощение в рамках семантического анализа транслятора ПЛ/1-Э, который впервые в нашей стране разработан с полного языка ПЛ/1, определяемого американским национальным стандартом ПЛ/1.

Теоретическая модель СПР является одним из практических шагов к. автоматизации процесса семантического анализа, что в настоящее время пока не по силам существующим системам построения трансляторов ( СПТ ).

ПРАКТИЧЕСКАЯ ЗНАЧИМОСТЬ И РЕАЛИЗАЦИЯ РЕЗУЛЬТАТОВ РАБОТЫ. Система программирования ПЛ/1—Э реализована на МВК "Эльбрус-1" и "Эльбрус—2".

Объем системы около 110 тыс.строк на языке Эль—76.

-h -

Системе поставлена и эксплуатируется я нескольких организациях.

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

АПРОБАЦИЯ РАБОТЫ. Результаты работы докладывались на конференции молодых ученых и специалистов в ИТМ и ВТ АН СССР им. С.А.Лебедева (Москва,1978), на конференции молодых специалистов и членов НТОРЭС им. А.С.Попова (Москва,1983), в ИПК (Ленинград, 1986), на школе-семинаре "Создание программного обеспечения вычислительных комплексов и систем новой архитектуры" (Новосибирск, 199В) , а также на научно—технических семинарах Нф ИТМ и ВТ АН СССР, ВЦ СО АН СССР, ИТМ и ВТ АН СССР, на объединенном семинаре НГУ, ИСИ СО АН СССР и Нф ИТМ и ВТ АН СССР.

ЛИЧНЫИ ВКЛАД АВТОРА. Автор принял участие в разработке технического проекта СП ПЛ/1—Э. Принимал активное участие в выработке технологии работ для этого сложного и многопланового изделия. В течении двух лет руководил технологическим советом разработки, и на конечном этапе возглавил проект.

В рамках модельной реализации СП ПЛ/1 автором реализован препроцессор ПЛ/1 и ряд процедур на стадии синтеза.

В производственной реализации автором спроектированы и реализованы стадия семантического анализа и ряд процедур стадии синтеза. В рамках объектно—ориентированного подхода к описанию процесса трансляции автором разработана модель семантических преобразований, определившая технологию реализации семантической стадии в СП ПЛ/1—Э; в качестве формального списания модели семантических преобразований (СПР) разработан метаязык на базе синтгмсичсс:^:: р^с^прснип 5ЕУ Зль-7о, который апробирован в качестве языка проектирования семантической стадии в СП ПЛ/1—Э.

СТРУКТУРА ДИССЕРТАЦИИ. Диссертация состоит из введения, четырех глав, заключения, списка литературы (88 наименований) и списка сокращений. Диссертация изложена на 100 страницах машино-

писного текста.

СОДЕРЖАНИЕ РАБОТЫ

ВО ВВЕДЕНИИ отмечается актуальность предпринятого в работе исследования: объектно-ориентированный подход, в силу его универсальности и концептуальной целостности, привлекает внимание системных программистов, и все чаще предпринимаются попытки его практического использования в, различных областях программирования.

В обзорной части дается общий контекст использованных в работе понятий, показывается генезис таких понятий как "семантическое преобразование", "абстрактный объект", "объектная схема трансляции". Кратко излагается содержание диссертации.

В ПЕРВОЙ ГЛАВЕ описывается объектная схема трансляции. Раскрываются ее основные элементы.

ОБъЕКТНО—ОРИЕНТИРОВАННЫИ ПОДХОД (ООП) представляет собой дальнейшее развитие идеи абстрактных типов данных (АТД) в сторону формализации понятия абстрактного объекта. В настоящее время в рамках парадигмы ООП обозначены два направления. Первое связано с развитием концепции АТД в языках программирования. Считается, что все языки, поддерживающие АТД, в той или иной степени поддерживают и ООП. Наиболее полно и последовательно ООП поддерживается языком Смолток . Элементы ООП имеются в языках Ада и Си++. В этом направлении развития ООП представляет собой определенную методологию, ориентированную на разработку и применение технологии манипулирования объектами на уровне языков программирования высокого уровня (ЯВУ).

Второе направление развития ООП связано с разработкой технологий изготовления программных изделий на базе концепции абстрактного объекта. Это направление представляет практический интерес для системного программиста, поскольку позволяет специфицировать те или иные стороны процесса изготовления систем программирования (СП) в терминах ООП. В качестве типичного примера такого использования концепции ООП можно привести ТИП—технологию.

Оба эти направления имеют свои исторические предпосылки и

до определенного времени развивались параллельно. Предпринимаемые в последнее время попытки интеграции этих направлений базируются на универсальности понятия "объект".

ПОНЯТИЕ ОБъЕКТА. Важнейшей характеристикой объекта является набор его атрибутов, которые позволяют говорить о целостности объекта, его принадлежности определенной предметной области.

Классификация объектов в той или иной области науки является, по сути, определенным этапом в познании соответствующей предметной области, фиксирующим достигнутый уровень понимания.

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

В теории и практике программирования термин "объект" трактуется неоднозначно. Концепция ООП, призванная формально специфицировать связанные с этим термином понятия, пока этой цели не достигла. Не претендуя на всеобъемлющее исследование этого вопроса, в диссертации рассмотрена система понятий, связанных с термином "объект" в программировании.

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

Когда объект обладает физическим уровнем описания ( по аналогии с "переменной" можно сказать, что объект обладает в этом случае значением ), обычно говорят об экземпляре объекта или о конкретном объекте.

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

Мощность языка описания объектов в ряде случаев позволяет говорить о качественно новом уровне описания - концептуальном. Этот уровень характеризуется тем, что для объекта определяется Функциональный интерфейс, фиксирующий способ работы с данным

-г-

объектом, или, как принято говорить в этом случае, объект выступает в роли "абстрактного типа данных" (АТД). Четкой границы' между логическим уровнем описания и концептуальным нет. Собственно, поэтому наблюдается такое разнообразие терминов при рассмотрении объектов на концептуальном уровне (кластеры, модули, пакеты, классы и т.д.). Каждый из этих терминов подчеркивает те или иные свойства объектов, которые авторы терминов сочли необходимым особо отметить.

Последний уровень описания объектов, который имеет смысл выделить, — это внешний (пользовательский) уровень. Объект в данном случае является средством моделирования определенной предметной области. Здесь важна концепция работы с объектрм как с единым целым (концептуальный уровень) и конкретная специализация объекта в рамках моделируемой предметной области. На этом /

уровне мы имеем дело с "абстрактными объектами" (АО). АО представляет собой АТД, ориентированный на описание конкретной предметной области. Он занимает определенное место в структуре соответствующей модели этой области. Специфика функционирования АО в данной модели определяет качественно иной уровень использования АТД как средства моделирования тех или иных объектов предметной области.

Суммируя исследование абстрактного объекта в рамках ООП, в работе отмечаются его характерные свойства:

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

— АО обладает в той или иной мере свойством "саморазвития", обеспечивающим передачу "сообщений" другим объектам и обработку принятых "сообщений";

— объект обладает удобным интерактивным интерфейсом на основе "окон" и "меню" (если конечно моделируемая через абстрактные объекты область допускает наличие такого интерфейса).

Здесь следует отметить, что один из истоков развития па-

радигмы ООП лежит в области развития. СУБД и начавшееся обратное влияние ООП на теорию СУБД обогатит последнюю новыми практическими идеями.

Таким образом, мы видим, что понятие "объект" логично разворачивается от конкретного (физического) объекта до уровня абстрактного, и уровень описания объекта соответствует, в каком—то смысле, уровню понимания природы его использования.

В проекте СП ПЛ/1 была предпринята попытка моделирования через абстрактные объекты процесса трансляции ЯВУ. Опыт этой работы был обобщен в концепции "объектная схема трансляции".

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

ОБъЕКТНАЯ СХЕМА ТРАНСЛЯЦИИ. Парадигма ООП выглядит достаточно привлекательно, чтобы попытаться использовать ее в качестве основы технологии разработки трансляторов.

Во—первых, привлекает возможность использования уже готовых, развитых в СУБД, средств работы с объектами для спецификации внутреннего представления пользовательских программ в рамках транслятора.

Во—вторых, парадигма ООП позволяет регулярным образом специфицировать процесс трансляции, а это' является весьма эффективным инструментом в борьбе со сложностью программы транслятора, что подтвердила разработка СП ПЛ/1. Далее, практическая выгода лежит в области переиспользования алгоритмов работы с объектами как разных языков пригряим^р;»:! , так и разных, но близких по функциональной структуре ЭВМ. Важно отметить также, что высокая степень унификации, присущая абстрактным объектам, допускает в ряде случаев автоматическое порождение конкретного объекта по его спецификации, что позволяет говорить о частичной

Или полной автоматизации процесса получения транслятора при условии спецификации синтаксиса и семантики ЯВУ на уровне АО.

В настоящее время формируется представление о программе пользователя как о совокупности "типов данных" (конструкций ЯВУ - операторов, описаний и т.п.), т.е., по сути, речь идет о представлении (моделировании) программы в терминах АО.

Учитывая все вышесказанное, процесс трансляции можно понимать как преобразование объектов программы пользователя в объекты АЭВМ. Поэтому естественно описать этот процесс в терминах ООП и логично использовать для этого объектно-ориентирован— ный язык (ОЯ). Однако языка с АТД, отвечающего требованиям модели семантических преобразований не оказалось. В связи с этим в проекте СП ПЛ/1 был использован разработанный автором метаязык с АТД — ЯСП (Язык спецификации Семантических Преобразований) . Этот метаязык был использован в качестве языка проектирования семантической стадии в СП ПЛ/1. Основное отличие ЯСП от аналогичных разработок языков с АТД лежит в плоскости стандартизации интерфейса объектов, используемых для спецификации процесса трансляции.

Интерфейс объектов включает в себя операции (функции) преобразования структуры и модификации содержимого объектов. Такого рода преобразования А.П.Ершов назвал "семантическими заменами"; в системе Бета аналогичные операции называются "приведением". В работе используется термин "семантическое преобразование" (СПР), подчеркивая тот факт, что эти преобразования последовательно раскрывают семантику языковых конструкций и сводят ее к семантике АЭВМ.

Рассматривая совокупность СПР как систему, можно выделить в качестве базиса следующие пять типов СПРг

- установка атрибутов объекта (в том числе модификация атрибутов в зависимости от контекста специфицированного в этой операции);

- "типизация объекта" (распознавание типа объекта и поиск объекта среди множества однотипных объектов);

- преобразование структуры объекта (в операции задаются правила преобразования структуры: ее новый вид — синтаксис и способ формирования полей новой структуры);

- стандартное преобразование (группа СПР, обеспечивающая

- /О -

интерфейс с АЭВМ)|

— "модульное преобразование" (СПР, не относящиеся к первым четырем типам операций или их суперпозиции и написанные на алгоритмическом ЯВУ) .

.Опыт реализации СП ПЛ/1 показывает целесообразность выделения такого базиса СПР. Исследование системы СПР для определенного круга языков программирования поднимает ряд интересных вопросов, которые концептуально можно объединить в понятии "модели семантических преобразований". Например, имеет смысл в семантике ЯВУ выделить "вертикальные срезы", такие, что каждому срезу будет соответствовать строго определенная группа СПР (такой анализ проделан автором для ЯВУ ПЛ/1). Не менее интересен вопрос выбора представления объектов ЯВУ в трансляторе. Здесь возможна очевидная стратегия — каждой конструкции языка сопоставляется объект, как это сделано для ПЛ/1. Но, по—видимому, этот подход не является оптимальным, и по мере исследования' "объектной схемы" будут найдены другие способы выделения объектов в ЯВУ.

ВО ВТОРОЙ ГЛАВЕ дается обзор семантических преобразований в ПЛ/1-трансляторе.

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

МОДЕЛЬ СПР отражает классификации СПР, преобразующих про1— раммные объ^сты в объекты АЭВП. Классификация основывается на выделении семантике языка "вертикальных срезов", когда тот или иной аспект семантики требует строго определенного набора СПР, базирующихся на рассмотренных выше пяти типах преобразований.

Конкретизация модели СПР в трансляторе выгладит как множество СПР,'ориентированных на объекты языка ПЛ/1 " КВК "Эльбрус". Унификация преобразований наблюдается на двух уровнях: во-первых, на уровне базовых СПР, через посредство которых реализуются все конкретные СПР транслятора (этот уровень унификации обеспечивается языком проектирования ЯСП, включающим эти базовые СПР), и во—вторых, на уровне семантически эквивалентных

конструкций языка, обрабатываемых параметризованным набором СПР.

В последнее время в технологии создания больших вычислительных систем на первое место выдвигаются критерии удобства отладки и сопровождения этих систем. На это направлен ряд появившихся в последнее время технологий: разновидности структурного программирования, модульная сборка программ, ТИП—технология и др. ООП подхватывает в этом смысле эстафету, являясь логическим развитием идеи модульного программирования в симбиозе с концепцией АТД, что и отражено в парадигме объектно-ориентированной схемы трансляции.

Во второй главе рассмотрена также структура объектов в трансляторе с языка ПЛ/1.

Абстрактный объект, как он определен выше, отличается от АТД тем, что представляет собой АТД, ориентированный на конкретную предметную область. АТД становится в этом случае объектом манипуляции в рамках модели этой предметной области. Более того, сама модель описывается в терминах соответствующих абстрактных объектов.

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

Поскольку язык программирования является, по сути, системой абстрактных объектов, ориентированных на определенную область описания алгоритмов (в специализированных языках эта область уточняется), мы можем доопределить эти АО языка семантическими преобразованиями и тем самым полностью специфицировать все объекты транслятора. Однако реальна картина выглядит несколько сложнее: некоторые объекты ЯВУ только подразумеваются в про1— раммах пользователя (например, контекстуальные объявления в Ш1/1), другие объекты процесса трансляции вообще не имеют прототипа в ЯВУ (например, модуль диагностики). Поэтому процесс

-и -

проектирования объектом транслятора с необходимостью должен

вестись с двух сторон: от объектов ЯВУ и от объектов АЭВМ (к АЭВМ и от нее к языку).

Следовательно, содержательно объекты транслятора в предложенной схеме представляют собой АО ЯВУ, дополненные специальными объектами транслятора, которые все вместе являются базой для описания процесса трансляции. формально объекты должны быть специфицированы на том или ином метаязыке типа ЯСП и в конечном счете - на инструментальном языке данного проекта.

В данной главе показан процесс выделения АО в языке ПЛ/1, базирующийся на классификации языковых конструкций ЯВУ.

В рамках объектной схемы трансляции уточняется определение семантики языковых конструкций следующим образом.

СЕМАНТИКА объекта ЯВУ определяется последовательностью семантических преобразований, определяющих различные состояния этого объекта в процессе трансляции. Понятие "семантическое преобразование" шире понятия "синтаксическое правило вывода", поскольку включает в себя правила формирования структуры АО на том или ином этапе его существования и правила заполнения этой структуры. Следовательно, в дальнейшем можно вести речь о семантических преобразованиях, подразумевая, что они включают в себя и синтаксические правила вывода.

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

3 семантике ЯВУ можно выделить следующие разделы:

1) семантика "свернутых лексем", т.е. правила порождения краткой записи для определенного класса лексем;

2) семантика "плавающего синтаксиса", т.е. правила, допус— капщие перестановку лексем в рамках определенного множества лексем, а также позволяющие опускать элементы этого множества.

-/з-

в предположении, что вместо них подразумеваются (по умолчанию) некоторые стандартные элементы;

3) семантика "интегрированных конструкций" языка — правила синтаксического объединения функционально однотипных конструкций ЯП в одну;

4) семантика "скрытых операций" — .правила визуализации "скрытых" (отсутствующих в программе пользователя) конструкций языка в соответствии с контекстом, который требует их наличия;

5) семантика "многозначных лексем" — правила, позволяющие раскрыть конкретный смысл "служебной лексемы" (языкового терминала), которая используется в разных контекстах и имеет там различную семантику;

6) семантика интерфейса с данными - правила определения типов данных в языке и спецификация доступа к данным;

7) "операционная семантика" — правила исполнения языковых конструкций на виртуальной ЭВМ.

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

На примере языка ПЛ/1 эти разделы семантики раскрываются подробно.

В ТРЕТЬЕЙ ГЛАВЕ конспективно даны общие принципы конструирования языка описания семантических преобразований. Описан синтаксис и семантика языка ЯСП.

ЯСП предназначен для представления АО, моделирующих процесс трансляции в рамках объектной схемы.

Синтаксис абстрактного объекта представлен разновидностью нормальной формы Бэкуса. Семантика АО задается через семантические преобразования, содержательно соответствующие пяти базовым СПР рассмотренным выше:

— установка (формирование значений атрибутов АО),

— поиск и проверка (поиск АО па значению их атрибутов, проверка соотношений, накладываемых на значения атрибутов),

- замещение (правила преобразования структуры объекта),

— модуль (расширяемая библиотека СПР, реализованных на различных языках программирования).

Синтаксис языка ЯСП для иллюстрации описан через посредство самого ЯСП. Примеры использования языка.ЯСП для описания алгоритм трансляции приведены в конце четвертой главы.

В ЧЕТВЕРТОЙ ГЛАВЕ подробно рассматриваются вопросы практического использования концепции ООП в рамках транслятора с языка ПЛ/1. Дан анализ технологических аспектов создания СП ПЛ/1-Э и определено место объектно-ориентированной схемы трансляции в технологии разработки этого изделия. Кратко описана структура транслятора с языка ПЛ/1. Особое внимание уделено вопросам реализации семантической стадии транслятора.

Семантический разбор является наиболее трудной частью в разработке транслятора с ЯВУ, в особенности с такого языка, как ПЛ/1, известного своей многоуровневой системой умолчаний и разнообразием представляемых пользователю средств. Все это усложняет семантический разбор, и при его реализации наряду с высокой квалификацией исполнителей необходимы специальные меры в борьбе с предельной сложностью соответствующих алгоритмов, гарантирующие адекватное отображение алгоритмов на инструментальный язык и определенную "прозрачность" этих алгоритмов, облегчающую отладку и сопровождение данной стадии транслятора, тем более что при наличии развитой АЭВМ проблемы синтеза значительно упрощаются, а вг иосы синтаксического разбора даже для такого языка, как ПЛ/1, достаточно хорошо проработаны, поэтому центр проблем реализации транслятора перемещается в область семантического разбора конструкций ЯВУ.

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

1

В работа отмачаатся, что преимущества применения ООП а

технологии создания больших вычислительных систем (по отношению к классической функциональной сборке программ) вырастают из преимуществ модульной технологии сборки систем и базируются на концепции сборки программ из абстрактных объектов (АТД, специализированных на данную предметную область). Такого рода преимущества достаточно полно отражены в литературе. Однако аопло— 1щение этих положительных аспектов ООП в практике создания трансляторов в существенной мере завысит от уровня инструментальной АЭВМ и мощности языка реализации, который с необходимостью должен включать в себя элементы ООП. В этом плане АЭВМ для МВК "Эльбрус" отвечает этим требованиям, как отвечает им и язык реализации Эль-76, дополненный системой управления структурированными файлами (ССф).

В конце глагч-1 приведен ряд примерев проектирования алгоритмов ПЛ/1-транслятора на языке ЯСП.

Автор глубоко благодарен коллегам по проекту "ПЛ/1—Эльбрус", а также коллегам в ИТМ и ВТ за плодотворное сотрудничество при разработке СП ПЛ/1—Э. Автор признателен В.А. Маркову,

И.В. Поттосику, В.И. Мелехову, В.И. Гололобову, В.А. Исаеву, Л.А. Корневой за полезные критические замечания к данной работе.

НА ЗАЩИТУ ВЫНОСЯТСЯ следующие основные положения:

1) в рамках объектно—ориентированного подхода к описанию процесса тр'ансляции разработана модель семантических преобразований (СПР), практические аспекты которой внедрены в СП ПЛ/1—Э. В основу модели положена типизация объектов в языках типа ПЛ/1, Алгол—68, Алгол—60, фортран, Паскаль; а также типизация операций преобразования этих объектов в объекты абстрактной ЭВМ (на роль которой в МВК "Эльбрус" претендуют интерпакеты);

2) в качестве формального описания модели СПР разработан метаязык на базе синтаксических расширений ЯВУ Эль—76, который апробирован в СП ПЛ/1—Э в качестве языка проектирования алгоритмов семантической обработки в трансляторе, который впервые в Советском Союзе получен с полного языка ПЛ/1, определенного американским национальным стандартом. СП ПЛ/1-Э реализована на МВК "Эльбрус—1" и "Эльбрус—2" при непосредственном участии ав—

тора ■ проектировании, реализации и руководстве в данном проекте. Система в настоящее время эксплуатируется в нескольких научно-технических организациях страны. Объем системы 110 тыс. строк на языке Эль-76;

3) автором спроектирована и реализована семантическая стадия транслятора с языка ПЛ/1, в работе над которой использованы результаты теоретических разработок модели СПР, которая явилась технологическим базисом, направленным на преодоление алгоритмических трудностей, связанных с чрезмерной сложностью семантики языка ПЛ/1. Высокая степень унификации, присущая абстрактным объектам и объектно-ориентированному подходу вцелом, удачное сочетание с элементами других технологий, позволили надежно и эффективно реализовать в трансляторе стадию семантического анализа, и что важно отметить, получен легко модифицируемый продукт, как показала работа над переориентацией транслятора на язык ПЛ/1-ЕС, и кроме того, большое количество изменений не привело к "засорению" алгоритмов транслятора;

4) опыт использования объектно—ориентированного подхода в разработке СП ПЛ/1—Э обобщен в рамках объектно—ориентированной схемы трансляции. В СП ПЛ/1-Э реализованы следующие аспекты данной технологической схемы:

— на этапе проектирования сложные алгоритмы семантической обработки были специфицированы на метаязыке описания СПР, это значительно облегчило реализацию этих алгоритмов;

— реализация семантической стадии сохранила преемственность этапа проектирования: основные объекты, выделенные на этапе пр*? гирования, специфицированы на языке Эль-76, совместно с семантическими преобразованиями этих объектов;

— транслятор выходит на "интерпакеты", концепция которых наиболее близка идее абстрактной ЭВМ в парадигме объектной схемы трансляции.

ОСНОВНОЕ СОДЕРЖАНИЕ ДИССЕРТАЦИИ ОПУБЛИКОВАНО в следующих

1. Компилятор с языка ПЛ/1 для МВК "Эльбрус": отчет (техническ

проект)/ АН СССР. Ин—т точной механики и вычисл. техники.

Новосиб. фил.: руководитель В.Л. Катков. - АТИ ЛБ132/08.00.

Новосибирск, 1975. - 111с. - авт.: Аязян Е.К., Бежанова Н.М

Конев A.A., Корн**« Л.А., Лысковский В.И., Чуприк Г.Б., Шелестов С.М.

2. Лысковский В.И. Препроцессор ПЛ/1// Тез. докл. конф. молодых ученых и специалистов ИТИ и ВТ АН СССР. —

М., 1978. - С.71-73.

3. Лысковский В.И. Реализация агрегатных выражений в компиляторе языка ПЛ/J с учетом особенностей МВК "Эльбрус"//

Тез. докл. конф. молоди* спгциалистов и членов НТОРЭС

о

им. А.С.Попова. - М., 19S3. - С.45-46.

4. Технологические аспекта реализации семантической стадии в трансляторе с языка ПЛ/1 для МВК "Эльбрус": отчет (заключит.)/ АН СССР. Ин—т точной механики и вычисл. техники.

Новосиб. вил.; Руководитель В.А. Марков. — АТИ-ДН512/06. — Новосибирск, 1990. - 93с. - Авт.: Лысковский В.И.

5. Конев A.A. , Лыскозск-ин В.И. , Торопов В.И. Структура транслятора с языка ПЛ/1. - М., 1990. -(Препринт/ АН СССР. Ин—г точной механики и вычисл. техники. Новосиб. фил.; N 20). — 32с.

А. Лысковский В.И. Объектно—ориентированная схема трансляции на примере транслятора с языка ПЛ/1. — М.,1990. — (Препринт/ АН СССР* Ин-т точной механики и вычисл. техники. Новосиб. фил.; N 112).

t