Главная » Все файлы » Просмотр файлов из архивов » Документы » лекции (2008) (Фингеров Александр_ Кононов Алексей_ Кузин Сергей)

лекции (2008) (Фингеров Александр_ Кононов Алексей_ Кузин Сергей)

2019-09-19СтудИзба

Описание файла

Документ из архива "лекции (2008) (Фингеров Александр_ Кононов Алексей_ Кузин Сергей)", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "лекции (2008) (Фингеров Александр_ Кононов Алексей_ Кузин Сергей)"

Текст из документа "лекции (2008) (Фингеров Александр_ Кононов Алексей_ Кузин Сергей)"

Московский Государственный Университет им. Ломоносова

Факультет Вычислительной Математики и Кибернетики


Языки Программирования

Конспектировали:

Фингеров Александр

Кононов Алексей

Кузин Сергей

Москва, 2008



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

Лекция 3.

Глава 2. Исторический очерк развития ЯП.

Языков Программирования (далее ЯП) не просто много, а очень много. 1й язык – Fortran появился 1954-57 годах. Уже в 1967 году было насчитано 400 языков. В середине 70х это количество перевалило за 1000. В наши дни число языков уже не назовёт никто. В 60е годы каждый вычислительный центр считал должным иметь свой собственный ЯП. Тяжело даже составить реальную генеалогию ЯП, хотя были попытки уложить характеристику и описание языков в разных изданиях. Наша цель на сегодня – обосновать выбор языков, которые мы будем изучать.

Проект «Фортран» .

Самым дорогим ресурсом было вычислительное время. ПК стояли в огромных залах с системами кондиционирования, сами ПК были ламповые и требовали постоянного ремонта. Программы использовались с максимальной экономией. Фортран один из немногих языков, создатели которого знали что хотели. Основная идея языка – помочь математикам. Главный заказчик – военные ведомства, работающие в области математической физики. Математик объяснял программисту суть алгоритма и указывал на места, требующие выполнения операторов, для этого рисовались Блок-схемы. Сам программист после этого осуществлял распределение памяти, занимался деталями алгоритма и переводил в машинный код – выступал в роли ассемблера. Результатом была распечатка на перфоленте. Чтобы справиться с проблемой замены техники и устаревания знаний, было решено дать математиками средство переводить блок-схемы в некий текст, после чего машина-транслятор переведет его в код. Самый главный оператор был оператор присваивания, который выражал некую математическую формулу. FORTRAN - расшифровывается как FORMULIC TRANSLATOR. Однако для того, чтобы можно было писать алгоритм, необходимо было добавить ещё условные операторы и операторы перехода.

If A1 A2 A3 – трёхадресная архитектура

If(e) L1, L2, L3 – оператор перехода. Было целых 4 варианта оператора перехода.

Первая версия языка – Фортран, потом Фортран 2, и в 1964 была принята версия Фортран 4, которая стала стандартом. В 1970 он был пересмотрен. Сейчас язык продолжает развиваться, и большинство программистов пишут в стиле или Фортран 4, или Фортран 77. Однако Фортран это источник контр примеров – как нельзя делать ЯП. Было сделано множество ошибок. Это единственный язык, в котором массивы расположены по столбцам, каждый оператор вывода выводит целую строчку, поэтому пришлось расширять язык, чтобы выводить матрицу построчно. Первоначально это был язык для расчета математических моделей, но потом на нём стали делать всё что угодно. До 1964 года Фортран был базовым языком фирмы IBM. Уже в середине 60-х становились очевидными его недостатки – язык провоцировал появление ошибок в программе. Один из примеров – случай со взрывом спутника, который США запускали на Венеру и который был предан гласности. В той программе была часть кода:

DO 5 I=1, 3

{далее операторы тела цикла}

CONTINUE.

5 – последний оператор в теле цикла.

В современном языке DO это слово, а D и O это 2 идентификатора. В Фортране пробелы не учитывались. Однако если поставить вместо запятой – точку DO 5 I=1.3, то получается совсем иной результат. Цикл выполняется лишь 1 раз. С точки зрения же C в строчке DO5I=1.3 – DO5I идентификатор. Фортран непригоден для индустриального программирования. Он сыграл большую роль как 1-й ЯП, и в результате накопился огромный фонд алгоритмов на Фортране, появлялись библиотеки стандартных подпрограмм (это понятие появилось в самом 1-м Фортране). Язык был неудобный, но получались эффективные программы.

