- •Кафедра «Информационные технологии»
- •Лекция 4
- •Приоритет программного обеспечения над аппаратным обеспечением
- •Классификация программного обеспечения
- •Общее ПО - рассчитано на широкий круг
- •Рост доли общего ПО
- •Развитие ПО - 1950-е годы: библиотеки стандартных программ и ассемблеры
- •Развитие ПО - 1950-е годы: библиотеки стандартных программ и ассемблеры
- •Развитие ПО - 1960-е годы: языки и системы программирования, пакетные ОС
- •Развитие ПО - 1970-е годы: диалоговые ОС, СУБД
- •Развитие ПО - 1980-е годы: настольные ППП, CASE-технологии
- •Развитие ПО - 1990-е годы: компьютерные сети и мультимедиа
- •Языки и системы программирования. Предыстория
- •Языки и системы программирования. Предыстория
- •Фрагмент простейшей программы на Фортране
- •Особенности языка Фортран
- •Языки и системы программирования
- •Основные идеи создания Basic
- •Пример программы на Basic
- •Пример программы на Basic
- •Простой и удобный Бэйсик в конце 1960-х годов был
- •Особенности современного Basic
- •5) Cobol – язык для бухгалтеров
- •Фрагмент программы на Коболе
- •Некоторые особенности языка Cobol
- •6) Algol, его влияние на языки
- •Пример программы на Algol
- •Пример программы на Algol
- •7) Pascal и его потомки
- •Внешний вид программы на базовом Паскале почти неотличим от «алгольного»:
- •«Второе рождение» языка Паскаль - 1984 г., Филипп Кан, доработал Паскаль для использования
- •Язык Ada - еще один «потомок» Паскаля
- •8) «Суперязык» PL/1
- •8) «Суперязык» PL/1
- •Пример простейшей программы на PL/1
- •Несмотря на теоретическое несовершенство,
- •9) Simula и Smalltalk – «объектная»
- •Все известные до Smalltalk языки основывались на концепции «данные-процедуры», т. е. были
- •Для общения с пользователем в Smalltalk были впервые применены особые графические объекты —
- •Пример программы на Smalltalk
- •Роль Smalltalk
- •10) С — язык для профессионалов ( )
- •10) С — язык для профессионалов ( )
- •Пример - программа сортировки пяти чисел на
- •11) Объектно-ориентированные
- •Java
- •Требования к Java изначально были очень высокими – язык должен быть:
- •Программы на Java (апплеты, дословно «приложеньица») выполняются в два этапа:
- •12) Lisp — инструмент функционального программирования
- •Пример - программа вычисления среднего
- •LISP
- •«Потомки» LISP
- •Использование «потомков» LISP
- •13) Prolog — «несбывшаяся мечта»
- •Примеры программ на языке Prolog
- •Примеры программ на языке Prolog
- •«Генеалогическое дерево» языков программирования высокого уровня
- •Выводы по развитию ПО
- •Выводы по развитию ПО
- •Выводы по развитию ПО
- •Выводы по развитию ПО
- •Выводы по развитию ПО
«Второе рождение» языка Паскаль - 1984 г., Филипп Кан, доработал Паскаль для использования на ПК, создав скоростной оптимизирующий компилятор Turbo-Pascal. Основатель фирмы Borland International.
31
Язык Ada - еще один «потомок» Паскаля
(назван в честь Ады Лавлейс)
В 1975 г. Министерство обороны США, один из крупных «потребителей» компьютерных программ, решило разработать стандартный
язык для программирования военных
приложений. Был объявлен конкурс, в котором
победила французская фирма C.I.I., руководитель проекта Жан Ихбиа.
Кроме средств параллельного программирования процессов реального времени, в нем заложены принципы модульного структурирования и раздельной компиляции.
В 1986 г. язык Ада стал обязательным для всех военных разработок США и НАТО. 32
8) «Суперязык» PL/1
PL/1 (Programming Language One) – 1964 г
(IBM, «завязка» на систему IBM S/360). Цель создания – обобщить достоинства всех известных языков.
В отличие от Алгола-68, который глубоко прорабатывался теоретически, PL/1 создавался в спешке и был логически рыхлым
– «смесью» идей из многих языков. Критики: «елка со множеством украшений», «перочинный нож в сто лезвий». 33
8) «Суперязык» PL/1
Вместе с тем - много практических находок на инженерном уровне: указатели,
макроопределения, механизм обработки исключительных ситуаций и др., что позволяло писать эффективные программы на низком уровне.
Позже, при создании компилятора, язык был существенно упрощен и отредактирован.
34
Пример простейшей программы на PL/1
(Решение квадратного уравнения Ax2+Bx+C=0. Значения A, B, C считываются с перфокарт, а комплексные корни X1 + i Y1
и X2 + i Y2 выдаются на печать).
Несмотря на теоретическое несовершенство,
язык PL/1 сыграл важную роль в практике
программирования для машин класса IBM 360/370.
В СССР в эпоху АСУ (1970-80-е гг.) он был
основным языком программирования экономических и научно-технических задач на ЕС ЭВМ и стандартным языком для обучения программистов. Механизмы низкоуровневого программирования в PL/1 (указатели, средства связи с вычислительной средой) позволяли писать
эффективные программы.
После появления ПК популярность PL/1 резко упала. Первые поколения микрокомпьютеров были слишком слабыми для реализации компилятора с PL/1, а когда компьютеры стали достаточно36 мощными, было уже поздно — нишу PL/1 заняли Паскаль и Си.
9) Simula и Smalltalk – «объектная»
революция в программировании
Язык Simula - одно из расширений Алгола-60 (1964 г., Норвегия) для записи алгоритмов моделирования (simulation) динамических
процессов; используется для имитационного моделирования и сейчас.
Историческое значение Simula (Simula-67) -
впервые появилось понятие объекта. Идея объекта не сразу «завоевала» компьютерный мир. Первый масштабный проект, воплотивший принцип объектно-ориентированного программирования – Alto (1973 г., Xerox PARC). Программную часть проекта Alto составили язык и система программирования Smalltalk («разговорчик»), развивающие принципы37 Simula-
67.
Все известные до Smalltalk языки основывались на концепции «данные-процедуры», т. е. были
процедурно-ориентированными.
Smalltalk был первым языком, основанным на концепции «объекты-сообщения», т. е.
объектно-ориентированным.
В этом случае «с точки зрения» языка компьютер - среда, населенная объектами, посылающими
друг другу сообщения. Каждый объект - это как бы «микроскопический компьютер» со своей памятью (переменные объекта) и своей системой команд (методы объекта).
38
Для общения с пользователем в Smalltalk были впервые применены особые графические объекты — окна, а для управления ими использовался придуманный Дугласом Энгельбартом в 1968 г. манипулятор «мышь».
Язык дорабатывался в течение нескольких лет, в 1980 г. появилась версия Smalltalk/V, которая и на сегодняшний день является «идеалом» абсолютно-объектного программирования.
39
Пример программы на Smalltalk
(ввод, сортировка и вывод массива из 5 чисел)
40