|Types of code|
|Notable compilers & toolchains|
A translator or programming language processor is a generic term that can refer to anything that converts code from one computer language into another. A program written in high-level language is called source program. These include translations between high-level and human-readable computer languages such as C++ and Java, intermediate-level languages such as Java bytecode, low-level languages such as the assembly language and machine code, and between similar levels of language on different computing platforms, as well as from any of the above to another.
The term is also used for translators between software implementations and hardware implementations (ASICs microchips) of the same program, and from software descriptions of a microchip to the logic gates needed to build it.
Different types of translators
There are 3 different types of translators as follows:
A compiler is a translator used to convert high-level programming language to low-level programming language. It converts the whole program in one session and reports errors detected after the conversion. The compiler takes time to do its work as it translates high-level code to lower-level code all at once and then saves it to memory. A compiler is processor-dependent and platform-dependent. It has been addressed by alternate names as the following: special compiler, cross-compiler and, source-to-source compiler.
The interpreter is similar to a compiler, as it is a translator used to convert high-level programming language to low-level programming language. The difference is that it converts the program one line of code at a time and reports errors when detected, while also doing the conversion. An interpreter is faster than a compiler as it immediately executes the code upon reading the code. It is often used as a debugging tool for software development as it can execute a single line of code at a time. An interpreter is also more portable than a compiler as it is processor-independent, you can work between different hardware architectures.
An assembler is a translator used to translate assembly language into machine language. It has the same function as a compiler for the assembly language but works like an interpreter. Assembly language is difficult to understand as it is a low-level programming language. An assembler translates a low-level language, such as an assembly language to an even lower-level language, such as the machine code.
- Binary translator (binary-to-binary, typically code)
- Assembly language translator (low-level source-to-source, code)
- Source-to-source translator (high-level source-to-source, code)
- Rewriter (source-to-source, typically code)
- File converter (binary-to-binary, typically data)
- Transcoder (binary-to-binary, data)
- Thornton, Scott (2017-02-17). "What are compilers, translators, interpreters, and assemblers?". MicrocontrollerTips. Archived from the original on 2019-07-19. Retrieved 2020-02-02.
- "Translators And Utilities For Program Development". Software Handbook (PDF). Intel Corporation. 1984 . p. 3-1. 230786-001. Archived (PDF) from the original on 2020-01-29. Retrieved 2020-01-29.
- Schuerer, Katja; Letondal, Catherine; Deveaud, Eric (2008-02-04) [2003-01-06]. "Chapter 5. Program execution, Section 5.2. Interpreter and Compiler". Introduction to Programming using Python - Programming Course for Biologists at the Pasteur Institute. pasteur.fr. Pasteur Institute. pp. 37–40. Archived from the original on 2015-11-11. Retrieved 2015-01-07. 
- Calingaert, Peter (1979) [1978-11-05]. Written at University of North Carolina at Chapel Hill. Horowitz, Ellis (ed.). Assemblers, Compilers, and Program Translation. Computer software engineering series (1st printing, 1st ed.). Potomac, Maryland, USA: Computer Science Press, Inc. ISBN 0-914894-23-4. ISSN 0888-2088. LCCN 78-21905. Archived from the original on 2020-03-20. Retrieved 2020-03-20. (2+xiv+270+6 pages)
- Pring-Mill, David (2018-03-04). "Why Hasn't AI Mastered Language Translation?". Singularity Hub. Singularity University. Archived from the original on 2019-12-29. Retrieved 2020-02-02.
- Edwards, Stephen A. (Fall 2013). "Language processors" (PDF). Columbia University. Archived (PDF) from the original on 2019-06-24. Retrieved 2020-02-02.
- Tucker, Allen; Belford, Geneva G. "Computer science". Encyclopædia Britannica. Archived from the original on 2019-07-23. Retrieved 2020-02-02.