Программа поиска числа в массиве
Дополнительный материал к главе II (§§ 8 - 21). Системы программирования
Дополнительный материал к главе II (§§ 8 - 21). Работа компилятора
Компьютерный практикум ЦОР. Одна задача обработки массива (Задание 1 - 6)
Компьютерный практикум ЦОР. Одна задача обработки массива (Задание 7 - 13)
При компиляции в память компьютера загружается програм- ма-компилятор. Она воспринимает текст программы на ЯПВУ как исходную информацию. Компилятор производит синтаксический контроль программы и при обнаружении ошибок выводит диагностические сообщения. Если ошибок нет, то результатом компиляции является программа на языке машинных команд.
Затем компилятор удаляется из оперативной памяти. В памяти остается только программа на ЯМК, которая выполняется для получения результатов.
На рисунке 2.19 схематически показан процесс выполнения программы на ЯПВУ с использованием компиляции. Прямоугольниками изображены программы в машинных кодах, овалами — обрабатываемая и конечная информация.
Конечно, компиляция с автокода (ассемблера) много проще, чем с языков высокого уровня. Для этой процедуры часто применяют специальный термин — ассемблирование. А под словом «ассемблер» понимается не только язык программирования, но и транслятор с него.
Интерпретатор в течение всего времени работы программы находится во внутренней памяти (иногда для этого используется ПЗУ). В ОЗУ помещается программа на ЯПВУ. Интерпретатор «читает» ее первый оператор, переводит его в машинные команды и тут же организует выполнение этих команд. Затем переходит к переводу и выполнению следующего оператора, и так до конца программы. При этом результаты предыдущих переводов в памяти не сохраняются. При повторном выполнении одного и того же оператора в цикле он снова будет транслироваться. Перед трансляцией каждого оператора происходит его синтаксический анализ.
На рисунке 2.20 схематически показан процесс выполнения программы на ЯПВУ с использованием интерпретатора.
Таким образом, при компиляции трансляция и исполнение программы идут последовательно друг за другом. При интерпретации — параллельно.
Один раз откомпилированная программа может быть сохранена во внешней памяти и затем многократно выполнена. На компиляцию машинное время тратиться больше не будет. Программа на интерпретируемом языке при каждом выполнении подвергается повторной трансляции. Кроме того, интерпретатор может занимать значительное место в оперативной памяти.
Из-за указанных причин использование компиляторов удобнее для больших программ, требующих быстрого счета и большого объема памяти. Программы на Паскале, Си, Фортране всегда компилируются. Язык Бейсик часто реализуется через интерпретатор.
Для разработки программ программисты используют системы программирования (СП).
Язык программирования, с которым позволяет работать данная СП, называется ее входным языком.
Язык процессора компьютера — это язык машинных команд — ЯМК.
Уровень языка программирования определяется степенью его удаленности от ЯМК (чем дальше, тем выше уровень).
Автокод (ассемблер) — это машинно-ориентированный язык символического программирования.
Наиболее удобным средством программирования являются языки высокого уровня (ЯПВУ). Сегодня с ними работает большинство программистов.
Трансляция — это процесс перевода текста программы на язык машинных команд. Программа-переводчик называется транслятором.
Существуют два способа трансляции: компиляция и интерпретация. При компиляции сначала весь текст программы переводится на ЯМК, затем производится ее исполнение. При интерпретации перевод и исполнение происходят параллельно.
1. Что такое язык программирования?
2. Что обозначает понятие «уровень языка программирования»?
3. К какому уровню относятся языки типа автокод (ассемблер)?
4. Почему языки программирования высокого уровня называют машинно-независимыми языками?
5. Какие из языков программирования высокого уровня вы знаете?
6. Что такое трансляция? Что такое транслятор?
7. В чем различие между компиляцией и интерпретацией?
Следующая страница Компьютерный практикум ЦОР. Одна задача обработки массива (Задание 1 - 6)