- •1. Сообщения, информация. Обработка сообщений и обработка информации.
- •2. Понятие системы программирования. Парадигмы программирования.
- •3. Понятие транслятора и способы его реализации. Сравнительный анализ компиляторов, интерпретаторов и псевдокомпиляторов.
- •4.Процедурное программирование. Характеристики языков, реализующих процедурное программирование.
- •6!. Программный интерфейс между процедурами на языке Ассемблера и программой на языке Pascal.
- •7. Язык программирования с – основные конструкции и особенности.
- •8. Сравнительный анализ языков c и Pascal.
- •19. Распознаватели как способ определения языка. Виды распознавателей и их связь с грамматикой.
- •22. Контекстно- свободные языки и их свойства. Дерево вывода.
- •23. Распознаватель со стековой памятью.
- •27.Класс ll(1) грамматик и их свойства. Критерий принадлежности языка к классу ll(1).
- •28.Однопроходный синтаксический анализатор и его алгоритм работы. Управляющая таблица.
- •35.Понятие о фазах трансляции.
- •31.Построение лексического анализатора с помощью утилиты lex. Виды регулярных выражений.
- •33.Грамматики простого предшествования и операторного.
1. Сообщения, информация. Обработка сообщений и обработка информации.
Любая информация передается с помощью сообщений.
Одна и та же информация может передаваться разными сообщениями.
Например, запись числовой информации:
2006=2*103+0*102+0*101+6*100
MMVI
Обратное тоже верно: одно и то же сообщение может передавать разную информацию.
Абстрактная информация передается посредством некоторого сообщения, т.е. существует σ – отображение, или правило интерпретации:
N I, где N – сообщение, I – информация.
H I, H-мн-во сообщений.
Если I=I/, то преобразование называется идеальным.
коммутативная диаграмма
H →
α I
M →
Например, H= - мн-во простых дробей
M – мн-во десятичных дробей
Обработка:
всякое правило обработки сообщений можно понимать как отображение (ф-ию) ν: , которое сообщениям N из всякого мн-ва сообщений R ставит в соответствие новые сообщения N/ из R/.
Всякую обработку сообщений можно рассматривать как кодировку.
Если R – конечное, то обработку можно сделать посредством перечисления единичных соответствий. Если R – бесконечно, то нужно задавать конечное мн-во операций (элементарных шагов обработки) такое, что каждый переход от N к N/ можно было осуществить за конечное число таких элементарных шагов обработки.
Эффективность правил обработки сообщений определяется обьемом и длительностью процесса обработки в сравнении с другими процессами.
N I (N,K – сообщения)
α ||δ (*)
K I/
Если σ – необратимое, т.е. существуют N1 и N2 R, которые передают одну и ту же информацию, то соответствие δ может и не быть отображением, т.к. α(N1) и α(N2)могут нести различные информации.
Правило обработки сохраняет информацию, если соответствие δ является отображением: δσ=σ/α. В этом случае (*) коммутативна, а отображение δ – правило обработки информации.
Теория трансляции – теория, которая переводит одни сообщения в другие без потери информации.
Техническая реализация аппаратной базы ОС опирается на двоичную информацию.
2. Понятие системы программирования. Парадигмы программирования.
Система программирования – это совокупность языка программирования и виртуальной машины, обеспечивающей выполнение программы, написанной на этом языке.
Язык программирования – система обозначения для точного описания алгоритма.
Уровни языка программирования:
Алфавит языка
Синтаксис языка (набор формальных правил)
Пример: имя буква → →
(имя – определяемое понятие).
семантика – устанавливает связь между синтаксическими конструкциями и их смысловыми значениями.
Прагматика – выбор наиболее адекватных синтаксической конструкции, передающей смысловое значение.
Виртуальная машина – это программно – аппаратный комплекс, эмулирующий (воспроизводящий) работу реальной машины с входным языком на комп-е с другим, обычно машинным, языком.
Виртуальная машина состоит из:
1) транслятор – прог-ма, осуществляющая перевод текста с одного языка на другой;
2) библиотека времени выполнения.
Парадигма программирования – технология формализации перевода неформального алгоритма на тот или иной язык программирования.
Парадигмы программирования:
Императивная – основной частью программы является детальное описание действий алгоритма (указывает, что надо делать):
а) неструктурная (FORTRAN 77);
б) процедурная (FORTRAN 90);
2) Декларативная – формализует набор данных, с помощью которого можно реализовать алгоритм (не указывает, что надо делать):
а) аппликативная (функциональная): любая программа набор ф – ий:
- ф – ии – константы;
- стандартные ф – ии;
- ф-ии пользователя.
Программирование – описание набора ф-ий. Нет существенной разницы между операторами и данными.
б) логическая (PROLOG) – по предикатам с помощью логических парадигм получаем новые предикаты.
в) объектно – ориентированная – данные и операторы не противопоставляются, а объединяются. Позволяет упростить процесс перевода алгоритма на язык программирования.