Файл: История развития программирования в России (Разработка языков программирования и компиляторов в СССР).pdf

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

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

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

Добавлен: 13.05.2023

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

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

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

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

Язык определения функций Рефала, основанный на понятиях образца и результатного выражения чрезвычайно прост и компактен. Его минимальная версия получила название Базисный Рефал. Диалект Базисного рефала под названием Рефал-2 был реализован на многих типах отечественных ЭВМ и долгое время играл роль де-факто стандарта языка Рефал.

Язык Рефал-5 содержит Базисный Рефал в качестве подмножества. Расширения языка Рефал-5 качественно меняют стиль программирования.

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

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

1997 год. Рефал прочно занимает свою нишу, не опасаясь никаких конкурентов. Например, он успешно используется физиками Обнинска, многими математическими центрами в России. Одно из основных применений Рефал – разработка трансляторов с языков программирования, когда сам Рефал используется как метаязык. В ИПМ на нем был очень быстро написан высокоэффективный транслятор Cern Fortran.

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


1.4 Язык программирования Алмо

Язык системного программирования (машинно-ориентированный язык), задумывался как язык-посредник при трансляции с различных языков. Для каждой аппаратной платформы достаточно было написать транслятор Алмо — и появлялась возможность работать с множеством языков программирования, которые имели трансляцию в Алмо. Были созданы реализации языка для основных отечественных машин того времени (М-20, БЭСМ-6, Минск 2, Урал 11) и трансляторы с Алгола-60 и ФОРТРАНа в Алмо, причем все трансляторы также были написаны на Алмо и “раскручены” на всех этих машинах. Язык Алмо имел в своей основе некоторую абстрактную машину, отражавшую особенность существовавшего тогда класса машин, и в этом отношении Алмо-подход предвосхищал появившиеся позже Р-код, М-код и прочие подобные подходы. Машинная ориентированность явно прослеживалась в языке — регистровые объекты, постфиксная запись выражений, оперирование с битами машинных слов и т.д.

ГЛАВА 2. Развитие новосибирской школы программирования

2.1 Развитие новосибирской школы программирования на рубеже XX – XXI века

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

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


И.В. Поттосин был крупным организатором науки. Практически с самого начала своей деятельности он являлся бессменным руководителем научных подразделений ВЦ СО АН и КБ СП (Конструкторского бюро системного программирования). Когда не стало Андрея Петровича Ершова, Игорь Васильевич как его преемник и символ продолжения духа и традиций Отдела, Сибирской школы программирования, сделал много для сохранения памяти о своем выдающемся друге и коллеге. Им инициированы исследования по истории программирования, он написал ряд биографических очерков о научном вкладе академика А.П. Ершова, организовал ряд конференций его памяти [9–11]. Более десяти лет И.В. Поттосин руководил Рабочей группой по языкам и системам программирования в Комиссии по системному математическому обеспечению, которую возглавлял А.П. Ершов. Им составлен обзор российских академических исследований и разработок в области трансляции, находившихся в сфере координации руководимой им рабочей группы [12].

В 1990 г. на базе ряда отделов ВЦ был создан Институт систем информатики СО АН. Во вновь созданном Институте И.В. Поттосин стал заместителем директора по научной работе, а в тяжелые для всей отечественной науки 1990-е гг. принял на себя нелегкие обязанности директора (1991–1998). Уже в самом начале своего директорства И.В. Поттосин столкнулся с серьезными проблемами организационного плана. Экономическая ситуация, сложившаяся в России в первое десятилетие перестройки, отразилась и на коллективе ИСИ СО РАН. Уже в октябре 1992 г. вышло Постановление Президиума РАН с рекомендацией Объединенным ученым советам ликвидировать ряд институтов СО РАН и передать часть сотрудников в другие институты5. В этот список попал и ИСИ СО РАН. 16 октября 1992 г. ученый совет ИСИ высказал несогласие с таким решением. В дальнейшем сотрудники института, его руководство предприняли ряд действий, направленных на активизацию общественного мнения, получение поддержки коллег из других научных центров в пользу сохранения ИСИ СО РАН.

Ко времени появления рекомендаций Президиума РАН в штате Института насчитывалось около 190 человек, из них 95 научных сотрудников, в том числе 1 член-корреспондент, 4 доктора наук, 22 кандидата наук (3 профессора и 6 доцентов). За два с половиной года существования ИСИ, созданного в апреле 1990 г., его сотрудники выполнили большой объем научно-исследовательских и экспериментальных работ. В активе Института было 4 монографии, свыше 80 публикаций в центральных российских и зарубежных изданиях. На базе Института проведено 3 международных конференции, готовилась очередная — по формальным методам в программировании, намеченная на 1993 г. Силами сотрудников Института в Сибирском отделении издательства «Наука» выпускался сборник «Системная информатика» [7;12].


