Институт

Степанов Г.Г. Материалы Рабочей группы по реализации языков программирования

Протокол 5-го заседания
Рабочей группы по реализации языков программирования

С 3 по 5 июня 1983 г. в Кишиневском госуниверситете проходило 5-е заседание Рабочей группы по реализации языков программирования. Основным вопросом повестки дня был вопрос о расширяемых языках и системах. В докладах и дискуссиях были обсуждены как общие проблемы расширяемых языков и систем, так и опыт конкретной реализации таких систем. Было отмечено разнообразие механизмов расширений, применяемых в языках и системах программирования. К средствам расширения можно отнести определение процедур, определение типов, макротехнику, введение абстрактных и инкапсулированных типов данных, средства синтеза программ.

В докладе С.С.Лаврова (Ленинград) были рассмотрены проблемы расширяемых языков и систем  на примерах расширений разного уровня. В качестве примеров приводились языки АБВ и Декарт. На их основе демонстрировалась реализация таких проблем расширяемости, как синтаксическая и семантическая расширяемость, выбор базовых конструкций, наличие внешних и внутренних средств расширения, эффективная реализация расширения.

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

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

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

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

Необходимость объединения СПТ с расширяемой системой отмечалась в докладе А.А.Летичевского и Н.М.Мищенко (Киев), и возможность такого объединения демонстрировалась на примере системы программирования ТЕРЕМ. Авторы отмечали, что при создании базового языка с возможностями расширения минимальность базового языка может быть компенсирована мощными возможностями расширений.

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

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

Э.Х.Тыугу (Таллинн) отметил для таких средств расширения, как АТД, необходимость задания спецификации и реализации АТД, важность введения взаимодействия типов (сочетания, дополнения и т.д.), сказал, как эти возможности реализованы в такой системе синтеза программ, как ПРИЗ.

В докладе В.Н.Капустиной и М.И.Селюна (Москва) был изложен опыт реализации языка АБВ и было показано, как базовые средства языка позволяют реализовать сложные синтаксические конструкции.

А.А.Кубанский (Ленинград) рассказал о методах реализации языка CLU (в первую очередь, средств расширения) в трансляторе для МВК Эльбрус.

А.Л.Шмундаком (Таллинн) была представлена система МИС — мобильная инструментальная система для создания ППП, являющаяся развитием систем ПРИЗ и уделяющая особое внимание эффективности реализации.

А.Г.Красовский (Москва) рассказал о системе ИСКРА (Интегрированная Система Качественной Разработки) с базовым языком Рефал, отметил, в частности, возможности верификации программ на расширении Рефала, реализованные в системе.

Л.Ф.Белоус и Ю.В.Петухов рассказали о синтаксически управляемом макропроцессоре общего назначения и привели некоторые сравнительные характеристики нескольких макропроцессороов для ЕС ЭВМ.

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

Для совместной работы по этим направлениям было принято решение о целесообразности создания двух соответствующих целевых подгрупп, в связи с чем ряду членов и наблюдателей РГ было дано задание подготовить к следующему заседанию РГ уточнение направлений деятельности и конкретные цели каждой ЦПГ.

Предполагаемый состав первой ЦПГ: Д.Н.Тодорой (председатель), Н.М.Мищенко, М.И.Селюн.

Предполагаемый состав второй ЦПГ: Л.Ф.Белоус, М.С.Марголин, А.С.Марков, И.И.Пилецкий, В.Л.Темов.

Помимо основного вопроса на заседании РГ были рассмотрены проблемы терминологии в области языков программирования и методов трансляции. В докладе Д.Б.Подшивалова (Москва) и последовавшей дискуссии отмечался ряд серьезных затруднений, связанных с отсутствием целенаправленной деятельности в этом направлении — неограничиваемое влияние англоязычных плохопереведенных терминов, несогласованность и случайность выбора терминологии, наличие различных терминов для одинаковых или близких понятий.

Отмечались связанные с этим проблемы преподавания, оформления документации и т.п. Была организована Целевая подгруппа по терминологии (Д.Б.Подшивалов — председатель, В.М.Курочкин, С.С.Лавров, А.С.Марков, С.Б.Покровский), задачей которой является подготовка комментированного реестра терминов в соответствии с определяемыми понятиями (своего рода терминологического словаря), выработка предварительных соображений по отбору терминов и методика терминологической работы в области деятельности РГ.

