- •Кафедра «Информационные технологии»
- •Лекция 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
- •«Генеалогическое дерево» языков программирования высокого уровня
- •Выводы по развитию ПО
- •Выводы по развитию ПО
- •Выводы по развитию ПО
- •Выводы по развитию ПО
- •Выводы по развитию ПО
Роль Smalltalk
Smalltalk «опередил» свое время на 10-20 лет. Хотя фирма Xerox PARC не извлекла из него коммерческой выгоды, идеи проекта имели далекие последствия.
После посещения руководством Apple в 1979 г. центра PARC в мир ПК «пришли» принципы
графического оконного интерфейса, а идеи
объектности «завоевали» современные языки программирования. В 1980 г. появился «Си с объектами», позднее переименованный в C++, начиная с версии 5.5 объекты вошли в Паскаль,
объектным стал Visual Basic, в 1995 г. распространился 100% объектный Java41 …
10) С — язык для профессионалов ( )
Cоздан Деннисом Ричи (1973 г., Bell Labs) при разработке ОС UNIX. Обычно для максимальной эффективности ядро ОС писали на языке ассемблера. «Плата» за это – узкая специализация: при переходе на новый тип процессора программы переписывались полностью.
Авторы UNIX задумали ее как переносимую систему и написали ядро в основном на языке высокого уровня. Си «справился» с этой задачей, на нем написано около 90% кода UNIX. «Ноу- хау»: будучи в целом языком высокого уровня, Си через указатели и средства связи с ОС позволяет гибко управлять процессом компиляции и исполнения программ.42
10) С — язык для профессионалов ( )
Это (+компактность) сделали Си
распространенным средством системного программирования. Т.к. UNIX была некоммерческой системой, язык Си вместе с ней разошелся по университетам мира. Исходная версия языка была реализована на мини-ЭВМ PDP-11, затем компиляторы появились для разных аппаратных платформ.
43
Пример - программа сортировки пяти чисел на
С
«Чистый» Си до сих пор широко используется44 .
11) Объектно-ориентированные
«потомки» Си: C++, Java, C#
Начало 1980-х - Бьярн Страуструп (Bell Labs) на основе синтаксиса Си разработал объектно- ориентированный язык C++ (расширение Си). C+ + стал популярен благодаря мощи, компактности, универсальности, реализации самых смелых идей объектного программирования (например, множественного
наследия).
45
11) Объектно-ориентированные «потомки» Си: C++, Java, C#
Как все объектные языки, С++ является неограниченно расширяемым. В нем можно описывать новые классы объектов и операции над ними. Это позволяет в рамках единого синтаксиса и единой технологической среды иметь множество специализированных языков программирования.
С++ широко используется, для него несколькими фирмами предлагаются удобные технологические среды, созданы библиотеки стандартных классов для различных областей применения. К концу XX века С+
+стал стандартным языком профессионального
программирования. 46
C#
Начало XXI века - еще один преемник С - C# («си шарп»;
знак диеза намекает на повышение возможностей базового языка). Предложен Microsoft как «оружие» в конкурентной борьбе против победного шествия языка Java.
Microsoft: С# вобрал в себя все лучшее из С++, Visual Basic, Java, Object Pascal:
• |
обеспечивает быструю разработку; |
• |
позволяет писать эффективный код; |
• |
впервые реализована принципиально новая |
концепция компонентного программирования, в которой программной единицей становится не объект, а компонент, представляющий собой готовое
приложение, распространяемое по компьютерной сети.
? Вопрос о том, действительно ли компонентное программирование
представляет собой смену парадигмы, или это — некоторая эволюция ставшего уже традиционным объектного программирования,47 на сегодняшний день является дискуссионным.
Java
1995 г. (Sun Microsystems). Разработчики,
1995 г.: через несколько лет Java вытеснит все существующие языки программирования на всех типах компьютеров — от встроенных в бытовые
приборы микропроцессоров до суперсистем (???)
Java появился в связи с развитием Интернет.
Когда на смену статичным Web-страницам пришли разнообразные приложения — от развлекательных до ответственных клиентских программ электронной торговли, встал вопрос о выборе языка для сетевого программирования.
48
Требования к Java изначально были очень высокими – язык должен быть:
•аппаратно независимым, так как в сеть включены самые разнообразные компьютеры
•безопасным, чтобы загружаемые по сети программы не могли выступить в качестве троянского коня для хакеров
•компактным и эффективным, не предъявляющим чрезмерных требований к аппаратуре
•универсальным и т. п.
Прототип Java – С++ |
49 |
|