Главная » Просмотр файлов » И.Г. Головин - Конспект лекций по курсу Языки программирования

И.Г. Головин - Конспект лекций по курсу Языки программирования (1161120), страница 6

Файл №1161120 И.Г. Головин - Конспект лекций по курсу Языки программирования (И.Г. Головин - Конспект лекций по курсу Языки программирования) 6 страницаИ.Г. Головин - Конспект лекций по курсу Языки программирования (1161120) страница 62019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

Алгол интересен тем, что былправильно спроектирован. Также впервые появились понятия блока,26области видимости, рекурсия, LIFO (Last In First Out) модель памяти ипонятие стека в архитектуре для передачи параметров в процедуре.Алгол 60 тоже был создан для численных расчетов, однако нишу своюне занял.Бекус и Наур придумали форму, которая в точностисоответствовала грамматике типа 2 по Хомскому – БНФ(нормальная форма Бекуса - Наура). Сейчас синтаксис всех языковописывается с их помощью.В Алголе 60 существовали ключевые слова, но не было зафиксировано,как их выделять. ‘BEGIN’ или \BEGIN/ или begin. Это зависело отреализации.

Ученые не задумывались о технологическом аспектепереносимости программ. Они заботились о переносимости знаний. Овводе-выводе они также не задумывались (его не было в стандартеязыка). Язык оказался тяжело и неэффективно реализуем.Быстродействие ЯП – усредненное соотношение времени выполнения программ,написанных на ЯП, ко времени выполнения программ, написанных на ассемблере машины.Например, для языка Фортран этот показатель равен 1,05.

Для языка Алгол этот показательнаходится в пределах 7-10. Заметим, что производительность программиста зависит от еготаланта, и практически не зависит от конкретного языка.Язык Алгол-60 – это язык для людей. Влияние Алгола в том, что это прежде всего языкобучения алгоритмизации, умению решать задачи. Сейчас существует много кодеров,которые учатся на Си. На основе Алгола созданы все базисные языки индустриальногопрограммирования.Затем программисты начали заниматься теорией грамматик, формальных языков.

Вирт,Кнут исследовали LR(1), нисходящий, восходящий анализ. Все ученые отметились в этойобласти. В начале 70-х годов изобрели Look – Ahead грамматики. Произошел скачок в этойобласти.Следующий язык, принадлежащий этому периоду – Cobol.Пример (COBOL)COBOL (Common Business-Oriented Language).Второй по распространенности язык программирования в США.Особое внимание было уделено вводу/выводу по маске:#.##Типы данных языка: строка, целое число, дата. DDMMYY – Здесьвозникло множество проблем: никто и не мог предположить, что27программы на COBOL’e доживут до 2000-х годов (и поэтому незаботились о решении «проблемы 2000»)..

А они до сих порсуществуют!Вообще в 60-е годы создавалось множество языков программирования. Каждый уважающийсебя ВЦ должен был иметь собственный ЯП. Военные, чтобы создать систему ракетнойобороны создали свой язык. На самом деле ничего военного в языке не было. Он былоснован на Алголе-68.Для решения задач искусственного интеллекта (моделирования человеческого разума) былсоздан язык LISP в MIT – «язык обработки списков». Для этих задач язык Фортран былабсолютно не нужен.

Для поиска не нужна арифметика. Основа LISP – символьныевыражения (s-expression).БУРНЫЙ РОСТИтак, первый язык программирования появился в 1957г., спустя 10 лет в США был проведенсравнительный анализ существующих ЯП. Там их было уже 400. В настоящее времяколичество ЯП точно никто не назовет, многие языки еще и вымирают. Очень примерно ихоколо 10000, но может быть, число приближается к 20000. Далее мы будем изучать тольконаиболее значимые.Люди начали придумывать собственные ЯП. А когда создается много ЯП – естественно, нетодного универсального. Придумывались свои языки программирования по двум причинам:нет хорошего языка программирования для некоторой предметной области, и не все языкибыли переносимы. Программисты стали пытаться придумать универсальный язык. Всегобыло 3 неудачные попытки создания идеального универсального ЯП. Почему неудачные? Апосмотрите – вы программировали хотя бы на одном из них:1.

PL\I – 1964г.2. Algol-68 – 1968г.3. Ада – 1980 - 1983ггПрограммисты брали разные элементы из разных ЯП, просто потому что понравились,комбинировали их, таким образом получались новые ЯП, более сложные. Первой над такимпроектом начала работать IBM (проект IBM 360).Пример (PL\1)Язык PL\1 комбинировал языки Fortran (передача параметров позначению, списки ввода-вывода), Алгол 60 (блочная структура), Cobol.Язык создавался комитетом.Существовало 2 компилятора PL/I – быстрая и отладочная версии.Это настолько сложный язык, что даже корректная программамогла на отладочной версии работать, а на быстрой – нет. Есливыкинуть около 80% возможностей языка, то получился бы оченьнеплохой (Мейерс).28С появлением мини ЭВМ вымер язык PL/I. IDB вложила около одногомиллиарда долларов в язык PL\1.Причина провала языка PL\1 заключалась в несогласованных компромиссов, а«несогласованный компромисс всегда хуже любой из крайних точек зрения» (И.Г.).Другой пример – Алгол 68.Пример (Алгол 68)Другая попытка – Algol 68.