Стандартизация не является непосредственной задачей ЦПГ, ее работа должна заключаться в анализе и комментировании терминов и привлечении внимания общественности к составу существующей терминологии. РГ приняла решение обратиться к редколлегии журнала "Программирование" с просьбой открыть в журнале рубрику, посвященную обсуждению терминологических проблем.

В качестве специального тематического доклада Рабочей группе был представлен доклад Ю.В.Капитоновой, А.А.Летичевского и Н.М.Мищенко (ИК АН УССР), посвященный изложению методов реализации языка МАЯК, предназначенного для таких перспективных вычислительных средств, как макроконвейерная вычислительная система.

На заседании был утвержден план дальнейшей работы РГ, включающий проведение в 1984 г. двух заседаний:

  • во Львове в апреле-мае с основным вопросом "Системное окружение языковых процессоров" и тематическим докладом по системе ДЕФИПС;
  • в Новосибирске в октябре с основным вопросом "Методы реализации АТД в языках спецификаций".

На заседании отсутствовали члены РГ:  Ю.М.Баяковский, А.О.Вооглайд, К.С.Кузьмин, В.В.Луцикович, Д.И.Федосеев, М.Г.Цуладзе, В.В.Чернигов, Г.Д.Чинин, Е.Л.Ющенко.

В качестве наблюдателей на заседании присутствовали: Л.П.Бабенко, В.А.Евстигнеев, Е.Н.Капустина, А.Г.Красовский, А.А.Кубанский, А.С.Марголин, Н.М.Мищенко, Ю.В.Пастухов, С.Б.Покровский, М.Г.Рябовейтра, В.С.Сафонов, М.И.Селюн, Г.С.Цейтин, А.Л.Шмундак.

Отчет о работе
cовещания разработчиков трансляторов и пользователей языка Симула

21-22 июня в Новосибирске состоялось Совещание разработчиков трансляторов и пользователей языка Симула.

Совещание проводилось Рабочей группой по реализации языков программирования при Комиссии ПО СМО КВТ АН СССР совместно с ВЦ СО АН СССР и НФ ИТМ и ВТ АН СССР. В работе Совещания приняли участие представители из организаций страны из гг. Москва, Новосибирск, Ростов-на-Дону, Иркутск.

Пленарные доклады были посвящены следующим вопросам.

  1. Развитие языка Симула и деятельность международной организации Ассоциация пользователей Симула
    Докладчик В.В.Окольнишников, НФ ИТМ и ВТ.
  2. Транслятор с языка Симула для МВК Эльбрус
    Докладчик — Х.Д.Дженибалаев, ВЦ РГУ.
  3. Система программирования Симула ИПМ для ЭВМ БЭСМ-6 и ЕС ЭВМ
    Докладчик — С.П.Бычков, МИФИ.
  4. Система программирования Симула ГДР
    Докладчик — В.В.Окольнишников, НФ ИТМ и ВТ.

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

Для дальнейшей популяризации и распространения языка Симула совещание считает необходимым:

  1. подготовить учебник по языку Симула, в котором подчеркнуть и другие (а не только моделирование) возможности Симулы;
  2. подготовить перевод последнего описания языка Симула;
  3. организовать аналогичное совещание или школу-семинар по языку Симула в 1984 г.

Решение семинара по языкам программирования
для микроЭВМ  и методам их реализации

Новосибирск, 28-30 июня 1983 г.

В семинаре приняли участие представители советских организаций, разрабатывающих программное обеспечение (ПО) средств микропроцессорной техники (МПТ). Всего в семинаре участвовали более 30 представителей из организаций Москвы, Ленинграда, Таллинна, Киева, Новосибирска, Минска, Вильнюса, Каунаса, Баку, Кишинева, Иркутска, Свердловска и других городов.

