Интерпретатор автокода Эльбрус. Виртуальные машины. Промышленное программирование. HLL- компьютер «Самсон»

Главным автором следующих двух работ безусловно является Николай Фоминых, который писал дипломную работу, а затем и кандидатскую диссертацию под моим руководством.

15. “Интерпретатор АК ЛГУ для ЕС ЭВМ” (учебно-методический материал), Изд.ЛГУ, 1981, соавторы — Гиндыш И.Б., Попов А.П., Рухлин А.П.. Фоминых Н.Ф., Швецова Г.А., кол-во страниц – 36

 

 

16. “Особенности имитационного комплекса на ЕС ЭВМ для отладки программного обеспечения МВК “Эльбрус”, М, ИТМ и ВТ АН СССР, N10, 1987, соавторы – Фоминых Н.Ф., Плоткин А.Л., кол-во страниц — 16

 

Ещё в 1974 году я познакомился с Борисом Арташесовичем Бабаяном – одним из руководителей создания отечественной ЭВМ Эльбрус. Чуть ли не весь мат-мех участвовал в создании пакетов прикладных программ для этой новой машины, а мы, кроме того, создали интерпретатор её базового языка Автокод на ЕС ЭВМ. Поскольку выпуск Эльбруса задержался на много лет, многие военные организации СССР разрабатывали программное обеспечение для Эльбруса, работая исключительно на нашем интерпретаторе. Руководил работами Николай Фоминых, а остальные сотрудники лаборатории работали у него простыми программистами. Я и сейчас, став большим начальником, не вижу ничего зазорного поработать программистом в рамках какогонибудь нового проекта под руководством кого-то из своих подчиненных. Во-первых, чтобы не забыть, как это делается, а во-вторых, чтобы получить собственное представление, насколько продукт или технология хороши.

Несколько лет по приглашению А.П. Ершова я вел занятия на летней школе юных программистов в Академгородке (г. Новосибирск). С этой школой у меня связана масса интересных и приятных воспоминаний, но, к сожалению, только одна публикация:

 

17. “Реализация диалогового учебного языка “Рапира” на ЕС ЭВМ” (тезисы), Тезисы докладов IV Всесоюзного симпозиума. Кишинев, 1983, соавтор – Звягина Н.И., кол-во страниц – 2.

 

Ученик А.П.Ершова – Гена Звенигородский создал оригинальную методику обучения школьников программированию и целую серию языков программирования с постепенно возрастающей сложностью. Я помню, что первые японские персональные ЭВМ Yamaha с цветным дисплеем были отданы Ершовым именно школьникам. На ЕС ЭВМ никаких инструментальных средств не было. Вместе с моей коллегой из Казанского университета Натальей Звягиной мы решили восполнить этот пробел, под нашим руководством группа из 10-12 школьников за 2 недели сделала работающую реализацию интерпретатора языка Рапира на ЕС ЭВМ.

С декабря 1980 года мы начали интенсивные работы по внедрению новых технологий программирования в военную промышленность. Главной движущей силой был капитан Iго ранга, доктор технических наук Морозов Виктор Петрович, который сумел выбить финансирование на эти работы и обеспечить нас современной вычислительной техникой. Объемы и важность работ были таковы что нам несколько раз пришлось делать доклады в Оборонном отделе ЦК КПСС, сотрудники которого, понимая, что сами они не в силах оценить истинный смысл технологии, отправляли нас на экспертизу в академические институты: по поводу УВК «Самсон» в ИТМ и ВТ (Бабаян даже высказал неудовольствие, чего это, мол, мы на Чайке к нему приезжаем, можно ведь и по-простому. Но нас в ЦК ни о чём не спрашивали), а по поводу технологии – в ВЦ СОАН СССР к А.П.Ершову (см. подробнее статью «Как я общался с А.П.Ершовым в формальной и неформальной обстановке» в разделе «Истории»). Несколько моих публикаций тех лет связаны с этим периодом:

 

18. “Реализация кросс-систем, транслирующих программы на языке Алголе 68 в коды спецЭВМ”, IV Всесоюзный симпозиум по системному и теоретическому программированию. Кишинев, 1983, кол-во страниц – 3.

 

 

19. “Внедрение в производство языков высокого уровня”, Сб. “Трансляция и преобразование программ” Новосибирск, ВЦ СОАН СССР, 1984, соавтор – В.П.Морозов, кол-во страниц – 10

 

 