Его успех дал толчок появлению новых языков, и Федерация IFIP решила придумать язык для обмена алгоритмами, и эту нотацию назвали ALGOLALGORITHMIC LANGUAGE. В 60-е-70-е годы выпускались целые сборники алгоритмов. Главные достоинства Алгола в том, что если в Фортране память была только статическая, и не могло быть рекурсивных вызовов, тут возникла блочная структура. Блоки могли складываться друг с другом, блоком являлось тело любой процедуры. Было стековое распределение памяти, но не было операторов ввода-вывода. Разработчики не задумывались, что такое ключевое слово. [For i:=1 to N step 1 do begin S:=s+a[i]end]. Было оговорено, что они будут просто подчёркиваться, или выделяться в кавычки – всё по разумению создателей машины. Каждая новая версия транслятора вводила свою кодировку, свой набор операторов ввода-вывода, и многое-многое другое. Программы были понятны специалистам, но непосредственно перевести их на другую машину и запустить было невозможно. Стандарт не определял результат в некоторых достаточно существенных моментах. С точки зрения операторов Алгол был существенно лучше, но проигрывал по эффективности. T1 – оттранслированная программа в Алголе, T2 – в ассемблере. T1/T2 строго было больше единицы. Оттранслированные на Алголе программы работали в 7-10 раз медленнее. Для Фортрана же значение было всего 1.05. Фортран показал нам «принцип экологических ниш». Биологи давно заметили свой подобный принцип. В экологической нише чаще живёт 1 вид, и занимает её. У каждого языка тоже есть такое понятие. Это прежде всего проблемная область, а так же набор умений, специалистов, которые в ней работают. Люди крайне не хотят забывать или пересматривать свои навыки. Сам принцип – тот, кто 1й занимает экологическую нишу, у того вида и появляется решающее преимущества, кроме появления нового вида, который по всем статьям сильнее предыдущего. До 70х-80х годов программы писались исключительно на языке ассемблера, потом его вытеснил язык С. С моей точки зрения язык Модула 2 существенно адекватнее языка С, но снова сработал принцип экологических ниш. Фортран остался только в нише научно-технических расчетов.

Конец 1-й половины.

Очень важно угадать при создании ЯП соответствующую нишу и в неё попасть. Если ниша уже занята, то он должен быть на порядок выше.

1-й период развития ЯП – 50-е-начало 60-х годов, эмбриональный период, тогда появился язык Фортран. Следующим появился язык АЛГОЛ 60. У него была своя экологическая ниша – он её удерживал более 3х десятков лет. Это образовательная ниша. Язык доминировал в университетах. Поскольку это была 1-я разработка серьёзного коллектива учёных, она имела большие последствия. Алгол послужил рядом идей для других языков, таких например как Паскаль. При написании его были использованы формальные методы – БНФ. Оказалось что грамматики класса 2 соответствуют БНФ – с тех пор она стала незаменимым методом при создании ЯП. На Алголе 60 был основан язык Simula или Simula 67. Там появилось понятия класса, ключевое слово new. Класс объединял как структуру данных, так и функции и процедуры. Наследования как такового ещё не было, но были прообразы. Молодой аспират Бьярн Страуструп разрабатывал свои программы на Симуле, однако транслятор был устаревшим, и реальные модели работали не очень хорошо. Страуструп стал придумывать язык С, а в конечном итоге появился и язык С++. Язык Алгол 60 – безусловно знаковый язык. В 1959 году другой знаковый язык – язык COBOL – для обработки бизнес-данных. Фортран не годился для таких задач, где обрабатывались большие объёмы данных и тривиальные операции. В таком языке важна была эффективность операций ввода-вывода, структуры данных. КОБОЛ был создан неким комитетом под протекторатом правительства США, появилось понятие плоской структуры данных. Он занял чётко свою проблемную область. Любой коммерческий компьютер должен был снабжаться компилятором КОБОЛ. Программы на КОБОЛЕ прекрасно работают и до сих пор, но даты содержали только DD MM YY, и в результате проблемы 2000 года пришлось тратить огромные деньги и переписывать базы. В 1961-е годы появился язык LISP – язык искусственного интеллекта. Он не очень удобен как промышленный язык, но его достоинство – динамичность. Программы на языке ЛИСП были менее эффективны чем программы на других языках. Экспертные системы даже переводили с ЛИСПА на С. Эмбриональный период был очень продуктивен, тогда были высказаны основные идеи, которые до сих пор оказывают огромное влияние на развитие языков программирования.

