Главная » 2009 » Ноябрь » 23 » Понятие трансляции программ. Компилятор. Интерпретатор. Обработка программ
19:21
Понятие трансляции программ. Компилятор. Интерпретатор. Обработка программ
Программа, написанная на машинном языке (или, как говорят, в машинных кодах), содержит минимум избыточной информации, на основе которой можно было бы обнаружить формальные ошибки кодирования. Однако в этом случае даже ошибки при набивке приводили к обескураживающим результатам во время выполнения программы и требовались значительные усилия и время для обнаружения таких ошибок. Эти недостатки и послужили стимулом для создания языков программирования высокого уровня. Программист пишет программу на языке высокого уровня, удобном для человека. Эффективность написания программы при этом существенно возрастает, так как алгоритм описывается в четкой и понятной последовательности действий. Однако эта программа не понятна реальной машине, которая воспринимает только программу в виде детального перечня команд на машинном языке. В этой ситуации у нас две машины: машина А, создание которой экономически оправдано, но которая не удобна в использовании, и машина В, которая вполне согласуется с человеческими нуждами, но существует только на бумаге. Роль моста между этими машинами играет так называемое программное обеспечение (сама машина при этом называется аппаратным или техническим обеспечением). В системе программного обеспечения есть программа С для реально существующей машины А, которая дает возможность машине А переводить (транслировать) программы, написанные для гипотетической машины В, в ее собственные программы. Программа С называется транслятором; она позволяет машине А выступать в роли идеализированной машины В. Применение транслятора С, таким образом, освобождает программиста от необходимости рассматривать частные характеристики машины А, которую не надо знать во всех подробностях. Но транслятор не освобождает программиста от обязанности постоянно учитывать тот факт, что в конечном итоге именно машина А будет выполнять его программу и что она имеет определенные ограничения, вытекающие из ограниченности ее скорости и памяти. В зависимости от функционального назначения транслятор может быть компилятором или интерпретатором. Компилятор — это программа, обеспечивающая перевод с алгоритмического языка высокого уровня на машинный без одновременного выполнения получаемой программы. Интерпретатор — это программа, обеспечивающая перевод с алгоритмического языка высокого уровня на машинный с одновременным выполнением операторов программы. Обработка программ на проблемно-ориентированном языке чаще всего проводится в два этапа, которые следуют друг за другом. На первом этапе (шаг трансляции) исходная программа на входном языке высокого уровня транслируется с помощью соответствующей программы-транслятора в машинную форму и редактируется (шаг редактирования) с помощью программы-редактора. На втором этапе (шаг выполнения) полученная машинная программа выполняется, т. е. проводится обработка исходных данных и получаются искомые результаты. Таким образом, для алгоритмических проблемно-ориентированных языков высокого уровня осуществляется автоматизация процесса программирования, т. е. наиболее трудоемкий процесс написания программы в машинных кодах поручается ЭВМ. Одновременно с этим ЭВМ осуществляет и обнаружение ошибок в программе, т. е. автоматизируется также процесс отладки программы.