- •Лекция 1. Введение в программирование План
- •1. Языки программирования. Общая характеристика
- •2. Краткая история языков программирования Машинные команды
- •Мнемокоды
- •Структурное программирование
- •Современное программирование
- •Некоторые причины и тенденции развития языков программирования
- •3. Парадигмы программирования
- •Процедурная (директивная) парадигма
- •Функциональное и логическое программирование
- •Объектно-ориентированное программирование
- •Объектно-ориентированное программирование
- •4. Особенности и применение разных классов языков программирования
- •Неструктурные языки (широко использовались 40-е годы)
- •Директивные (структурные) языки (появились в 50-е годы)
- •Декларативные (функциональные и логические) языки (зародились в 60-е годы)
- •A) Функциональные языки
- •B) Логические языки
- •Объектно-ориентированные языки
- •Языки сценариев
- •Краткая характеристика некоторых языков программирования
- •5. Этапы разработки программы
- •Этапы разработки программы для компьютера (решения задачи на эвм)
- •Качество программы и ее разработка
- •Тестирование и отладка программ
- •Проектирование программ
- •6. Система программирования
Директивные (структурные) языки (появились в 50-е годы)
Преимущества
Повторное использование ранее написанных блоков кода.
Высокая степень независимости программы от типа вычислительной машины.
Повышение эффективности труда разработчиков, в том числе и за счет абстрагирования от конкретных деталей аппаратного обеспечения.
Недостатки
Некоторая потеря в скорости вычислений.
Применение
Создание операционных систем и системных программ.
Разработка небольших пользовательских приложений.
Научные расчеты.
Примеры языков: FORTRAN, C, Pascal.
Декларативные (функциональные и логические) языки (зародились в 60-е годы)
Особенность
Программный код на декларативном языке программирования представляет собой описание действий, которые можно осуществлять, а не последовательный набор команд.
Преимущества
Легче формализуется математическими средствами.
Как следствие, программы проще тестировать, т.е. проверять на наличие ошибок.
Высокая степень абстракции.
Недостатки
Снижение скорости работы программы.
Применение
Доказательство теорем.
Возможность обработки разнородных данных.
Наряду с алгоритмическими языками параллельно развивались и языки, предназначаемые для обработки деловой информации, а также языки искусственного интеллекта. К первым относится язык COBOL (COmmon Business Oriented Language), а ко вторым – языки LISP (LISt Processing) и Prolog. Язык LISP, разработанный в 60-х годах под руководством Дж. Маккарти, был первым функциональным языком обработки списков, который нашел широкое применение в теории игр.
A) Функциональные языки
Особенность
Программу на функциональном языке можно представить как функцию с одним или несколькими аргументами.
Преимущества
Автоматическое динамическое распределение памяти компьютера для хранения данных.
Программист получает возможность абстрагироваться от представления данных и других рутинных операциях и сосредоточиться на предметной области.
Недостатки
Нелинейная структура программы, следовательно, такое программирование сложно для понимания.
Относительно невысокая эффективность вычислений.
Применение
Обработка рекурсивных структур данных.
Обработка символьной информации.
Примеры языков: Haskell.
B) Логические языки
Особенность
Программа представляет собой совокупность правил или логических высказываний.
В программе могут быть логические причинно-следственные связи.
Преимущества
Возможность откатов, т.е. возвращения к предыдущей подцели при отрицательном результате одного из вариантов в процессе поиска решения. Это избавляет от необходимости поиска решения путем полного перебора вариантов и увеличивает эффективность реализации.
Недостатки
Узкий класс решаемых задач.
Применение
Эмуляция искусственного интеллекта.
Разработка экспертных систем.
Примеры языков: Prolog.
В конце 60-х годов под руководством Найарда и Дала был разработан язык Simula-67, использующий концепцию пользовательских типов данных. Фактически это первый язык, применяющий понятие классов.
Универсальный язык программирования С был разработан в середине 70-х годов Денисом Ритчи и Кеном Томпсоном. Этот язык стал популярным языком системного программирования и в свое время использовался для написания ядра операционной системы UNIX. Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году. Язык С лег в основу разработки языков программирования C++ и Java.
С появлением персональных компьютеров языки стали составными частями интегрированных сред разработки. Появились языки, применяемые в различных офисных программах, например VBA (Visual Basic for Application).
В 90-х годах с распространением сети Интернет расширяется возможность распределенной обработки данных, что отражается и на развитии языков программирования. Появляются языки, ориентированные на создание серверных приложений, такие как Java, Perl и PHP, языки описания документов – HTML и XML. Традиционные языки программирования С++ и Pascal также претерпевают изменения: под языком программирования начинает пониматься не только функциональность самого языка, а также библиотеки классов, предоставляемые средой программирования. Акцент со спецификации самих языков программирования переносится на стандартизацию механизмов взаимодействия распределенных приложений. Появляются новые технологии – COM и CORBA, специфицирующие взаимодействие распределенных объектов.
