- •1 Понятие языка программирования (неформально)
- •2 Эволюция языков программирования
- •3 Классификация языков программирования
- •4 Среда программирования
- •4.1 Понятие среды программирования
- •4.2 Техника разработки программ
- •4.3 Классификация ошибок в программе
- •4.4 Отладка
- •5. Основные виды языков программирования
- •6 Лямбда-исчисление как формализация функциональных языков
- •7 Лямбда-исчисление как формальная система
- •7.1 Свободные и связанные переменные
- •7.2 Подстановки
- •7.3 Конверсия
- •7.4 Равенство лямбда-термов
- •7.5 Экстенсиональность
- •7.6 Редукция лямбда-термов
- •7.7 Редукционные стратегии
- •8 Комбинаторы
- •9 Лямбда-исчисление как язык программирования
- •9.1 Представление данных в лямбда-исчислении
- •9.1.1 Булевские значения и условия
- •9.1.2 Пары и кортежи
- •9.1.3 Натуральные числа
- •9.2 Рекурсивные функции
- •9.3 Именованные выражения
- •10 Типы
- •10.1 Типизированное лямбда-исчисление
- •10.1.1 Базовые типы
- •10.1.2 Типизации по Черчу и Карри
- •10.1.3 Формальные правила типизации
- •10.2 Полиморфизм
- •10.2.1 let-полиморфизм
- •10.2.2 Наиболее общие типы
- •10.3 Сильная нормализация
- •11 Отложенные вычисления
- •12 Классы типов
- •13 Монады
Язык с энергичной семантикой – ML и два его диалекта Standard ML (SML) и CaML.
Языки с ленивой семантикой – Haskell и Clean.
Языкилогическогопрограммирования
Программы на них выражены как формулы математической логики . Prolog – 1971 г.
Потомки:
Parlog – 1983 г. , ориентирован на параллельные вычисления .
Delta Prolog.
3 Классификация языков программирования
По поколениям – Generation Language (GL): 1GL – система команд
2GL – машинно-ориентированные языки 3GL – языки высокого уровня
4GL – объектно-ориентированные языки 5GL – интеллектуальные языки
По уровню:
Языки программирования
Языки высокого уровня
Процедурные языки (Fortran, Cobol, PL/1, Algol, Pascal, C, Ada, …)
zЯзыки обработки данных (LISP, APL, Snobol, Icon, SETL, …)
zОО-языки (Smalltalk, Simula, Eiffel, C++, Ada95, …)
z…
Языки низкого уровня zМашинные языки zЯзыки ассемблеров
Языкивысокогоуровняхарактеризуются
наличием понятия типа данных,
независимостью от архитектуры конкретного компьютера (мобильностью программ),
развитыми управляющими структурами и средствами описания структур данных,
близостью к естественному языку.
8