Компилируемый язык программирования

24.03.2021

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

Классификация языков программирования на компилируемые и интерпретируемые является неточной и весьма условной, поскольку для любого языка программирования может быть создан как компилятор, так и интерпретатор. И, в действительности, существует множество языков, инструментарий которых включает в себя и компилятор, и интерпретатор (напр. Ch и CINT для C или Lisp). Кроме того, существуют реализации языков, которые компилируют исходный текст программы в байт-код, который затем либо интерпретируется, либо выполняется т. н. JIT-компилятором (или виртуальной машиной). Это привносит ещё больше неясности в вопрос о том, где именно должна быть проведена граница между компилируемым языком и языком интерпретируемым.

Языки программирования принято разделять на компилируемые и интерпретируемые в силу типичных различий:

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

Применение

Компилируемые языки обычно позволяют получить более быструю и, возможно, более компактную программу, и поэтому применяются для создания часто используемых программ.

Компилируемые языки программирования

Следующие языки принято считать компилируемыми:

  • Ada
  • ALGOL
    • Algol 60
    • Algol 68
    • SMALL
  • Asm
  • BASIC (создавался как компилируемый, но многие реализации являются интерпретируемыми)
  • C
    • C++
    • Objective-C
  • CLEO
  • COBOL
  • Common Lisp
  • D
  • Delphi
  • Haskell
  • Eiffel
    • Sather
    • Ubercode
  • Fortran
  • Go
  • JOVIAL
  • LabVIEW
  • Lush
  • ML
    • Standard ML
      • Alice
    • Ocaml
  • Pascal
  • PureBasic
  • Rust
  • Swift
  • Visual Basic 1-6
  • Visual Foxpro
  • Visual Prolog

Языки компилируемые в байт-код

  • Java
    • Scala
    • Kotlin
    • Groovy
    • Clojure
    • Jython
  • .NET
    • C#
    • Visual Basic
    • F#
    • Cobra
  • Erlang

Языки компилируемые в другой язык программирования (Транспайлер)

  • Haxe, kPHP (транслируется в языки: C++, ActionScript, Lua, Python и др.)