осмелитесь утверждать, что смогли бы легче и быстрее обучиться программированию без того колоссального труда, который затрачен тысячами программистов на создание современного программного обеспечения. В этой опосредованно коллективной работе очень важно с точки зрения правильного использования программ, команд или данных научиться понимать смысл, вложенный в техническую документацию. Опыт показывает, что различие в понимании смысла спецификаций разработчиком и пользователем является источником наиболее трудно выявляемых ошибок, когда наличие ошибки очевидно, а локализовать ее не удается.
Любая программа (кроме программы, написанной в машинных кодах) может быть выполнена только при посредничестве других программ, делающих первую "понятной" компьютеру. Такие программы-посредники разрабатывались параллельно с созданием языков. Правильность перевода или толкования текста программы обеспечивается строгими правилами записи структур алгоритмических языков (синтаксис), обеспечивающими однозначность интерпретации содержания этого текста (вспомните общеизвестное "казнить нельзя помиловать" без запятой). Переводу текста программы на машинный язык и истолкованию текста программы на машинном языке соответствуют два метода:
КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ
Компилирующие программы осуществляют перевод текста на машинный язык. Программы, полученные в результате их работы, впоследствии загружаются в компьютер и выполняются. Работа компилирующих программ аналогична работе переводчика, создающего письменный перевод текста.
Интерпретирующие программы сами выполняют записанные в исходном тексте команды посредством имеющихся в их составе процедур, являющихся текстами на машинном языке. Хотя в результате их работы и не получается перевод текста на машинный язык, но результат работы программы получается сразу. Работа интерпретирующих программ аналогична работе переводчика, выполняющего устный перевод текста.
Существование различных видов программ-посредников для использования алгоритмических языков высокого уровня обусловлено тем, что каждый из них имеет свои достоинства и недостатки и свои области применения. С целью усиления достоинств двух методов и ослабления их недостатков зачастую используется гибридный вариант с трансляцией текста, написанного на алгоритмическом языке высокого уровня, на язык гипотетической (воображаемой) машины, который в свою очередь интерпретируется при исполнении программы.
Ознакомившись с путями и средствами преодоления "языкового барьера" между человеком и машиной, перейдем к некоторым существенным подробностям. Процесс программирования осуществляется субъектом (программистом) над объектом (программой) при помощи орудий труда (компьютера с программным обеспечением) по определенной технологии (последовательности действий) с использованием трудовых