Similar presentations:
Введение в компьютерные науки. Языки программирования
1. Введение в компьютерные науки
ЛЕКТОР К.Т.Н. МОХОВ В.А.ГЛАВА 6. ЯЗЫКИ ПРОГРАММИРОВАНИЯ
2. Часть 6: Языки программирования
6.1 Исторический обзор6.2 Концепции традиционного программирования
6.3 Процедуры и функции
6.4 Реализация языка
6.5 Объектно-ориентированное программирование
6.6 Программирование параллельных процессов
6.7 Декларативное программирование
3. Рисунок 6.1 Поколения языков программирования
4. Ранние поколения: языки Ассемблера
Мнемоническая система представляющаямашинные инструкции
Мнемоническая запись различных команд
Идентификаторы: Описательные названия ячеек
памяти, выбранные программистом
5. Характеристики языков Ассемблера
Соответствие между машиннымиинструкциями и инструкциями по сборке
Программист должен думать, как машина
По своей сути машинно-зависимые
Конвертация в машинный язык с помощью
программы под названием ассемблер
6. Пример программы
Машинный язык156C
166D
5056
30CE
C000
Ассемблер
LD R5, Price
LD R6, ShipCharge
ADDI R0, R5 R6
ST R0, TotalCost
HLT
7. Третье поколение языков
Использование примитивов высокого уровняАналогично нашему псевдокоду в 5 главе
Машинная независимость (в основном)
Примеры : FORTRAN, COBOL
Каждый примитив соответствует
последовательности инструкций машинного
языка
Конвертация в машинный язык с помощью
программы под названием компилятор
8. Рисунок 6.2 Эволюция парадигм программирования
9. Рисунок 6.3 Функция вычисления среднеарифметического нескольких чисел из 3 более простых функций
10. Рисунок 6.4 состав типичной императивной программы или программного модуля
11. Типы данных
Integer: Целые числаReal (float): Числа с запятой
Character: Символы
Boolean: Логические(правда/ложь)
12. Объявления переменных
floatLength, Width;
int
Price, Total, Tax;
char
Symbol;
13. Рисунок 6.5 Объявление массива с 2 столбцами и 9 строками
14. Рисунок 6.6 Концептуальная структура совокупного типа работника
15. Рисунок 6.7 Структура цикла и его представление в C++, C#, Java и Pascal
16. Процедурные Единицы
Локальные в сравнении с глобальнымипеременными
Формальные в сравнении с актуальными
параметрами
Передача параметров по значению в
сравнении с ссылкой
Процедуры в сравнении с Функциями
17. Рисунок 6.8 Передача и возврат управления при вызове процедуры
18. Рисунок 6.9 Процедура ProjectPopulation написанная на языке программирования C
19. Рисунок 6.10 Выполнение процедуры Demo с передачей параметров по значению
20. Рисунок 6.11 Выполнение процедуры Demo с передачей параметров по ссылке
21. Рисунок 6.12 Функция CylinderVolume написанная на языке программирования C
22. Рисунок 6.13 Процесс трансляции программы
23. Рисунок 6.14 Синтаксическая диаграмма оператора if-then-else нашего псевдокода
24. Рисунок 6.15 Синтаксическая диаграмма, описывающая структуру простого алгебраического выражения
25. Рисунок 6.16 Дерево синтаксического анализа строки x + y x z, выполняемого на основании синтаксических диаграмм, представленных
нарисунке 6.15
26. Рисунок 6.17 Два различных дерева синтаксического анализа для оператора if B1 then if B2 then S1 else S2
27. Рисунок 6.18 Объектно-ориентированный подход к процессу трансляции программ
Рисунок 6.18 Объектноориентированный подход кпроцессу трансляции программ
28. Объекты и Классы
Объект: Активный программный модуль,содержащий данные и процедуры
Класс: Это описание структуры
объекта(шаблон, из которого построены
объекты)
Объект называется экземпляром класса.
29. Рисунок 6.19 Структура класса, описывающего, лазерное оружие в компьютерной игре
30. Компоненты объекта
Экземпляр переменной: Переменная в пределахобъекта
Метод: Процедура внутри объекта
Содержит информацию в пределах объекта
Описывает действия, которые объект может выполнять
Конструктор: Специальный метод, используемый
для инициализации нового объекта, когда он
впервые построен
31. Figure 6.21 Класс с конструктором
32. Целостность объектов
Инкапсуляция: Способ ограничения доступа квнутренним компонентам объекта
Private (закрытые)
Public (открытые, доступные извне)
33. Рисунок 6.22 Наш LaserClass определяет использования инкапсуляции, как она будет отображаться в программе на Java или C#
34. Дополнительные объектно-ориентированные понятия
Дополнительные объектноориентированные понятияНаследование:механизм языка, позволяющий
описать новый класс на основе уже
существующего класса
Полиморфизм: возможность объектов с
одинаковой спецификацией иметь различную
реализацию.
35. Программирование параллельных процессов
Параллельная (или одновременная) обработка:одновременное выполнение нескольких
процессов
Правда параллельная обработка требует нескольких
процессоров
Может быть смоделирована при помощи разделения
времени с одним процессором
36. Рисунок 6.23 Spawning потоки
37. Управление доступом к данным
Взаимное исключение: Способ обеспечения того, чтоданные могут быть доступны только одним процессом, в
одно время
Монитор: набор процедур и данных, к которым процессы
могут обращаться только поочередно и которые содержат
заданные программистом правила организации
взаимодействий
38. Декларативное программирование
Резолюция: Объединение двух или болеезаявлений для получения нового заявление (что
является логическим следствием из оригинала).
Пример: (P OR Q) AND (R OR Q)
resolves to (P OR R)
Резольвента: Новое утверждение получаемое с
помощью резолюции
Форма предложения: Высказывания, компоненты
которых можно соединить булевой операцией
OR(или)
Унификация: Присвоение значения
переменной, так что бы два заявления стали
"совместимы".
39. Рисунок 6.24 Резолюция высказываний(P OR Q) and (R OR ¬Q) с получением высказывания(P OR R)
40. Рисунок 6.25 Резолюция высказываний (P OR Q), (R OR ¬Q), ¬R, and ¬P
41. Язык Prolog
выводЯзык Prolog
Факт: Prolog заявляет об установлении факта
Состоит из отдельно предиката
Форма: Имя Предиката(аргументы).
Пример: parent(bill, mary).
Правило: Prolog заявляет о создании общего правила
Форма: вывод :- предпосылка.
«:-» означает «if»
Пример: wise(X) :- old(X).
Пример: faster(X,Z) :- faster(X,Y), faster(Y,Z).