Компилируемый язык программирования
Компилируемый язык программирования — язык программирования, исходный код которого преобразуется компилятором в машинный код и записывается в файл с особым заголовком и/или расширением для последующей идентификации этого файла, как исполняемого операционной системой (в отличие от интерпретируемых языков программирования, чьи программы выполняются программой-интерпретатором).
Классификация языков программирования на компилируемые и интерпретируемые является неточной и весьма условной, поскольку для любого языка программирования может быть создан как компилятор, так и интерпретатор. И, в действительности, существует множество языков, инструментарий которых включает в себя и компилятор, и интерпретатор (напр. 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
- Standard ML
- 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 и др.)