Рабочая группа создателей языкасменилась.Впервые была описана семантика ЯП.W – грамматика – совокупность двух правил класса 2:A→αA – могут быть составными. Протоправила используются длягенерации частей метаправил. С помощью бесконечного числа правилможно было выразить произвольную семантику.Алгол-68 не «пошел» из-за сложности описания, конструкций.Основная идея – полная ортогональность (независимость) языковыхконструкций.Пусть даны конструкции K1, K2, K3, тогда в контекстахK1 K2K1 K3Смысл K1 должен быть одним и тем же.К примеру, Фортран был самым неортогональным ЯП.DO 5 I=1,N-1 может стоять только N. Переменная ≠ выражение.К примеру, на Паскале: for I := v1 to v2 do Sv1, v2 – интегрального типа, S – произвольное.Заметим, что, вообще говоря, архитектура фон Неймана неортогональна. В этой архитектуре есть понятие переменная,которая отражает состояние, выражение, и оператор, которыйимеет побочный эффект – отсюда следует ортогональность.29В языке Алгол 68 выражение без точки с запятой являетсявыражением, а если поставить точку с запятой, то это ужеоператор.exprexpr;Раз любое выражение может быть оператором, то и любой операторможет быть выражением.

Это означает, что любой оператордолжен иметь значение.Примеры:v = e – имеет значение vv1, v2, v3 – имеет значение v3print(v1) – имеет значение v1while {…} – неопределенное значение, если не выполняется.Любое выражение должно быть корректно как правостороннее. То,что должно быть слева, имеет на один уровень ссылок больше.const – ссылка уровня 0ref int – ссылка уровня 1, и так далееВ результате язык получился сложным и для восприятия, и посуществу.В 1969г.

появился Паскаль. Вирт просил не ассоциировать свою фамилию с названиемязыка. Можно провести такую аналогию: Алгол-60 (Неандерталец) – Паскаль (Homo sapiens).Паскаль – язык для обучения программированию. В нем был использован принцип«Алгоритм + структура данных = программа». Принципы языка – простота, логичность,ортогональность (там, где это возможно).Третья попытка создания «идеального языка программирования» – язык Ада.Пример (Ада)Ада – последняя попытка создать универсальный ЯП.Как уже упоминалось в курсе, согласно исследованию МинобороныСША, 50% затрат на создание программного продукта уходит насопровождение. Это связано в том числе с многообразием языков.

Сточки зрения отдельного человека, менять компании – нормально,однако вновь пришедшему в компанию человеку бывает сложноразобраться.30В 1975г. только подрядчиками Пентагона использовалось 350 языков.Выделили 10 наиболее используемых. Затем установили соломенные,деревянные, стальные требования по надежности и эффективности.Критические задачи должны были решаться за гарантированноевремя.Анализ требований установил, что будет достаточно одного языка.Был объявлен конкурс. Уже существовавшие языки PL\1, Алгол 68,Паскаль не подходили. Было 12 кандидатов на участие, в финал вышли4 претендента, среди которых было два лидера: «красный» и«зеленый» языки программирования. В итоге победил «зеленый», и егоназвали «Ада» в честь первого программиста Ады Лавлейс.Все ПО создавалось только на ЯП Ада. С тех пор запретили созданиеподмножеств и надмножеств этого языка.

Использовались толькосертифицированные компиляторы. Ушло 3 года на созданиекомпиляторов и переиздание стандарта. Первый советскийкомпилятор языка Ада был создан в Ленинграде (конечно, он былнесертифицированным). Скорость компиляции составляла примерно3 строки в минуту.Язык получился слишком сложным.

В 1984 году у выпускниковколледжа зарплата могла повыситься на 10 тысяч долларов в год,если они изучали Ада.Ада – учебник технологий программирования.Задачи, поставленные перед языком, решены не были.История стандартов: Ада 83 – Ада 95 – Ада 2005.В язык был встроен механизм внутренней многозадачности.Что нового было в Ада? Почти ничего.Рандеву, платформонезависимый механизм внутреннеймногозадачности (оказался неэффективным, аналогичномногопоточности JVM).У каждого программиста была своя библиотека интерфейсов.Также в это время появились другие ЯП.Модула2 – был создан Виртом в 1980г.

Был лучше Паскаля, однако не «пошел».PL/360 – язык Ассемблера, не зависящий от архитектуры.BCPL – предок Си. АСТРА – создан в Советском Союзе. Эта языковая ниша уже была занятаязыком С. В языке C, по сравнению с его предшественником B, были введены типы данных.31Однако в C тип данных – это всего лишь шаблон размещения в памяти (и не более того).Язык C на большинстве архитектур обогнал Fortran.Prolog был создан в 1971 году, Smalltalk в 1972.Во время бурного роста получили развитие функциональная, логическая и объектнаяпарадигмы языков программирования.Ф УНКЦИОНАЛЬНАЯ ПАРАДИГМАВ 1978 году Тьюринговскую премию по программированию проучил Джон Бэкус.

Он – авторязыка программирования Algol, придумал БНФ – Бэкусову нормальную форму. По традиции,на церемонии вручения Тьюринговской премии награжденный должен прочитать лекцию.Джон Бэкус прочитал лекцию, которая называлась «Может ли программирование бытьсвободно от фон Неймановского стиля?».В программировании в то время можно было наблюдать вялотекущий кризис, который былсвязан с борьбой с все нарастающей сложностью программного обеспечения. Джон Бэкуспредложил ориентироваться на функциональное программирование.

Характеристики

Тип файла
PDF-файл
Размер
1,81 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее