Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatica / Лекция_6.DOC
Скачиваний:
25
Добавлен:
12.03.2015
Размер:
41.47 Кб
Скачать

Лекция 6

СИСТЕМЫ ПРОГРАММИРОВАНИЯ

Под системой программирования понимают совокупность языка программирования и виртуальной машины, обеспечивающей выполнение на реальной машине программ, составленных на этом языке.

Языком программирования называют систему обозначений, служащих в целях точного описания алгоритмов для ЭВМ.

Виртуальная машина - это программный комплекс, эмулирующий работу реальной машины с определенным входным языком на ЭВМ с другим машинным языком, а иными словами реализующий входной язык программирования.

Главным классифицирующим признаком языков и, следовательно, систем программирования, является принадлежность к одному из оформившихся к настоящему времени стилей программирования, основные среди которых - процедурное, функциональное, логическое и объектно-ориентированное.

Кратко охарактеризуем основные стили программирования и рассмотрим относящиеся к ним системы программирования.

  1. Процедурное программирование

Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах.

Программа на процедурном языке программирования состоит из последовательности операций (инструкций), задающих те или иные действия. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Вообще концепция памяти, как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании.

Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти (т.е. значений переменных) в заключительное. Таким образом, с точки зрения программиста имеется программа и память, причем первая последовательно обновляет содержимое памяти.

Процедурные языки характеризуются:

значительной сложностью;

отсутствием строгой математической основы;

необходимостью явного управления памятью, в частности необходимостью описания переменных;

малой пригодностью для символьных вычислений;

высокой эффективностью реализации на традиционных ЭВМ.

Из-за наличия побочных эффектов (т.е. взаимного влияния различных программных модулей через общую память) программы на таких языках трудно читаемы, плохо модифицируемы и трудно проверяемы, следовательно, ненадежны. По этой же причине они предполагают лишь последовательное выполнение.

Одним из важнейших классификационных признаков процедурных языков является их уровень.

Уровень языка программирования определяется семантической (смысловой) емкостью его конструкций и его ориентацией на программиста-человека. Язык программирования (частично) ликвидирует семантический разрыв между методами решения задач человеком и машиной. Чем более язык ориентирован на программиста, тем выше его уровень.

Распределение основных реализованных на ПЭВМ императивных языков по уровням приведено на рис. 1.

Языки:

АРL

Выше Modula - 2 Языки

Pascal высокого

уровня

Развитие версии Basic’a

Уровень Fortran

Простой Basic

C

Язык Макроассемблера

Язык детализированных

схем программ

Ниже Простой язык Ассемблера

Шестнадцатеричный язык

Двоичный язык

Рис. 1. Уровни процедурных языков

Двоичный язык является не чем иным, как непосредственно машинным языком, в настоящее время такие языки программистами не применяются.

Шестнадцатеричный язык обеспечивает некоторое упрощение записи программы на машинном языке путем представления четырех цифр одной шестнадцатеричной. Этот язык используется в качестве дополнения к языкам высокого уровня, таким как Pascal, для программирования критичных к времени выполнения фрагментов алгоритмов.

Язык Ассемблера - это язык, предназначенный для представления в удобночитаемой символической форме программ, записанных на машинном языке. Он позволяет программисту пользоваться мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и ячейкам памяти, а также задавать наиболее удобные в том или ином контексте схемы адресации.

Язык детализированных схем программ - это не язык программирования, а язык представления алгоритмов при разработке программ, некогда широко используемый. В связи с достаточно низким уровнем этот язык в настоящее время на практике почти не применяется.

Язык Макроассемблера является расширением языка Ассемблера за счет включения макросредств. С их помощью предоставляется возможность описывать в программе последовательности инструкций с параметрами (макроопределения) и использовать снабженные аргументами макрокоманды, которые автоматически замещаются в процесс ассемблирования макрорасширениями, представляющими собой макроопределения с подставленными вместо параметров аргументами.

Языки высокого уровня будут рассмотрены в Лекции 13.

Соседние файлы в папке Informatica