На семинаре были заслушаны доклады:

  1. А.Д.Мильнев (Киев) "Языки для написания программ и микропрограмм в инструментальном комплексе АРМ2-05 и их реализация".
  2. Ю.Н.Баранов (Ленинград) "Язык системного программирования АОЛ/М и его реализация для микропроцессоров серии И-5580".
  3. С.Н.Баранов, В.А.Кирилин, Н.Р.Ноздрунов, С.М.Селенжи (Ленинград) "Совмещенные трансляторы и подходы к их реализации".
  4. Ф.А.Каганов, Ю.В.Загубин (Москва) "Языки программирования комплексов программ (КП), работающих в реальном масштабе времени".
  5. А.С.Марков (Москва) "Уровень языка и производительность труда программиста.
  6. З.К.Карчрускас, Р.В.Ваитас, В.Ю.Валайтис (Каунас) "Система генерации ассемблеров для программирования микропроцессоров".
  7. Г.И.Погосянц (Москва) "Средства подготовки микропрограмм в системе ФОРОС".
  8. А.В.Марин (Таллинн) "Языки микропрограммирования для микропроцессорной техники".
  9. Н.Б.Морозов, В.П.Котляров (Ленинград) "Технологический комплекс разработки программного обеспечения с генерацией инструментальных систем для проблемных языков микроЭВМ".
  10. В.П.Котляров, А.В.Самочадин (Ленинград) "Адаптация операционной среды, средств тестирования и отладки для резидентной системы разработки программного обеспечения на проблемном языке микроЭВМ".
  11. А.Г.Астановский, В.Н.Ломунов (Таллинн) "Разработка процессора, интерпретирующего программы на языке ФОРТ".
  12. Г.В.Златкис (Вильнюс) "Диалоговая система структурного программирования".
  13. Н.Ф.Фоминых (Ленинград) "Разработка архитектуры микроЭВМ, ориентированная на статические алгоритмические языки высокого уровня (АЯВУ)".
  14. А.Н.Терехов (Ленинград) "Создание виртуальной 16-битовой машины, ориентированной на статические АЯВУ, на однобитовом процессоре".
  15. А.А.Берс, Ю.В.Коваленин, М.В.Овчаренко, В.Г.Поляков, С.Б.Руднев, В.А.Четвергин (Новосибирск) "Средства программирования для микропроцессорных систем на основе языков вместо ассемблера".
  16. А.А.Берс, В.Г.Поляков, С.Б.Руднев (Новосибирск) "Система средств программирования вместо универсального языка (принципы системы ЯХОНТ)".

В рамках семинара были проведены три дискуссии.

  1. Требования к языкам общения с микроЭВМ со стороны проблемных областей
    (Руководитель — В.П.Котляров).
  2. Программно-аппаратная архитектура микропроцессорных комплексов и средства обеспечения мобильности программ
    (Руководитель — А.А.Берс).
  3. Общая дискуссия по проблемам языков программирования для микроЭВМ и методы их реализации
    (Руководитель — А.П.Ершов).

На дискуссиях выступило около 20 участников семинара.

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

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

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

Отмечались определенные положительные черты языка ФОРТ, предлагающего достаточно простой подход для реализации пользовательской свертки понятий.

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

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

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

Было отмечено, что реализация смешанных вычислений при конкретизации программ реального времени обеспечивает корректность преобразованных программ.

Cеминар отмечает недостаточность отладки ПО управляющих и встроенных микроЭВМ на кросс-системах, в связи с чем возникает необходимость дополнения их резидентными комплексами разработки программ на микроЭВМ.

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

Семинар рекомендует:

  1. провести анализ классов пользователей и типов МПТ для определения подходящих языков программирования;
  2. усилить работу по анализу и отбору тех черт языков высокого уровня, которые обеспечивают эффективную реализацию;
  3. усилить работу по анализу возможностей схемной реализации языков высокого уровня;
  4. провести работу по включению в языки высокого уровня средств, ориентированных на встроенные вычисления;
  5. внедрить в промышленное использование реализацию процессоров, основанных на идеологии виртуальных машин;
  6. внедрить в промышленное использование подход к реализации программного обеспечения на основе смешанных вычислениий;
  7. внедрить в промышленное использование систему программирования для микропроцессоров ЯВА, учитывая ее возможности к адаптации к широкому кругу микропроцессоров и применений;
  8. опубликовать доклады, представленные семинару и отобранные для публикации программным комитетом, поручив подготовку и редактирование сборника трудов семинара В.П.Котлярову и Р.К.Рауду;
  9. организовать разработку типовых требований к кросс-системам для языков высокого уровня, поручив руководству РГ РЯП и ЦПГ МПТ рассмотреть возможность создания рабочей группы для такой разработки;
  10. усилить связь и координацию работ и проводимых мероприятий по языкам программирования для микроЭВМ и методам их реализации между комиссией СМО ККВТ АН, научно-технической комиссией по языкам и системам  програмирования ГКНТ и РГ ТП ГКНТ;
  11. регулярно проводить семинары по языкам программирования для микроЭВМ и методам их реализации, поручив руководству РГ РЯП и ЦПГ МПТ организацию этих семинаров и уточнение их тематики.

