Понятие о системе программирования. Трансляция программ.
Система программирования – это часть программного обеспе-
чения, с помощью которой разрабатываются все остальные программы.
Система программирования состоит из:
• редактора для ввода текста программы на языке про-
граммирования
• транслятора с этого языка
• библиотеки подпрограмм
• компоновщика
• отладчика.
Человек пишет программу на языке программирования, но так как
программы, которые может выполнять процессор, должны быть написа-
ны на языке машинных команд, то программа, записанная на языке вы-
сокого уровня, должна быть сначала переведена (транслирована) на язык
машинных команд. Процесс перевода называется трансляцией, а про-
грамма, которая осуществляет этот перевод, называется транслятором.
Рис. 2 Трансляция программ
В результате трансляции каждой команде языка программирования
высокого уровня ставится в соответствие несколько машинных команд, а
каждой команде языка программирования низкого уровня – одна ма-
шинная команда. Соответственно различают три вида трансляторов:
интерпретаторы, компиляторы, ассемблеры. Ассемблер, как особый вид
иногда не выделяется, т.к. является частным случаем компилятора.
Разница между интерпретатором и компилятором аналогична раз-
нице между переводчиком устной и письменной речи. Переводчик
письменной речи сначала переводит весь текст на другой язык и потом
исходный текст нам уже не нужен, т.е. мы пользуемся только переводом.
Соответственно компилятор полностью переводит весь исходный текст
программы на язык машинных команд, и затем полученный модуль ис-
пользуется без участия компилятора. Интерпретатор переводит на язык
машинных команд отдельный оператор и этот оператор сразу выполня-
ется. Затем переводится следующий оператор – выполняется и т.д., то
есть сколько раз программа выполняется, столько же раз она интерпре-
тируется. Очевидно, что при этом и исходный текст программы, и ин-
терпретатор должны находиться в оперативной памяти. В основном все
языки высокого уровня компилируются и лишь отдельные интепрети-
руются (Бейсик, Лого, ШАЯ).
Текст программы на языке высокого уровня называется исходным
модулем, а полученная в результате трансляции программа – объектным
модулем, т.е. схематически трансляцию можно представить в следую-
щем виде:
Компоновка
Объектные модули, полученные в результате трансляции, еще не
готовы для выполнения, т.к. содержат в себе как текст программы на
языке машинных команд, так и информацию о размещении этих команд
в оперативной памяти, а также о подключении других объектных моду-
лей. Затем объектные модули обрабатываются специальной программой
компоновщиком, при этом подключаются библиотечные объектные мо-
дули, и в результате компоновки получается один загрузочный модуль,
т.е. файл, готовый к выполнению в среде операционной системы (он
имеет расширение .exe). В современных средах программирования про-
цессы трансляции и компоновки обычно объединены и пользователь
непосредственно «не видит» объектных модулей.
Отладка
Отладчик позволяет произвести процесс поиска в программе оши-
бок, просмотреть значения отдельных переменных в любой момент вре-
мени (для этого в нужных местах программы предусматривают точки
останова) и управлять процессом отладки программы.