Этапы выполнения программы на компьютере

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

Выполнение программ на компьютере

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

Первым значительным шагом представляется переход к языку Ассемблера. Программисту не надо было больше вникать в хитроумные способы кодирования команд на аппаратном уровне. Числовые коды операций заменились мнемоническими (словесными) обозначениями. Однако разные компьютеры с различными типами компьютеров требуют свой язык Ассемблера.

Что такое компиляция, линковка? Что такое run time?

Поэтому его называют машинно-зависимым или языком низкого уровня. Следует отметить, что простейшая операция взятия логарифма на языке Ассемблера составляет несколько сотен строк кода, в то время как на языке высокого уровня — всего одну строчку.

На смену языкам Ассемблера были разработаны языки программирования высокого уровня (ЯПВУ). Они машинно-независимы.

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

Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.

Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом (модулем). Выходной язык называется целевым языком или объектным кодом (модулем).

Трансляторы делятся на компиляторы и интерпретаторы.

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

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

На следующем этапе компиляции выполняется специальная программа — редактор связей. Она подсоединяет к объектному модулю необходимые для его работы программные модули: все функции, процедуры, на которые он ссылается. Они выбираются из библиотеки подпрограмм соответствующей системы программирования и вставляются в объектный модуль.

Этапы компиляции на Си: предобработка, трансляция, компоновка

Этот процесс называется компоновкой (линкованием), и как его результат создается исполняемая программа. Ее также называют загрузочным модулем. Программа имеет расширение «ехе», загружается в память и выполняется.

Итак, при компиляции исполнение программы включает в себя три этапа: компиляция, компоновка и выполнение. Загрузочную программу можно записать на жесткий диск компьютера и использовать многократно для решения задачи, при этом трансляция программы уже не требуется.

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

Читайте также:
Формат файла поддерживаемый программой autocad в котором хранится чертеж

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

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

Исполнение программы

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

Каждая программа состоит из отдельных двоичных команд (см. “Машинная команда”), так что выполнение программы есть не что иное, как поочередное выполнение этих команд. Рассмотрим последовательность действий ЭВМ при выполнении каждой из команд программы.

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

Пусть в рассматриваемый момент времени текущее значение счетчика команд уже определено. Тогда дальнейшие действия процессора определяются следующим алгоритмом.

1. Согласно содержимому счетчика адреса команд считывается очередная команда программы. Ее код обычно заносится на хранение в специальный регистр УУ, который носит название регистра команд.

2. Счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следующей команды. В простейшем случае для этой цели достаточно к текущему значению счетчика прибавить некоторую константу, определяющуюся длиной команды.

3. Считанная в регистр команд операция расшифровывается, извлекаются необходимые данные, выполняются требуемые действия и, если это предусмотрено операцией, производится запись результата в ОЗУ.

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

Рассмотренный основной алгоритм работы ЭВМ (его также часто называют программным принципом работы ЭВМ) позволяет шаг за шагом выполнить хранящуюся в ОЗУ линейную программу. Если же требуется изменить порядок вычислений для реализации развилки или цикла, достаточно на этапе 3 в счетчик команд занести новый адрес (именно так происходит условный или безусловный переход).

Как отчетливо видно из приведенной выше блок-схемы, основной алгоритм не является “самостартующим”: ему требуется определить первоначальное содержимое счетчика, т.е. фактически адрес самой первой команды. В старых машинах это делал оператор ЭВМ. В современных компьютерах при включении питания или при нажатии на кнопку сброса (reset) в счетчик аппаратно заносится стартовый адрес находящейся в ПЗУ программы инициализации всех устройств и начальной загрузки ЭВМ (см. “Загрузка ПО”).

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

Читайте также:
Есть ли программа рентген для телефона

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

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

Методические рекомендации

Курс информатики основной школы

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

Следуя командам этого алгоритма, процессор осуществляет автоматическое исполнение программы, находящейся в памяти ЭВМ. В принципе этот алгоритм чрезвычайно прост. Но его общеобразовательное значение очень велико: разобравшись в основном алгоритме процессора, учащиеся узнают, как происходит автоматическое исполнение программы, хранящейся в памяти компьютера, т.е. как осуществляет ЭВМ автоматическую обработку информации. Учитель должен добиваться от школьников понимания сути предлагаемого материала, а не его механического выучивания”.

