Введение в компьютерные науки
Часть 6: Языки программирования
Рисунок 6.1 Поколения языков программирования
Ранние поколения: языки Ассемблера
Характеристики языков Ассемблера
Пример программы
Третье поколение языков
Рисунок 6.2 Эволюция парадигм программирования
Рисунок 6.3 Функция вычисления среднеарифметического нескольких чисел из 3 более простых функций
Рисунок 6.4 состав типичной императивной программы или программного модуля
Типы данных
Объявления переменных
Рисунок 6.5 Объявление массива с 2 столбцами и 9 строками
Рисунок 6.6 Концептуальная структура совокупного типа работника
Рисунок 6.7 Структура цикла и его представление в C++, C#, Java и Pascal
Процедурные Единицы
Рисунок 6.8 Передача и возврат управления при вызове процедуры
Рисунок 6.9 Процедура ProjectPopulation написанная на языке программирования C
Рисунок 6.10 Выполнение процедуры Demo с передачей параметров по значению
Рисунок 6.11 Выполнение процедуры Demo с передачей параметров по ссылке
Рисунок 6.12 Функция CylinderVolume написанная на языке программирования C
Рисунок 6.13 Процесс трансляции программы
Рисунок 6.14 Синтаксическая диаграмма оператора if-then-else нашего псевдокода
Рисунок 6.15 Синтаксическая диаграмма, описывающая структуру простого алгебраического выражения
Рисунок 6.16 Дерево синтаксического анализа строки x + y x z, выполняемого на основании синтаксических диаграмм, представленных
Рисунок 6.17 Два различных дерева синтаксического анализа для оператора if B1 then if B2 then S1 else S2
Рисунок 6.18 Объектно-ориентированный подход к процессу трансляции программ
Объекты и Классы
Рисунок 6.19 Структура класса, описывающего, лазерное оружие в компьютерной игре
Компоненты объекта
Figure 6.21 Класс с конструктором
Целостность объектов
Рисунок 6.22 Наш LaserClass определяет использования инкапсуляции, как она будет отображаться в программе на Java или C#
Дополнительные объектно-ориентированные понятия
Программирование параллельных процессов
Рисунок 6.23 Spawning потоки
Управление доступом к данным
Декларативное программирование
Рисунок 6.24 Резолюция высказываний(P OR Q) and (R OR ¬Q) с получением высказывания(P OR R)
Рисунок 6.25 Резолюция высказываний (P OR Q), (R OR ¬Q), ¬R, and ¬P
Язык Prolog
3.55M
Категория: ПрограммированиеПрограммирование

Введение в компьютерные науки. Языки программирования

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. Объявления переменных

float
Length, 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).
English     Русский Правила