- •Введение.
- •Понятие формального алгоритма.
- •Абстрактная машина.
- •Диалоговые программы.
- •Структурное программирование.
- •Информация.
- •Программа на языке высокого уровня.
- •Интерпретатор – покомандно или построчно считывает программу на исходном языке, переводит на машинный язык и отправляет на выполнение.
- •Интерпретатор языка командной строки.
- •Критерии качества программы.
- •Императивные и декларативные языки.
- •Надежность по.
- •Жизненный цикл по.
- •Структурное программирование.
- •Язык программирования с.
- •Алфавит.
- •Константы.
- •Void – пусто. Используется для обозначения отсутствия возвращаемого значения функции.
- •Данные.
- •Int а[10][7];массив из 10 элементов типа массив, из элементов типа int
- •Структура.
- •Extern. Внутренняя переменная.
- •Динамическая структура данных. Синтаксическое и динамическое распределение памяти.
- •Формальные параметры.
- •Тело функции.
- •Вызов функции.
- •Фактические аргументы.
- •Использование файлов в языка программирования с.
- •Директивы препроцессора. Указания компилятора.
- •Именованные константы. Макроопределения.
- •Проектирование интерфейса.
- •Блок схемы.
- •Символы процесса.
Программа на языке высокого уровня.
Этапы существования ПО (не жизненный цикл программы):
Подвергается трансляции (процедура перевода с языка высокого уровня на машинный язык.) В ходе трансляции может использоваться переход на промежуточный язык – кросстрансляции . в качестве промежуточного языка может использоваться язык Ассемблера.
Ассемблер – программа, осуществляющая перевод с языка ассемблера на машинный язык.
Машинный язык – язык, использующий машинные команды, записанные в формате воспринимаемом конкретным вычислительным устройством.
Язык ассемблера представляет собой мнемонимическую запись машинного языка (add-сложить).
Транслятор – программа, выполняющая процедуру трансляции. 2 вида:
-
компилятор;
-
интерпретатор.
-
Компилятор – осуществляет перевод текста программы на машинный язык целиком.
-
Результат работы – объектный файл, содержащий программу на машинном языке и информацию о данных, используемых программой. Объектный файл обрабатывается компоновщиком (линкером) или редактором связи.
Компоновщик обрабатывает объектные файлы, разрешает внешние ссылки (делает доступным вызовы объектов функций или данных из других объектных файлов или стандартных библиотек), осуществляет необходимую подготовительную работу для последующей загрузки программы на исполнение. В случае с Borland C мы получаем исполняемый файл (.exe).
Загрузчик программ, осуществляющих размещение исполняемого кода и данных в памяти ЭВМ и передающий управление первой исполняемой команде программы.
В случае персональных ЭВМ функции загрузчика распределены между ОС и кодом, включаемым в исполняемый файл.
Исполнение программы начинается с загрузки в регистр счетчика исполняемых команд ЦП, адреса первой исполняемой команды программы.
Устройство управления считывает по этому адресу код команды, в соответствии с ним считывает значения операндов (если они есть), передает код и операнды АЛУ, которое выполняет необходимые операции.
По завершению выполнения команды значение регистра счетчика команд увеличивается на значение длины команды, которая известна по коду операции.
Процедура повторяется до тех пор, пока не будет встречена команда stop. Исполняемая программа обычно завершается возвратом управления программе, вызвавшей данную программу (ОС).
-
Интерпретатор – покомандно или построчно считывает программу на исходном языке, переводит на машинный язык и отправляет на выполнение.
Входом является программа на языке программирования. Результат – построчно выполняемая команда.
Пример машинной команды, языка высокого уровня.
Оператор goto – безусловного перехода.
Goto_«метка»;
«Метка» - идентификатор, определяющий точку в тексте программы. В языке С с помощью метки осуществляются переходы на определенный оператор или пустой оператор.
Goto М;
А=В+С; после компиляции
М:А=Д+Е; goto будет переведен в jump. В качестве операнда из программы должен быть адрес. Метка М после компиляции получит свое значение как адрес относительно начала исполняемого кода, начиная с которого после перевода на машинный язык будут записаны команды, соответствующие А=Д+Е. (М на относительную ссылку). При загрузке размещения в памяти относительная ссылка будет заменена действительным адресом (абсолютной ссылкой в каком-либо формате). После того, как в счетчик команд попадет адрес команды jump, то произойдет загрузка значения абсолютного адреса метки М в регистр счетчика команд, представляет собой безусловный переход
На оператор А=Д+Е. собственно оператор А=Д+Е приведет к появлению машинных команд: сложения, пересылке.