Translator (computing): Difference between revisions

Content deleted Content added
m switched to a vector version of a diagram
m Compilers: Wording
 
(4 intermediate revisions by 4 users not shown)
Line 5:
{{Use dmy dates|date=February 2020|cs1-dates=y}}
 
A '''translator''' or '''programming language processor''' is a [[computer program]] that converts the programming instructions written in human convenient form into machine language codes that the computers understand and process. It is a generic term that can refer to a [[compiler]], [[assembler (computing)|assembler]], or [[interpreter (computing)|interpreter]]&mdash;anything that converts code from one computer language into another.<ref name="MCT"/><ref name="Intel_1983_SH"/> These include translations between [[high-level language|high-level]] and human-readable computer languages such as [[C++]] and [[Java (programming language)|Java]], intermediate-level languages such as [[Java bytecode]], [[low-level language]]s such as the [[assembly language]] and [[machine code]], and between similar levels of language on different [[computing platform]]s, as well as from any of these to any other of these.<ref name="MCT"/>

Software and hardware represent different levels of abstraction in computing. Software is typically written in high-level programming languages, which are easier for humans to understand and manipulate, while hardware implementations involve low-level descriptions of physical components and their interconnections. Translator computing facilitates the conversion between these abstraction levels.<ref>{{Cite web |last=Beaulieu |first=Adrien |date=2022 |title=A15. Front-End and Back-End Technologies: The Importance of Proficiency in Multiple Programming Languages |url=https://product.house/front-end-and-back-end-technologies-the-importance-of-proficiency-in-multiple-programming-languages/}}</ref> Overall, translator computing plays a crucial role in bridging the gap between software and hardware implementations, enabling developers to leverage the strengths of each platform and optimize performance, power efficiency, and other metrics according to the specific requirements of the application.<ref>{{Cite web |last=Pagadala |first=Santosh Kumar |date=2004 |title=Portable implementation of computer aided design environment for composite structures |url=https://researchrepository.wvu.edu/cgi/viewcontent.cgi?article=2455&context=etd}}</ref>
 
== Programming language processors ==
Line 11 ⟶ 13:
 
=== Compilers ===
Compiler software interacts with [[source code]] by converting it typically from a higher-level programming language into [[object code]] that can later be executed by the computer's [[central processing unit]] (CPU).<ref name=":1">{{Cite web |title=CSE 5317/4305: Design and Construction of Compilers |url=https://lambda.uta.edu/cse5317/notes/short.html |access-date=2024-03-15 |website=lambda.uta.edu}}</ref> The object code created by the compiler consists of [[Machine code|machine-readable code]] that the computer can process. This stage of the computing process is known as compilation. Utilizing a compiler leads to separation in the translation and execution process. After compilation, the new object code is saved separately from the source code resulting in the source code no longer being required for the execution process. With compiler programs, the translation processis occursa one-time process which results in efficient code that can be executed quickly for any number of times.<ref name=":1" />
 
There are clear benefits when translating high-level code with a compiler.<ref name=":2">{{Cite web |date=March 15, 2024 |title=Translator Types |url=https://adacomputerscience.org/concepts/trans_assembler_compiler_interpreter?examBoard=all&stage=all |access-date=March 15, 2024 |website=Ada Computer Science}}</ref>
Line 34 ⟶ 36:
* [[PL/I]]
* [[Java (programming language)|Java]]
* [[Rexx|REXX]]
 
=== Interpreters ===
Line 62 ⟶ 64:
Commonly used assemblers include:
 
* [[X86 assembly language|x86 assembly languages]] (used in Intel and AMD processors)<ref name=":4">{{Cite journal |last=Stokoe |first=William |date=May 6, 2024 |title=sign language structure |url=https://www.lenovo.com/us/en/glossary/assembly-language/ |access-date=2024-03-15 |journal=Annual Review of Anthropology |volume=9 |pages=365–390 |doi=10.1146/annurev.an.09.100180.002053 |language=English|url-access=subscription }}</ref>
* [[ARM Assembly Language Programming|ARM assembly language]] (used in mobile devices)<ref name=":4" />
* [[MIPS architecture|MIPS]] assembly language (used in gaming consoles)<ref name=":4" />
Line 91 ⟶ 93:
 
[[Category:Programming language implementation]]
 
 
{{software-type-stub}}