2-й период развития - 60е-начало 80х годов, период экспоненциального роста. Ежегодно появлялись сотни новых языков программирования. Родилось много языков на основе Фортрана и Кобола, каждый старался занять особую нишу, хотя на 1й взгляд ничего особенного в них и не было. Пока не возродилась идея вновь написать универсальный язык, который подходил бы всем. Очередную попытку предприняла в 1961-м году IBM с системой IBM 360 – от количества градусов в полном обороте. Фортран был главным языком программирования, но был не совсем адекватен, а системе требовался язык. По сути были взяты основные понятия из языков и переняты в новый язык, от структуры до рекурсий. Массивы расположили по строкам, взяли всё хорошее и утащили, назвав язык NPL – New Programming Language, а потом и PL/I. Они придумали динамическое распределение памяти – стековое и чисто динамическое. Как писали, PL/I был бы очень хорошим языком, если бы из него выкинули 80% его возможностей. PL/I использовали в качестве основного языка программирования на военных кафедрах. После появилась и IBM 370. Тем не менее, программистов на PL/I ныне почти нет. Система до сих пор жива, но сам язык – умер. Существовали попытки перевода PL/I на DOS и другие системы, но он остался привязан к своей. Попытка объять необъятное оказалась непригодной – язык сложный. Фортран выпускался в 2х версиях – релиз и отладка. Для языка PL/I были комплектации уровня F и O, но попытка его реализовать в 2х разных парадигмах не прошла из-за высокой сложности. В 1964-м году комитет по PL/I был ликвидирован, и по совпадению был пересмотрен Алгол 60, и группа, работавшая над ним начала новую разработку. В 1968 была предпринята ещё одна попытка - Алгол 68. Хотели сделать всё по уму, учитывая опыт предыдущих языков, но это должен был быть математический универсальный язык – не только в смысле синтаксисов, но и в семантике. Так появились W-грамматики. Принцип был очень интересен. Ортогональность в смысле программирования - независимость конструкций, с возможностью их комбинировать любым образом. Языки программирования не являются полностью ортогональными. например в for i:=l1 to l2 do - i может быть только дискретного типа. Уже в Фон-Неймановских принципах была неортогональность. В Алголе 68 разница между операциями и операторами была сломана – если можно было употребить выражение, то можно было употребить и оператор. Впоследствии это было использовано в языке С, который появился в 1969 году. Принцип ортогональности очень красив и делает программу компактнее, но проблема была в том, что появлялись конструкции, потенциально ошибочные. Язык значительно более сложный, чем Алгол 68, и обнаруживалось множество ошибок, да и преподавать этот язык было тяжело. Язык программирования «для всего» это не экологическая ниша, а ни одну из старых он вытеснить не смог, и остался мёртвым языком.

Лекция 4.



3. Современный этап развития.

C++ (1983год) - знаковое событие. В этом же году появился язык Ada 83, в котором появилось понятие исключений, это понятие перешло далее и в другие языка – C++, C#, Java. Ada является в настоящее время вполне живым языком. Своей цели (заменить все остальные языки программирования) язык Ада не добился. В 1995 появляется новый вариант языка, в 2005м – ещё один, при этом была обеспечена максимальная совместимость снизу вверх. Одна из главных причин, по которой он не добился своей цели – сложность языка. В 1983г было официально запрещено расширять или сужать стандарт, однако регулярно выпускался новый том с толкованиями стандарта. Он настолько сложен, что некоторые детали не были даже учтены при проектировании. Некоторые тесты не проходили ни на одном компиляторе. Очередная попытка создать единый язык программирования не увенчалась успехом.

Современный этап – внедрение развития объектно-ориентированных парадигм. Первый чистый ОО ЯП появился в 1972 году – SmallTalk (лаборатория Xera PARC – авторы Ethernet, компьютерных мышей, некоторых современных GUI) . В 1980 году оформилась новая, самая популярная версия этого языка SmallTalk 5 . Сохранились даже понятия этого языка – методы, суперкласс, но язык оказался крайне неэффективным. Интересная особенность – изначально был разработан промежуточный язык Bytecode, откуда программы интерпретировались в SmallTalk и для того, чтобы язык шёл на разных архитектурах, нужно было заменить интерпретатор Bytecode.

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