Языковые процессоры: ассемблер, компилятор и интерпретатор
Языковые процессоры -
Язык ассемблера зависит от машины, но мнемоника, которая используется для представления в нем инструкций, не может быть непосредственно понятна машиной, а язык высокого уровня не зависит от машины. Компьютер понимает инструкции в машинном коде, то есть в форме нулей и единиц. Написание компьютерной программы непосредственно в машинном коде - утомительная задача. Программы написаны в основном на языках высокого уровня, таких как Java, C ++, Python и т. Д., И называются исходным кодом . Этот исходный код не может быть выполнен непосредственно компьютером и должен быть преобразован в машинный язык для выполнения. Следовательно, для перевода программы, написанной на языке высокого уровня в машинный код, используется специальное программное обеспечение системы трансляции, которое называется языковым процессором, а программа после преобразования в машинный код (объектная программа / объектный код).
Языковые процессоры могут быть любого из следующих трех типов:
- Компилятор -
Языковой процессор, который за один раз читает полную исходную программу, написанную на языке высокого уровня, и переводит ее в эквивалентную программу на машинном языке, называется компилятором.
Пример: C, C ++, C #, Java.В компиляторе исходный код успешно преобразуется в объектный код, если он не содержит ошибок. Компилятор указывает ошибки в конце компиляции с номерами строк, когда есть какие-либо ошибки в исходном коде. Ошибки должны быть устранены, прежде чем компилятор сможет снова успешно перекомпилировать исходный код.>
- Ассемблер -
Ассемблер используется для перевода программы, написанной на языке Ассемблер, в машинный код. Исходная программа - это вход ассемблера, который содержит инструкции на языке ассемблера. На выходе, сгенерированном ассемблером, является объектный код или машинный код, понятный компьютеру. - Устный переводчик -
Перевод отдельного оператора исходной программы в машинный код выполняется языковым процессором и выполняет его непосредственно перед переходом к следующей строке, называемой интерпретатором. Если в операторе есть ошибка, интерпретатор завершает свой процесс перевода на этом операторе и отображает сообщение об ошибке. Интерпретатор переходит к следующей строке для выполнения только после устранения ошибки. Интерпретатор напрямую выполняет инструкции, написанные на языке программирования или сценариях, без предварительного преобразования их в объектный код или машинный код.
Пример: Perl, Python и Matlab.
Разница между компилятором и интерпретатором -
Компилятор | Устный переводчик |
---|---|
Компилятор - это программа, которая превращает весь исходный код языка программирования в исполняемый машинный код для ЦП. | Интерпретатор берет исходную программу и запускает ее построчно, переводя каждую строку по мере ее поступления. |
Компилятору требуется много времени для анализа всего исходного кода, но общее время выполнения программы сравнительно меньше. | Интерпретатору требуется меньше времени для анализа исходного кода, но общее время выполнения программы меньше. |
Компилятор генерирует сообщение об ошибке только после сканирования всей программы, поэтому отладка сравнительно сложна, поскольку ошибка может присутствовать в любом месте программы. | Его отладка проще, поскольку он продолжает переводить программу до тех пор, пока не будет обнаружена ошибка. |
Создает промежуточный объектный код. | Промежуточный объектный код не создается. |
Примеры: C, C ++, Java. | Примеры: Python, Perl |