Очень важно обратить внимание учеников на следующее обстоятельство: если посмотреть на основной алгоритм без учета деталей исполнения команды, то становится очевидным, что он годится практически для любого исполнителя, скажем, Кенгуренка. Так что ЭВМ — это самый настоящий исполнитель алгоритмов. Особенность данного исполнителя заключается в том, что команды, которые ЭВМ способна выполнять, являются максимально универсальными, в то время как Кенгуренок и остальные учебные исполнители способны работать только с узкоспециализированными командами. Важно понимать, что на базе относительно небольшого набора универсальных команд компьютера может быть смоделирован любой специализированный исполнитель: этим мы постоянно пользуемся на практике, когда работаем с программной поддержкой учебных исполнителей. Таким образом, компьютер — это универсальный исполнитель алгоритмов.

Курс информатики в старших классах

Стандарт не содержит прямого указания на необходимость повторения и углубления материала о программном принципе работы ЭВМ. Тем не менее, учитывая его важность, можно рекомендовать это сделать в рамках изучения темы “Аппаратное и программное обеспечение компьютера” (см. “Аппаратное и программное обеспечение”). Поскольку речь в ней обязательно пойдет о соотношении компонентов hard и soft, повторение принципов аппаратной основы выполнения программы видится вполне уместным. Более того, на новом уровне можно провести дискуссию о том, как в рамках основного алгоритма можно реализовать не только линейные задачи, но также разветвляющиеся или циклические. При наличии достаточного времени можно обсудить систему команд компьютера (см. “Машинная команда”).

Интересным мировоззренческим вопросом является исполнение команды “Останов”. Стоит объяснить ученикам, что в самых первых ЭВМ такая команда действительно завершала вычисления, после чего машина прекращала работу и ждала действий человека-оператора. Но позднее, когда задачи в машинах стали выполняться под руководством управляющих программ, окончание очередной задачи приводило к передаче управления программам-администраторам более высокого уровня; первоначально их называли мониторами, или супервизорами, сейчас этим занимается хорошо известная любому грамотному пользователю операционная система (см. “Операционная система”).

Читайте также:
Пример устава программы проектов

10 Изучение основ информатики и вычислительной техники: Методическое пособие для учителей и преподавателей средних учебных заведений. В 2 ч. Ч. 2 / А.П. Ершов, В.М. Монахов, М.В. Витиньш и др.

М.: Просвещение, 1986, 207 с. (см. § 2 “Основной алгоритм работы процессора”).

Источник: xn—-7sbbfb7a7aej.xn--p1ai

Этапы выполнения программы

На рис. 4 приведена схема основных этапов выполнения программ.

Разберем процесс выполнения программ.

Как пишутся программы?

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

Инструментами программиста являются программы. Именно с помощью программ создаются новые программы. А как создавали эти инструментальные программы? Ответ очевиден — с помощью других инструментальных программ, хотя и более примитивных.

Когда рабочий собирает мотоцикл на заводе, вряд ли ему придет в голову собственноручно выковать болт и нарезать на нем резьбу. Он сделает проще. Протянув руку, он достанет из ящичка такой болт, какой надо. Если понадобится другой болт, он достанет его из другого ящичка. Считайте, что стеллаж с ящичками, в которых лежат заготовленные стандартные узлы и детали, это и есть библиотека.

Опр. 19. Программу на языке программирования записывают в обычном текстовом редакторе и получают текстовый файл, который называется исходным модулем.

Исходный модуль хранится на внешнем устройстве ЭВМ в виде файла.

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

Рис. 4. Этапы выполнения программы.

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

Трансляторы — это программы-переводчики, выполняющие перевод с языка программирования на язык машинного кода. Существует два основных вида трансляторов: компилятор и интерпретатор.

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

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

Опр. 22. Объектный модуль — исходный модуль, переведенный транслятором на язык машинных кодов.

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

Опр. 23. Системные библиотеки — объектные модули соответствующего языка, хранящие в себе различные команды: обращение к другим объектным модулям, вычисления математических функций, операции ввода-вывода данных и т.д.

Опр. 24. Компоновщик или редактор связей — системная программа, которая объединяет несколько объектных модулей в один, подключает к объектному модулю все необходимые системные библиотеки и результатом своей работы имеет модуль, готовый для непосредственного выполнения ЭВМ после загрузки его в оперативную память.

Опр. 25. Загрузочный модуль (результат работы компоновщика) — это объектный модуль с подключенными к нему системными библиотеками. Только загрузочный модуль может быть выполнен ЭВМ.

Опр. 26 Отладчик — системная программа, управляющая ходом выполнения программы.

Источник: studopedia.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru