Трансляторы, страница 2
Описание файла
PDF-файл из архива "Трансляторы", который расположен в категории "". Всё это находится в предмете "история информатики" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Транслятор АЛЬФА ввидуобъемности реализации был завершен годом позже._____Транслятор ТА-1, разработанный под руководствомС.С.Лаврова, основывался на быстрой и простой схеметрансляции (в частности, был разработан стековый подходк программированию выражений).Для достижения такой схемы авторы отказались отряда средств Алгола-60: рекурсивности процедур, наличиястатических (собственных - own) объектов в блоках, отвозможности введения параметров процедур без ихтипизации и пр. Вместе с тем, особое внимание былоуделено простоте и удобству эксплуатации.Работы над этими трансляторами (ТА-1, ТА-2 и АЛЬФА) начались практически сразу после публикациизавершенного международной рабочей группой описанияязыка.ТА-1, и ТА-2 были завершены в 1963г., т.е. практическиодновременно с другими известными западными работами--- П.Наура и Э.Дейкстры. Транслятор АЛЬФА ввидуобъемности реализации был завершен годом позже._____Транслятор ТА-1, разработанный под руководствомС.С.Лаврова, основывался на быстрой и простой схеметрансляции (в частности, был разработан стековый подходк программированию выражений).Для достижения такой схемы авторы отказались отряда средств Алгола-60: рекурсивности процедур, наличиястатических (собственных - own) объектов в блоках, отвозможности введения параметров процедур без ихтипизации и пр.
Вместе с тем, что существенно длясовременных систем, особое внимание было уделенопростоте и удобству эксплуатации.Транслятор ТА-2, разработанный под руководствомМ.Р.Шуры-Буры, не вводил практически ограничений ни на язык,ни на размеры входных программ. В трансляторе был разработаноригинальный алгоритм программирования процедур(понимаемых как потенциально рекурсивные), механизмыуправления памятью как единства оперативной и внешнейпамяти.В мае 1963 г.
первым из всех трех этот транслятор ужедемонстрировался на международной конференции поавтоматизации программирования в Киеве.В АЛЬФА-трансляторе, разработанном под руководствомА.П.Ершова, особое внимание уделялось эффективностиполучаемых программ. Большой набор оптимизирующихвозможностей (изощренное программирование процедур, циклови индексных вычислений, глобальная экономия памяти и пр.)давал возможность получать объектные программы, малоотличающиеся по времени исполнения от созданных вручнуюпрограмм.Платить за это приходилось большим объемом транслятора,большим числом проходов (24 прохода), отказом от некоторыхсредств Алгола, оптимальная реализация которых не быланайдена (в частности, как и в ТА-1, рекурсивность былазапрещена).Вместе с тем входной язык являлся расширениемАлгола, включавшим операции над многомернымизначениями.В целом в АЛЬФА-трансляторе начала складыватьсясовременная методология оптимизирующей трансляции стакими ее понятиями, как внутренний язык,многопроходная реализация оптимизирующихпреобразований.В целом, эта совокупность трансляторов покрываларазнообразные запросы пользователей.В отличие от программирующих программ всеалголовские системы были уже настоящими системамипрограммирования, близкими к современным системам, они включали в себя не только собственно транслятор, нотакже отладочные и некоторые редактирующие средства.В ТА-1 и АЛЬФА-систему входилиотладочные редакторы, которые по заданию наотладку создавали отладочную версиюпрограмм.Платформой для всех систем была ИС-2, всесистемы включали ее средства в свой входнойязык и строили программы, ориентированные наиспользование ИС-2.ЯЗЫКИ СИСТЕМНОГО ПРОГРАММИРОВАНИЯИнициированное созданием трансляторовпоявление системного программированияпоставило задачу создания адекватных языковпрограммирования.Все языки, появившиеся к началу 60-х годов - Фортран, Кобол, Алгол-60 и др.
- не учитывалиэтой области программистской деятельности, иалголовские системы, будучи достаточнобольшими программными системами, писалисьеще в машинных кодах вручную.Адекватные языки нужны были не только длятрансляторов, но и для всей возникающей областисистемного программирования: начали появляться идругие языковые процессоры, первые операционныесистемы, информационные системы.В связи с этим и у нас, и на Западе начали появлятьсяспециальные языки, предназначенные для системногопрограммирования.Характерной особенностью первого поколения этихязыков (связанной с необходимостью хорошо учитыватьархитектуру и машинное представление данных) быламашинная ориентированность.
Разрабатывались этиязыки, как правило, в коллективах, имевших большой опытв создании системных программ - таковыми в тот периодбыли системы программирования.Отечественные языки Алмо, Эпсилон, Сигма, которыебыли одними из первых в мире языками системногопрограммирования, создавались поэтому в коллективахтрансляторщиков, только что завершивших большиепрограммные проекты и почувствовавших, каковосапожнику обходиться без сапог.Язык АЛМО имел в своей основе некоторуюабстрактную машину, отражавшую особенностьсуществовавшего тогда класса машин.Помимо того, что этот язык был языком реализациидля системного программирования, он предназначалсябыть языком-посредником при трансляции с различныхязыков.Идея была в том, чтобы заменить трансляцию с mвходных языков в n машинных языков трансляцией "из mв один" и "из одного в n".
Важно заметить, что в языкесуществовали средства определения многопроцессности(типа fork и joint).Были созданы реализации языка для основныхотечественных машин того времени (М-20, Минск 2, Урал 11,БЭСМ-6) и трансляторы с Алгола-60 и ФОРТРАНа в АЛМО,причем все трансляторы также были написаны на АЛМО и"раскручены" на всех этих машинах.------• Святослав Сергеевич ЛавровК 1941 г. успел закончить в Ленинградском университете двакурса матмеха.Во время учебы в ЛГУ интересовался теорией вычислений,хотя в ту пору в университете ее более основательно преподавалине матмеховцам, а астрономам. Они часто работали наарифмометрах, выдававшихся в читальном зале.Пошел в ленинградское народное ополчение.
Был направленв Ленинградскую военно-воздушную академию. Окончил ее сдипломом военного инженера-механика и попал пораспределению техником звена в истребительный авиационныйполк.В начале 1947 г. был демобилизован из армии и принят наработу на должность начальника группы баллистики вподмосковное ОКБ в отдел Главного конструктора СергеяПавловича Королева. Однако продолжал осваивать математику идаже поступил заочно на мехмат МГУ.С решением задач ядерной физики, баллистических задач,задач управления динамикой полетов в Советском Союзе связаноначало применения вычислительной техники и развитие новогонаучного направления - программирования, разработкаразличных алгоритмических языков.С.С.
Лавров принял решение посвятить себя впредьуже не баллистике, а программированию. В это времяработы под управлением С. П. Королева по подготовкеполета Юрия Гагарина шли полным ходом и секторбаллистики и С.С. Лавров принимали в этих работах самоенепосредственное участие.«Сергей Павлович, вероятно, не мог не заметить,насколько я был поглощен и увлечен проблемамииспользования вычислительной техники. Поэтому одобрилмой переход из отдела динамики на заведованиевычислительным центром, насчитывавшим примерно 300человек и включавшим в себя и группу программирования(создан в ОКБ в конце 50-х годов)».«Язык Алгол 60 мне сразу очень понравился, и я написал онем книгу.
Существовавшие уже языки Фортран, Кобол страдалибольшими недостатками. По сравнению с ними главнымдостоинством языков Алгол 60 и позже Паскаля было то, что онивобрали в себя все самое лучшее и необходимое, в отличие,скажем, от языка PL1, в котором авторы постарались воплотитьчуть ли не все возможности, известные на тот момент в мире».«Мы решили принять участие в создании транслятора сАлгола 60. На тот момент две группы уже приступили к разработкесвоих трансляторов: Михаил Романович Шура-Бура и ЭдуардЗиновьевич Любимский в Институте прикладной математики АНСССР и А.
П. Ершов - в отделе ВЦ Сибирского отделения АН (ВЦвозглавлял тогда Г. И. Марчук). Обе группы вежливо отказалисьот предложения о сотрудничестве с отделом программированияОКБ, поэтому мы начали действовать самостоятельно».«Наша группа закончила разработку транслятора в октябре1962 года раньше, чем другие две группы. На заседанииПрезидиума АН, которое проводил Мстислав ВсеволодовичКелдыш, были зачитаны доклады от каждой из групп, и нашиобщие результаты получили весьма высокую оценку».«В 1966 году после смерти Сергея Павловича яперешел из ОКБ в систему Академии наук и приступил кзаведованию лабораторией программирования вВычислительном центре, который возглавлял АнатолийАлексеевич Дородницын. Он считал, что мне следовалозаняться координацией разработки программногообеспечения для главной вычислительной машины странытого времени - БЭСМ-6.
Сначала диспетчер - зародышоперационной системы, потом и другие программы дляБЭСМ-6 создавали разные организации: "родитель" Институт точной механики и вычислительной техники, МГУ,наш ВЦ, группа в Свердловске и др. Честно говоря,скоординировать действия этих разработчиков не удалось,так как каждый считался только со своими взглядами, и вэтом смысле я не оправдал надежд Дородницына».«Одной из самых удачных своих работ в ВЦ считаюреализацию языка ЛИСП для БЭСМ-6.
До этого существовалиреализации ЛИСПа, но более скромные и менеераспространившиеся, чем наша. Мы работали вдвоем: я и мойаспирант Гиви Сергеевич Силагадзе, с которым в 1978 году быланаписана книга "Автоматическая обработка данных. Язык Лиспи его реализация»«Сегодня существует много новых реализаций ЛИСПа. Так я работаю наCLISP (Common LISP). В языке ЛИСП учтен опыт построения языковпрограммирования для компьютеров, накопленный за 20 лет послепоявления машины Тьюринга - одной из первых абстрактных моделей,ставшей наиболее популярной в теории вычислимости.
Обработкаформул, автоматическое доказательство теорем, математическиевыкладки - сфера применения ЛИСПа в отличие от вычислительныхзадач, которые лучше решать с применением таких языков, какПаскаль, Алгол и др».• Какие бывают языки программирования«Наиболее распространенные и известные языкипрограммирования: Фортран, Алгол, Кобол, ПЛ-1, Алгол-68,Паскаль, ныне забытая Ада, которую сменили языки семейства C,Java и др, - принадлежат фактически к одному семейству, котороепроделало заметную эволюцию, но в основе осталось классомязыков операторного, процедурного типа. Это - типичные языкидля описания и представления алгоритмического знания.Было два главных события, каждое из которыхознаменовало для меня начало нового этапа в развитииалгоритмических языков: появление Алгола 60 (авторы интернациональная группа специалистов) и разработкаНиклаусом Виртом языка Паскаль».«Существует еще одно семейство языков, ведущих восновном свое начало от языка ЛИСП (1960 г.) ихарактеризующихся по-разному: языки для обработкисимвольной информации, языки обработки списков (LISP List Processing), языки искусственного интеллекта, языкиуправления роботами, языки логическогопрограммирования или же функциональныенепроцедурные языки.Некоторые их черты, такие, как списки свойств иассоциативные списки, прямо ориентированы напредставление знаний, другие (использование списочныхструктур, рекурсивность, механизм возвратов) - на решениелогических задач типа автоматического доказательстватеорем».«Семейство очень важно для создания ииспользования баз знаний.