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