Что такое программный компилятор?

Компилятор - это программа, которая преобразует код компьютерного программирования, написанный программистом-человеком, в двоичный код (машинный код), который может быть понят и исполнен конкретным процессором. Акт трансформации исходный код в машинный код называется «компиляция». Когда весь код преобразуется за один раз до того, как он достигает платформ, на которых он выполняется, этот процесс называется опережающей (AOT) компиляцией.

На каких языках программирования используется компилятор AOT?

Многие известные языки программирования требуют компилятора, включая:

  • Фортран
  • паскаль
  • Язык ассемблера
  • С
  • C ++
  • стриж

До Java и C # все компьютерные программы были скомпилированы или интерпретированы.

Как насчет интерпретированного кода?

Интерпретированный код выполняет инструкции в программе, не компилируя их в машинный язык. Интерпретированный код анализирует исходный код напрямую, в паре с виртуальной машиной, которая переводит код для машины во время выполнения, или использует преимущества предварительно скомпилированного кода. Javascript обычно интерпретируется.

instagram viewer

Скомпилированный код работает быстрее, чем интерпретируемый код, потому что ему не нужно выполнять какую-либо работу во время выполнения действия. Работа уже сделана.

На каких языках программирования используется JIT-компилятор?

Джава и C # использовать компиляторы точно в срок. Компиляторы Just-in-time представляют собой комбинацию компиляторов и интерпретаторов AOT. После написания Java-программы JIT-компилятор превращает код в байт-код, а не в код, содержащий инструкции для процессора конкретной аппаратной платформы. Байт-код не зависит от платформы и может быть отправлен и запущен на любой платформе, поддерживающей Java. В некотором смысле, программа составлена ​​в два этапа.

Точно так же C # использует JIT-компилятор, который является частью Common Language Runtime, который управляет выполнением всех приложений .NET. Каждая целевая платформа имеет JIT-компилятор. Пока платформа понимает промежуточное преобразование языка байт-кода, программа работает.

Плюсы и минусы компиляции AOT и JIT

Опережающая (AOT) компиляция обеспечивает более быстрое время запуска, особенно когда большая часть кода выполняется при запуске. Однако это требует больше памяти и больше дискового пространства. JOT-компиляция должна быть нацелена на наименее способную из всех возможных платформ выполнения.

Компиляция Just-in-time (JIT) профилирует целевую платформу, пока она работает, и перекомпилируется на лету для повышения производительности. JIT генерирует улучшенный код, поскольку он нацелен на текущую платформу, хотя обычно для его запуска требуется больше времени, чем для скомпилированного кода AOT.