20. “Промышленное программирование на базе языков высокого уровня” (статья), Сб. “Методы трансляции и конструирования программ”, Новосибирск, ВЦ СОАН СССР, 1986, кол-во страниц – 6.

 

 

21. “Самсон” как средство для рабочего места программиста”, Сб. “АРМ программиста”, Новосибирск, ВЦ СОАН СССР, 1988, кол-во страниц – 7.

 

 

22. Развитие системы программирования на базе языка Алгол 68″ (статья), Сб. “Информатика и программирование”, Новосибирск, ВЦ СОАН СССР, 1989, кол-во – 3.

 

 

23. «Язык программирования Алгол 68 и Алгол 68 расширенный» (ГОСТ), ГОСТы 27974-88, 27975-88, Москва, ГК по стандартам, 1989, соавторы – Морозов В.П., Цейтин Г.С., Рар А.Ф., кол-во страниц – 20.

 

 

24. «Повышение качества разработки алгоритмического обеспечения встроенных систем» (статья), Сб. “Адаптируемые средства программиро-вания. Методы оценки трансляторов”, Кишинев, 1989, кол-во страниц – 6.

 

 

25. “Технология программирования встроенных систем реального времени” (статья), Сб. “Информатика и программирование”, Новосибирск, ВЦ СОАН СССР, 1989, кол-во страниц – 12.

 

 

26. «Особенности технологии разработки ПО для персональных компьютеров» (статья), Сб. “Программное оснащение ПК”, Изд.МГУ, 1990, кол-во страниц – 4.

 

 

27. «Опыт разработки и использования промышленной технологии программирования» (статья), Сб. “Дискретные системы и их программное обеспечение”, Изд.ЛГУ, 1990, кол-во страниц – 8.

 

В конце 70-ых годов некоторые мои коллеги математики стали привозить из-за границы первые, почти игрушечные персональные ЭВМ, типа Синклер и им подобных. Там был встроенный BASIC, процессоры были однобайтовые, память ограничивалась 64 Кб. Ю.В. Матиясевич, бывший к тому времени уже известным учёным, очень любил эти новинки, но сожалел, что программировать для них очень неудобно. Поскольку мы поддерживали дружеские связи, ходили друг к другу в гости, иногда заходил разговор о том, что можно сделать для этих игрушечных ЭВМ. Я рассказал Юре, что такое P-code и его интерпретация, мы начали потихоньку обсуждать, как сделать интерпретатор P-code на Синклере, Коммодоре и других похожих однобайтовых ЭВМ. В конце концов, интерпретатор был реализован, к нам подключился Борис Федотов, который реализовал кросс-транслятор с подмножества языка Алгол 68, сначала появилась статья:

 

28. “16-разрядная виртуальная ЭВМ, ориентированная на АЯВУ. Программирование микропроцессорной техники“, Сб. “Микропроцессорная техника”, Таллин, 1984, соавтор – Матиясевич Ю.В., кол-во страниц – 5.

 

а затем и:

 

29. «Унификация программного обеспечения микроЭВМ на базе виртуальной машины”, “Автоматика и телемеханика”, N5, Москва, 1990, соавторы- Матиясевич Ю.В., Федотов Б.А., кол-во страниц -7.

 

«Автоматика и телемеханика» – академический журнал, который переводился на все основные языки. Есть перевод на английский язык и нашей статьи:

 

30. ”Standardization of microcomputer software using virtual-machine design”, Avtomatika I Telemekhanika, No.5, May, 1990,кол-во страниц – 8, соавторы – Ю.В.Матиясевич, Б.А.Федотов.

 


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

Мы много раз применяли эту технику как в гражданских, так и в военных заказах, но нам показалось интереснее развитие аппаратной поддержки языков высокого уровня. Так появилась ЭВМ «Самсон» с аппаратной поддержкой основных конструкций алгоритмических языков высокого уровня (см. «УВК Самсон – базовая ЭВМ РВСН» в разделе «Истории»).

 

31. «The main concepts of a new HLL computer «CAMCOH», Computer Science Journal of Moldova, vol.1, no.1, 1993, кол-во страниц – 6.

 

 

32. «Как Паскаль и Оберон попадают на «Самсон» (монография), Монография по технике программирования. Кишинев, “Штиинца”, 1992, соавторы — Евстюнин М.В., Кожокарь С.К., Уфнаровский В.А., кол-во страниц – 293.

 

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