За сохранение ИСИ СО РАН высказались отечественные и зарубежные коллеги: Научный совет по программированию Отделения информатики, вычислительной техники и автоматизации РАН, НИИ системных исследований РАН, Москва (директор профессор В.Б. Бетелин), НПО прикладной механики, Красноярск (генеральный конструктор академик М.Ф. Решетнев), Научный совет РАН по проблеме «Искусственный интеллект» (академик Г.С. Поспелов), чл.-корр. С.С. Лавров (Институт прикладной астрономии РАН, Ленинград), М. Брой (Технический университет Мюнхена), М. Нива (Институт Блеза Паскаля, Париж), Э. Тыугу (Королевский институт технологий, Стокгольм), М. Синцов (Католический университет Лувен, Бельгия) и многие другие. Профессор Ф. Жорран из Университета Гренобля писал, что «будет большой ошибкой свести научно-исследовательскую работу ИСИ до функций обслуживания программистов для вычислительных задач». В конце ноября в Институте работала комиссия по проверке научной деятельности. Она пришла к заключению об актуальности и высоком качестве научных исследований в ИСИ СО РАН. Институт систем информатики был сохранен в составе Сибирского отделения РАН.

В условиях невнятной государственной политики в области науки и вычислительной техники и отсутствия адекватного финансирования Институту и его директору пришлось самостоятельно определять приоритеты в исследованиях и учитывать международное разделение труда в сфере информатики. Задачей директора в первую очередь было сохранение кадрового потенциала. В Институт приходили молодые специалисты из НГУ, но отток кадров был значительным. Сотрудники ИСИ уезжали работать за рубеж, находили более высокооплачиваемую работу внутри страны. В 1997 г. коллектив сократился практически на четверть, до 154 чел., а численность научных сотрудников — до 70 чел.

В 1997 г. И.В. Поттосин как директор Института и председатель его ученого совета сыграл определяющую роль в поисках перспективных направлений работы института. Теоретические и методологические основы создания систем информатики, в том числе теоретические основания информатики; методы и инструменты построения программ повышенной надежности и эффективности; методы и системы искусственного интеллекта; системное и прикладное программное обеспечение вычислительных машин, систем, сетей и комплексов, на многие годы вошли в программу работы ИСИ СО РАН.

И.В. Поттосин активно участвовал в воспитании научной смены. С 1968 г. он прошел ступени от ассистента до профессора, заведующего кафедрой программирования механико-математического факультета Новосибирского университета. Эта кафедра была организована после долгой борьбы в 1993 г., и И.В. Поттосин, который к этому моменту защитил докторскую диссертацию, с полным основанием стал ее первым руководителем. В течение многих лет он читал свой курс программирования и вел спецкурс по методам трансляции. Теории и практике системного программирования Игорь Васильевич посвятил десятки статей, он также подготовил несколько вузовских учебников в соавторстве со своими коллегами М.М. Бежановой и Л.А. Москвиной [13; 14]. Среди его учеников — доктора и кандидаты наук, сотни выпускников Новосибирского университета и Высшего колледжа информатики, становлению которого и совершенствованию преподавания информатики в котором он содействовал. Игорь Васильевич в свое время поддержал инициативу сотрудников ИСИ по организации олимпиады по программированию. Она проводится с 1999 г. как Открытая Всесибирская студенческая олимпиада по программированию, а с 2001 г. носит его имя. Теперь в ИСИ и НГУ на постоянной основе действуют организационные структуры, обеспечивающие ее подготовку и проведение: оргкомитет, жюри олимпиады, тренинг-классы для участников.


2.2 Система программирования Сигма

Г. Г. Степанов:

… название языка — Сигма — неожиданно очень удачно стало соответствовать сути разработанного языка, которую можно описать как «Символьный Генератор и Макроассемблер». 
Всего в истории языка Сигма было три его реализации: на М-20, на БЭСМ-б и на самом языке Сигма. Первая, конечно самая памятная, т.к. это была мол первая работа в области системного программирования (да и вообще первая работа). Вторая была выполнена на лучшей, по моему мнению, отечественной машине БЭСМ-6. Третья опиралась на вторую, была раскручена сама через себя и могла генерировать программы как для БЭСМ-6, так и для СМ-4 и ЕС ЭВМ.

Сигма — СИмвольный Генератор и МАкроассемблер — обладал двумя важными и в то время новыми особенностями. Синтаксически ограничиваемый макросами, ондопускал генеральную линию создания программ — подстановку описанных макросов. Язык содержал средства формального описания конкретной архитектуры: была разработана система параметров, в терминах которой фиксировалось представление языка для конкретной ЭВМ. Таким образом, общая Сигма-программа вместе с описанием архитектуры ЭВМ транслировалась на данную ЭВМ. Параметрами архитектуры были длина слова, представление значений типов в машинном слове и т.п., так и правила заполнения шаблонов машинных команд.

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