Компилятор (compiler) – это программа или технические средства, выполняющие компиляцию. Компиляция представляет собой процесс трансляции программы на язык, близкий к машинному языку, то есть компилятор сначала транслирует всю программу на машинный язык, формирует программу в целом в машинных кодах, а затем эта программа существует как завершенный продукт и может выполняться многократно.
Интерпретатор (Interpreter) –преобразует программу в машинный вид и выполняет последовательно каждую команду отдельно, а не транслирует программу целиком. Программа выполняется в процессе ее ввода и не так быстро, как после трансляции. При этом обеспечивается постоянный диалог при разработке и отладке программы.
На сегодняшний день разработаны сотни алгоритмических языков программирования, но широкое применение получили только десятки. Была попытка создать универсальный язык программирования, а результатом этой работы явились языки ПЛ/1 и Алгол-68.Классификация языков программирования не закреплена ГОСТ и в целом они делятся на две группы: операторные; функциональные.
К функциональным языкам программирования относятся Лисп, Пролог, и т.д. Операторные языки программирования делятся: процедурные и непроцедурные (QBE, Fort, Smalltalk).
Процедурные языки в свою очередь делятся: машинно-ориентированные и машинно-независимые (алгоритмические).
К машинно-ориентированным языкам программирования относятся: машинные языки, автокоды, языки символического кодирования и ассемблеры. Машинно-независимые языки программирования подразделяются на процедурно-ориентированные (Паскаль, Фортран, Бейсик и т.д.), проблемно-ориентированные (Лисп, РПГ, GPSS и т.д.) и объектно-ориентированные языки (Java, Cи++, Ада 95, Visual Basic и т.д.).
Процедурно-ориентированные языки программирования применяются для программирования задач широкого класса. Эти языки ( Кобол, Фортран, Паскаль, Ада, ПЛ/1 и т.д.).
Программа на этих языках представляет собой совокупность процедур. Процедуры могут вызывать одна другую, и каждая из них может быть вызвана основной программой, которую можно так же рассматривать как процедуру. Проблемно-ориентированные языки предназначены для использования в определенной области обработки информации. На этих языках программируются задачи в более узкой, специфической области. Например, язык Си в основном применяется для разработки системного программного обеспечения, Пролог - для создания баз знаний, HTML для работы с гипертекстовыми документами, Java – для программирования приложений в Internet. В свое время для решения экономических задач применялся язык Кобол, для научно-технических и инженерных задач – языки Фортран и Паскаль.
Объектно-ориентированные языки явились результатом динамического развития информатики и вычислительной техники. Эти языки относятся к языкам высокого уровня. В них понятия «данные» и «процедуры», которые используются в обычных системах программирования, заменены понятием «объект».
В объектно-ориентированном программировании программа рассматривается как набор дискретных объектов, содержащих в свою очередь наборы структур данных и процедур, взаимодействующих с другими объектами. В этих языках использована объектно-ориентированная архитектура. При этом каждая структура данных должна содержаться в одном программном модуле. Модули объединяют данные и процедуры их обработки. Объектно-ориентированное программирование базируется на понятии абстрактных типов данных.
Абстрактный тип данных (Abstract data type) – тип данных определенный только операциями, применяемыми к объектам данного типа, без учета их внутренней организации и конкретной реализации.
Контрольные вопросы по 3 разделу
1. Что такое алгоритм?
2. Свойства алгоритма
3. Что такое алгоритмизация?
4. Способы записи алгоритма
5. типы алгоритмических процессов
6. Классификация языков программирования
7. Что такое компилятор?
8. Что такое интерпретатор?
9. Что такое абстрактный тип данных?
10. Что такое Блок-схема?
11. Способы записи алгоритма?
12. Этапы решения задач на ПК?
13. Основы алгоритмизации линейных, ветвящихся и циклических вычислительных процессов?