Отчет о деятельности за 1983 г.
Рабочей группы по реализации языков прогаммированиия,

действующей при Комиссии по системному математическому обеспечению координационного комитета по вычислительной технике АН СССР

В 1983 г. проведены следующие мероприятия.

  1. Проведено заседание Рабочей группы в г.Кишиневе — 41 чел.
  2. Проведены совместные семинары с Целевой подгруппой по технологии программирования микропроцессорной техники РГ ТП по языкам и методам их реализации для микроЭВМ в г.Новосибирске —  около 50 чел.
  3. Проведен рабочий семинар реализаторов языка Симула-67 в г.Новосибирске — около 20 чел.
  4. Продолжена активная работа ЦПГ по измерению систем программирования.
  5. Создана ЦПГ по анализу и классификации средств расширения в языках программирования в составе: Д.Н.Тодорой (председатель), Н.М.Мищенко, М.И.Селюн.
  6. Создана ЦПГ по исследованию характеристик существующих макрогенераторов в составе: Л.Ф.Белоус, М.С.Маргалин, А.С.Марков, И.И.Пилецкий, В.Л.Темов.
  7. Создана ЦПГ по проблемам терминологии в области языков программирования и методов трансляции в составе: Д.Б.Подшивалов (председатель), В.М.Курочкин, С.С.Лавров, А.С.Марков, С.Б.Покровский.
  8. Члены группы приняли активное участие в проведениии конференции в г.Таллинне и в г.Кишиневе и в проведении ростовской школы-семинара по смешанным вычислениям.

Информация о проведенных заседаниях и семинарах:

1.  С 3 по 5 июня в г.Кишиневе проходило очередное заседание группы с основным вопросом: расширяемые языки и системы.

Было заслушано 14 докладов, в которых обсуждались как общие проблемы расширяемых языков и систем, так и опыт конкретной реализации таких систем. В качестве тематических докладов заслушаны: "О терминологии в языках и методы трансляции" и "Реализация языка МАЯК".

На заседании были утверждены три новые ЦПГ и выработан план дальнейшей работы группы, включающий проведение в 1984 г. двух заседаний:

  • во Львове в мае с основным вопросом "Системное окружение языковых процессоров" и тематическим докладом по системе ДЕФИПС;
  • в г.Новосибирске в ноябре с основным вопросом "Методы реализации АТД и языков верификаций".

2. С 28 по 30 июня в г.Новосибирске проходил семинар по языкам программирования для микроЭВМ и методам их реализации.

Было заслушано 16 докладов и проведено 3 дискуссии.

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

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

3. С 21 по 22 июня в г.Новосибирске проходил рабочий семинар реализаторов языка Симула-67, на котором рассматривались вопросы развития языка и три конкретных реализации.

Решено подготовить учебник по языку Симула-67, перевод последнего описания и организовать аналогичный семинар в 1984 г.

План мероприятий на 1984 год
Рабочей группы по реализации языков программирования

  1. Провести заседание РГ РЯП в г.Львове с 21 по 26 мая, на котором рассмотреть следующие вопросы:
    • системное окружение языковых процессоров (отв. В.М.Пентковский);
    • система ДЕФИПС (отв. В.Н.Редько).
  2. Провести совместное с РГ по синтезу и преобразованиям программ заседание РГ РЯП с 1 по 22 ноября с основным вопросом "Методы реализации АТД и языков спецификации" (отв. Э.Х.Тыугу).
  3. Вести активную работу в созданных ЦПГ.
  4. Рекомендовать членам РГ РЯП принимать активное участие и оказывать содействие в проведении конференций по языкам программирования и методам трансляции.