- •Кафедра «Информационные технологии»
- •Лекция 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
- •«Генеалогическое дерево» языков программирования высокого уровня
- •Выводы по развитию ПО
- •Выводы по развитию ПО
- •Выводы по развитию ПО
- •Выводы по развитию ПО
- •Выводы по развитию ПО
Выводы по развитию ПО
I.Программирование более консервативно, чем аппаратная часть компьютера. Фундаментальные идеи в области ПО «рождаются» очень редко - раз в 10-15 лет.
За прошедшие полвека было предложено
5основных концепций программирования:
1)процедурное программирование (Фортран, Кобол,
Алгол, Паскаль и т. п.);
2) объектно-ориентирование программирование
(ООП), в «чистом» виде - в Smalltalk, в «смеси» с процедурным программированием - во всех современных языках — Object Pascal, Visual63 Basic, C++, Java;
Выводы по развитию ПО
3) визуально-событийное программирование, является развитием ООП в части работы с особыми классами визуальных объектов (пиктограммами, кнопками, диалоговыми окнами), реагирующими на различные внешние события — щелчок, перетаскивание мышью, …
Реализовано в визуальных технологических средах Delphi, Visual Basic, Visual C++, Visual Java, Visual FoxPro и др.;
64
Выводы по развитию ПО
4)функциональное программирование, представленное языком Lisp и его «потомками» (Common Lisp, Scheme, AutoLisp, Visual Lisp);
5)логическое программирование, положенное в основу языка Prolog.
65
Выводы по развитию ПО
II. Новые идеи в программировании
часто рождаются не в результате инженерного прозрения, а на основе
фундаментальных математических теорий; такова судьба Лиспа, Пролога,
Лого. Поэтому развитие ПО требует
математических исследований.
66
Выводы по развитию ПО
III. Самый хороший и элегантный язык
ничего не стоит без реализации, которая
должна быть эффективной.
Вспомним, например, как Филипп Кан удачной реализацией дал вторую жизнь Паскалю. Построение же эффективного транслятора (компилятора или интерпретатора) невозможно без глубокого знания теории формальных языков и методов трансляции.
67