Електронний багатомовний

термінологічний словник

Electronic Multilingual Terminological Dictionary


Information technology

Compilation

In computer science, the compilation is the process of translation of one programming language into another one, often from middle or higher-level language to low-level machine code, with the aid of software called a compiler. Compilation lies in the foundation of programming principles as other programming languages emerged as a higher-level (more abstract, rich and readable) alternative to machine code. [1, 39-108] The first compiled language was Fortran, developed by IBM, to introduce programming as a mathematician tool to wide audience.
Aside from compilation to machine code, there is also compilation to intermediate representation, notably used by Java Virtual Machine (Java bytecode) and Low Level Virtual Machine (LLVM bitcode). The main implementation of the Java programming language was aimed at executable portability, hence applications written in it do not compile into machine code but in Java bytecode that can be executed anywhere JVM is present, often just-in-time compiling them into machine code for greater efficiency. Aside from these two forms of compilation, there’s one more way to implement a programming language: interpretation utilizing a special program (interpreter) that reads source code line-by-line and executes it.
Languages that compile to machine code are C, C++, Rust, Fortran, Swift, Go, Haskell. Just-in-time languages that use an IR are Java, Kotlin, Groovy, Clojure, Smalltalk. Interpreted languages are Python, Ruby, Lua.
Compilation is achieved by dividing the source code into the flow of language’s tokens that are parsed into syntax tree and validated if they make sense. If they do not, compiler throws the error, otherwise it proceeds to generate machine code or bytecode that are ready to run. [2, Chapter 3]

Sources:

A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman. (2007). Compilers: principles, techniques, & tools. Boston: Pearson/Addison Wesley.

T. Lindholm, F. Yellin, G. Bracha, A. Buckley. (2011). The Java® Virtual Machine Specification. Java SE 7 Edition. Retrieved from: https://docs.oracle.com/javase/specs/jvms/se7/html/

Part of speech Noun
Countable/uncountable Countable
Type Abstract
Gender Neutral
Case Nominative