Зачем переводчику компьютер?
Обновлено: 21.11.2024
Переводчик — это процессор языка программирования, который изменяет компьютерную программу с одного языка на другой. Он берет программу, написанную в исходной программе, и модифицирует ее в машинную программу. Он может найти и обнаружить ошибку во время перевода.
Существуют различные типы переводчиков:
Компилятор. Компилятор — это программа, которая переводит язык высокого уровня (например, C, C++ и Java) в язык низкого уровня (объектная программа или машинная программа). Компилятор преобразует язык высокого уровня в язык низкого уровня, используя различные фазы. Поток символов, введенный заказчиком, проходит несколько этапов компиляции, которые, наконец, обеспечивают целевой язык.
Препроцессор. Препроцессор — это программа, которая обрабатывает исходный код перед его прохождением через компилятор. Он может работать под управлением так называемых командных строк или директив препроцессора.
Ассемблер — ассемблер — это переводчик, который переводит программу на языке ассемблера в эквивалентную программу на машинном языке компьютера. Ассемблер обеспечивает более понятное представление, чем компьютерные 0 и 1, что упрощает написание и чтение программ.
Ассемблер читает один исходный документ на языке ассемблера и создает объектный документ, включающий машинные инструкции и бухгалтерские данные, который поддерживает объединение различных объектных файлов в программу.
Интерпретатор. Интерпретатор – это программа, которая выполняет программный код напрямую, а не только переводит его в другой формат. Он переводит и выполняет операторы языка программирования один за другим.
Макросы. Многие языки ассемблера поддерживают функцию «макро», с помощью которой оператор макроса преобразуется в последовательность операторов языка ассемблера и, возможно, в другие операторы макроса перед переводом в машинный код. Таким образом, макрос позволяет эффективно заменять текст.
Компоновщик — компоновщик — это компьютерная программа, которая соединяет и объединяет несколько объектных файлов для создания исполняемого файла. Все эти файлы могли быть скомпилированы отдельным ассемблером. Функция компоновщика состоит в том, чтобы проверять и находить модули/программы, на которые ссылаются, в программе, а также определять место в памяти, куда эти коды будут загружены, создавая абсолютную ссылку на инструкцию программы.
Загрузчик — загрузчик является элементом операционной системы и отвечает за загрузку исполняемых файлов в память и их реализацию. Он может вычислить размер программы (инструкции и данные) и выделить для нее место в памяти. Он может инициализировать несколько регистров, чтобы начать выполнение.
Он создает новое адресное пространство для программы. Это адресное пространство огромно, чтобы воздействовать на сегменты текста и данных, а также на сегмент стека. Он может повторять инструкции и данные из исполняемого файла в новое адресное пространство.
48 модулей, охватывающих ВСЕ темы компьютерных наук, необходимые для уровня KS3.
Выпускной экзамен по информатике
45 модулей, охватывающих ВСЕ темы информатики, необходимые для уровня GCSE.
Информатика уровня A
66 модулей, охватывающих ВСЕ темы компьютерных наук, необходимые для A-Level.
Ресурсы для переводчиков KS3 (14–16 лет)
- Редактируемая презентация урока PowerPoint
- Редактируемые раздаточные материалы
- Глоссарий, охватывающий основные термины модуля.
- Тематические карты памяти для визуализации ключевых понятий
- Распечатанные карточки, которые помогут учащимся активно вспоминать и уверенно повторять.
- Викторина с прилагаемым ключом к ответу для проверки знаний и понимания модуля.
Ресурсы для переводчиков уровня A (16–18 лет)
- Редактируемая презентация урока PowerPoint
- Редактируемые раздаточные материалы
- Глоссарий, охватывающий основные термины модуля.
- Тематические карты памяти для визуализации ключевых понятий
- Распечатанные карточки, которые помогут учащимся активно вспоминать и уверенно повторять.
- Викторина с прилагаемым ключом к ответу для проверки знаний и понимания модуля.
Переводчик – это процессор языка программирования, который преобразует компьютерную программу с одного языка на другой. Он берет программу, написанную в исходном коде, и преобразует ее в машинный код. Он обнаруживает и идентифицирует ошибку во время перевода.
Цель переводчика
Он переводит программу на языке высокого уровня в программу на машинном языке, которую может понять центральный процессор (ЦП). Он также обнаруживает ошибки в программе.
Разные типы переводчиков
Существует 3 различных типа переводчиков:
Компилятор
Компилятор — это транслятор, используемый для преобразования языка программирования высокого уровня в язык программирования низкого уровня.Он преобразует всю программу за один сеанс и сообщает об ошибках, обнаруженных после преобразования. Компилятору требуется время, чтобы выполнить свою работу, так как он одновременно транслирует код высокого уровня в код более низкого уровня, а затем сохраняет его в памяти.
Компилятор зависит от процессора и платформы. Но это решается специальным компилятором, кросс-компилятором и компилятором исходного кода. Прежде чем выбрать компилятор, пользователь должен сначала определить архитектуру набора инструкций (ISA), операционную систему (ОС) и язык программирования, который будет использоваться, чтобы обеспечить его совместимость.
Переводчик
Как и компилятор, это транслятор, используемый для преобразования языка программирования высокого уровня в язык программирования низкого уровня. Он конвертирует программы по одной и сообщает об ошибках, обнаруженных сразу во время конвертации. При этом обнаружить ошибки проще, чем в компиляторе. Интерпретатор работает быстрее, чем компилятор, поскольку он сразу же выполняет код после его чтения.
Он часто используется в качестве инструмента отладки при разработке программного обеспечения, поскольку может выполнять одну строку кода за раз. Интерпретатор также более переносим, чем компилятор, поскольку он не зависит от процессора, и вы можете работать между аппаратными архитектурами.
Ассемблер
Ассемблер — это переводчик, используемый для перевода языка ассемблера в машинный язык. Это как компилятор для языка ассемблера, но интерактивный, как интерпретатор. Язык ассемблера сложен для понимания, так как это язык программирования низкого уровня. Ассемблер переводит язык низкого уровня, язык ассемблера, в язык еще более низкого уровня, который является машинным кодом. Машинный код может быть напрямую понят ЦП.
Примеры переводчиков
Вот несколько примеров переводчиков по типам:
Переводчик | Примеры |
---|---|
Компилятор | Microsoft Visual Studio< br />Коллекция компиляторов GNU (GCC) Общий бизнес-ориентированный язык (COBOL) |
Интерпретатор | OCaml Обработка списков ( LISP) Python |
Ассемблер | Программа сборки Fortran (FAP) Программа сборки макросов (MAP) Символический Программа оптимальной сборки (SOAP) |
Преимущества и недостатки переводчиков
Вот некоторые преимущества компилятора:
- Вся программа проверена на отсутствие системных ошибок.
- Исполняемый файл улучшен компилятором, поэтому он работает быстрее.
- Пользователю не обязательно запускать программу на том же компьютере, на котором она была создана.
Вот некоторые недостатки компилятора:
- Выполняется медленно, так как вам нужно завершить всю программу.
- Отладка непроста, так как ошибки отображаются в конце выполнения.
- Зависит от аппаратного обеспечения, работает на определенном машинном языке и архитектуре.
Вот некоторые преимущества интерпретатора:
- Вы обнаруживаете ошибки до того, как закончите программу, поэтому учитесь на своих ошибках.
- Программу можно запустить до ее завершения, поэтому вы сразу же получите частичные результаты.
- Вы можете работать над небольшими частями программы и позже связать их в целую программу.
Вот некоторые недостатки интерпретатора:
- В непроверенных сценариях возможны синтаксические ошибки.
- Программа не улучшена и может столкнуться с ошибками данных.
- Это может быть медленно из-за интерпретации при каждом выполнении.
Вот некоторые преимущества Ассемблера:
- Символическое программирование проще для понимания, что экономит время программиста.
- Легче исправлять ошибки и изменять инструкции программы.
- Эффективность выполнения такая же, как у машинного уровня.
Вот некоторые недостатки Ассемблера:
- Он зависит от машины и не может использоваться в другой архитектуре.
- Небольшое изменение в дизайне может свести на нет всю программу.
- Его сложно поддерживать.
Дополнительная литература:
Об этом сайте
Teach Computer Science предоставляет подробные и всесторонние учебные ресурсы для новой спецификации 9-1 GCSE, KS3 и A-Level. Одинаково подходит для иностранных преподавателей и студентов.
Более 5000 учителей подписались на использование наших материалов в своих классах.
Что мы предоставляем?
Вкратце: все, что вам нужно для обучения GCSE, KS3 и компьютерным наукам уровня A:
- Сжатые примечания к изменениям
- Буклеты с экзаменационными вопросами
Экзаменационные доски
Наши материалы охватывают требования как британских, так и международных экзаменационных комиссий:
Компьютеры — это электронные устройства, способные понимать только двоичный код машинного уровня (0/1 или вкл/выкл), и чрезвычайно сложно понять и написать программу на машинном языке, поэтому разработчики используют удобочитаемый код высокого уровня и Руководство по сборке. Чтобы восполнить этот пробел, используется транслятор, который преобразует инструкции высокого уровня в инструкции машинного уровня (0 и 1).
Переводчик – это процессор языка программирования, который преобразует высокоуровневую программу или программу на языке ассемблера в машиночитаемый низкоуровневый машинный язык без ущерба для функциональности кода. Если вы ищете языковой перевод с одного человеческого языка на другой, например французский перевод, ознакомьтесь с французским переводом
Почему компьютерный переводчик?
Компьютер понимает только машинный код. Он не может понять ни один язык низкого уровня, ассемблера или языка высокого уровня. Должна быть программа для преобразования исходного кода в объектный код, чтобы ваш компьютер мог его понять. Это работа языкового переводчика. Программист создает исходный код, а затем преобразует его в машиночитаемый формат (объектный код)
Назначение переводчика компьютерного языка
Основная цель переводчика – заставить машину понимать программу, написанную на языке низкого/ассемблера/высокого уровня.
Типы переводчиков компьютерного языка
- Компилятор
- Переводчик
- Ассемблер
Компилятор
Компилятор – это программа-переводчик языка, которая преобразует код, написанный на человекочитаемом языке, таком как язык высокого уровня, в компьютерный язык низкого уровня, например язык ассемблера, машинный код или объектный код, а затем создает исполняемую программу.
В процессе создания исполняемого файла компилятор проходит различные этапы, такие как лексический анализ, синтаксический анализ, семантический анализ, генерация промежуточного представления (IR), (промежуточное представление) IR-оптимизация, генерация кода и оптимизация. р>
Кратко,
В процессе компиляции первый код отправляется в лексер, который сканирует исходный код и разбивает его на токены, хранящиеся в памяти компьютера, и отправляет их в синтаксический анализатор, где распознаются шаблоны. и преобразуются в AST (абстрактное синтаксическое дерево), которое описывает структуру данных программы, представляющей затем оптимизатор (при необходимости), оптимизирующий удаление неиспользуемой переменной, недостижимого кода, откат, если это возможно, и т. д., затем генератор кода преобразует код, специфичный для машинных инструкций. на целевую платформу и компоновщик, объединяющий весь код в исполняемую программу. Кроме того, на всех этапах имеется обработчик ошибок, который обрабатывает ошибки и создает отчеты.
Некоторые распространенные компилируемые языки – C++, C
Характеристики компилятора
- Исходный код преобразуется в машинный код перед выполнением. Таким образом, выполнение кода во время выполнения выполняется быстрее.
- Для анализа и обработки программы требуется много времени. Процесс компиляции сложен.
- Но программа выполняется быстро
- Невозможно создать исполняемую программу, если в программе есть ошибка типа компиляции.
Преимущество компилятора
- Вся программа скомпилирована и кажется более безопасной, чем интерпретируемый код.
- Скомпилированный код работает быстрее.
- Программа может запускаться непосредственно из объектного кода и не требует исходного кода.
Недостаток компилятора
- Для создания исполняемого файла исходный код не должен содержать ошибок.
Переводчик
Интерпретатор преобразует язык высокого уровня в язык машинного уровня; компилятор делает то же самое, но по-другому. Во время выполнения исходный код в Interpreter преобразуется в машинный код. Однако перед запуском программы код преобразуется компилятором в машинный код, т. е. в исполняемый файл.
Программа-интерпретатор выполняется напрямую построчно, запуская исходный код. Таким образом, он берет исходный код, по одной строке за раз, переводит его и запускает процессор, затем переходит к следующей строке, переводит его и выполняет, и так повторяется до тех пор, пока программа не завершится.
Некоторые из популярных интерпретируемых языков: Php, Python, Javascript, Ruby
Характеристики переводчика
- Требуется меньше времени на преобразование в машинный код.
- В интерпретаторе нет этапа компиляции при генерации машинных инструкций.
- Программа выполняется медленнее, поскольку во время выполнения она преобразуется в машинный код.
- Легко отлаживать и находить ошибки.
Ассемблер
Assembler преобразует код, написанный на языке ассемблера, в код машинного уровня. Язык ассемблера содержит мнемоники машинных кодов операций, поэтому ассемблеры переводят мнемоники в прямые инструкции в соотношении 1:1.
Как мы знаем, компьютер понимает только машинный код, но разработчикам сложно программировать на машинном языке. Таким образом, низкоуровневый язык ассемблера (ASM) разработан для определенного семейства процессоров, которые представляют различные инструкции символьного кода.
Характеристики Ассемблера
- Поскольку между мнемоникой и прямой инструкцией существует отношение 1:1, перевод выполняется очень быстро.
- Требуется меньше памяти и времени выполнения.
- Он легко справляется со сложными аппаратными задачами.
- Он идеально подходит для срочной работы.
Разница между компилятором, интерпретатором и ассемблером
Выполняется быстро, так как перевод двух низкоуровневых языков зависит только от набора инструкций процессора.
Интерпретатор показывает только одну ошибку за раз, и если она решена, и снова после интерпретации кода показывает следующую ошибку, если она существует.
Проще отлаживать, так как программа продолжает переводиться до тех пор, пока ошибка не будет устранена. Показывать только одну ошибку за раз, и если она решена, то показывает следующую ошибку, если она существует.
Часто задаваемые вопросы
Ответ: Нет, языки ассемблера не переносимы, поскольку они привязаны к конкретной компьютерной архитектуре. Программа, написанная и разработанная на одном языке ассемблера, должна быть переписана для запуска на другом компьютере.
В случае с компилятором: когда программа успешно скомпилирована, создается файл объектного кода. Этот файл объектного кода теперь выполняется. Итак, если мы не изменим исходный код, перекомпиляция не потребуется. И напрямую выполнять из скомпилированного кода, который кажется более быстрым, потому что он близок к языку машинного уровня.
В случае с интерпретатором: каждый раз, когда мы хотим запустить программу, она интерпретируется снова и снова. Таким образом, во время выполнения на машинный язык переводится только код.
Ответ: компиляция происходит перед выполнением в процессе компиляции. Исходный код компилируется и создается исполняемый файл (например, .dll и .exe), и этот файл запускается во время выполнения. Компилятор взаимодействует с диспетчером памяти ОС для выполнения компиляции. Выполнение выполняется процессором во время выполнения программы.
- Внешний интерфейс
- Средний конец
- Верхняя часть
Ответ: У некоторых есть разные линкеры, а у некоторых нет. Компоновщик — это одна из важных частей компилятора, которая объединяет файлы объектного кода и статический файл и создает исполняемый файл.
8 Что такое общий промежуточный язык (CIL)?
Промежуточным языком в среде Java является байт-код.
9) Является ли Java компилируемым языком?
Ответ: Процесс компиляции Java состоит из двух этапов. Сначала исходный код преобразуется компилятором в байт-код, а во время выполнения этот байт-код проверяется верификатором байтов, и он решает, что может компилировать и/или интерпретировать байт-код с помощью Java Interpreter/JIT Compiler. (источник: StackOverflow)
10) Является ли языковой переводчик системным программным обеспечением?
Ответ: Системное программное обеспечение — это те типы программного обеспечения, которые предназначены для обеспечения платформы для другого программного обеспечения. Это программное обеспечение обеспечивает среду для работы и программирования, в которой пользователи взаимодействуют для создания прикладного программного обеспечения. Это включает в себя операционную систему, переводчик (языковой процессор), симуляторы, эмуляторы, служебное программное обеспечение и т. д. Таким образом, переводчики, такие как компиляторы, переводчики и интерпретаторы, являются системным программным обеспечением.
Программа, написанная на языке высокого уровня, называется исходным кодом. Чтобы преобразовать исходный код в машинный код, необходимы переводчики.
Переводчик берет программу, написанную на исходном языке, в качестве входных данных и преобразует ее в программу на целевом языке в качестве выходных данных.
Он также обнаруживает и сообщает об ошибке во время перевода.
• Преобразование ввода программы на языке высокого уровня в эквивалентную программу на машинном языке.
• Предоставление диагностических сообщений везде, где программист нарушает спецификацию программы на языке высокого уровня.
Разные типы переводчиков
Существуют следующие типы переводчиков:
Компилятор
Компилятор — это транслятор, который используется для преобразования программ на языке высокого уровня в язык низкого уровня. Он переводит всю программу, а также сообщает об ошибках в исходной программе, обнаруженных во время перевода.
Переводчик
Интерпретатор — это переводчик, который используется для преобразования программ на языке высокого уровня в язык низкого уровня. Интерпретатор переводит строку за строкой и сообщает об ошибке, обнаруженной в процессе перевода.
Он напрямую выполняет операции, указанные в исходной программе, когда пользователь вводит данные.
Он обеспечивает лучшую диагностику ошибок, чем компилятор.
Различия между компилятором и интерпретатором
Компилятор
Переводчик
1
Выполняет перевод программы в целом.
Выполняет перевод оператора за оператором.
2
Выполнение выполняется быстрее.
Выполнение медленнее.
3
Требуется больше памяти, так как требуется связывание для сгенерированного промежуточного объектного кода.
Память используется эффективно, так как не создается промежуточный объектный код.
4
Отладка сложна, так как сообщения об ошибках генерируются только после сканирования всей программы.
Он останавливает перевод при обнаружении первой ошибки. Следовательно, отладка проста.
Компьютеры понимают только машинный код (двоичный), это проблема, потому что вместо этого программисты предпочитают использовать различные языки программирования высокого и низкого уровня.
Чтобы обойти эту проблему, высокоуровневый и низкоуровневый программный код (исходный код) необходимо пройти через транслятор.
Переводчик преобразует исходный код в машинный код (объектный код).
Существует несколько типов программ-переводчиков, каждая из которых способна выполнять разные задачи.
Компилятор
Компиляторы используются для перевода программы, написанной на языке высокого уровня, в машинный код (объектный код).
После компиляции (все за один раз) переведенный программный файл может быть непосредственно использован компьютером и может выполняться независимо.
Компиляция может занять некоторое время, но переведенную программу можно использовать снова и снова без необходимости повторной компиляции.
Отчет об ошибке часто появляется после перевода всей программы. Ошибки в программном коде могут привести к сбою компьютера. Эти ошибки можно исправить только путем изменения исходного кода и повторной компиляции программы.
Переводчик
Программы-интерпретаторы могут читать, переводить и выполнять по одному оператору из программы на языке высокого уровня.
Интерпретатор останавливается, когда достигается строка кода, содержащая ошибку.
Интерпретаторы часто используются при разработке программы. Они упрощают отладку, поскольку каждая строка кода анализируется и проверяется перед выполнением.
Интерпретированные программы запускаются немедленно, но ваша программа может работать медленнее, чем скомпилированный файл.
Исполняемый файл не создается. Программа интерпретируется снова с нуля каждый раз, когда вы ее запускаете.
Ассемблер
Ассемблеры используются для перевода программы, написанной на языке ассемблера низкого уровня, в файл машинного кода (объектный код), чтобы его можно было использовать и выполнять на компьютере.
После сборки программный файл можно использовать снова и снова без повторной сборки.
Читайте также: