Content deleted Content added
Included information on three types of programming language processors Tags: Visual edit Disambiguation links added |
m Fixed list citations |
||
Line 12:
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|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 process occurs one-time 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>
* Compilation leads to faster run time when executing the program. Since code is translated before execution, its results are optimized and fast.
* Compilers are more ideal when protecting code from [[plagiarism]] and preventing the use of source code from an unauthorized party.
* Object code only needs to be created once when compiling source code.
There are clear disadvantages when translating high-level code with a compiler.<ref name=":2" />
[[File:Compiler scheme.png|thumb|This image represents the translation process through a compiler.]]
* Object code produced during compilation is specific to a machine's [[instruction set architecture]] (ISA). This results in object code that is dependent on a specific type of machine in order to run.
* The debugging stage of the development process cannot start until the program is fully compiled. Errors are only viewable after compilation.
* Any source code that is modified must be fully recompiled to be executed again.
Some notable programming languages that utilize compilers include:<ref>{{Cite web |title=Compiled versus interpreted languages |url=https://www.ibm.com/docs/en/zos-basic-skills?topic=zos-compiled-versus-interpreted-languages |access-date=2024-03-15 |website=www.ibm.com |language=en-us}}</ref>
* [[C (programming language)|C]]
Line 33:
* [[PL/I]]
* [[Java (programming language)|Java]]
* [[Rexx|REXX]]
=== Interpreters ===
Line 44:
* The development and debugging process is typically quicker due to less complexity and it has more flexibility.<ref name=":2" />
There are clear disadvantages when translating high-level code with an interpreter.<ref name=":2" />
* Programs require that an interpreter is installed on the machine in order to run and interpret it.
* The execution time of the program is slower than a compiler.
Some notable programming languages that utilize interpreters include:<ref name=":0" />
* [[Python (programming language)|Python]]
* [[JavaScript]]
* [[Perl]]
* [[Ruby (programming language)|Ruby]]
=== Assemblers ===
Line 63:
Commonly used assemblers include:
* [[X86 assembly language|x86 assembly languages]] (used in intel and AMD processors)<ref name=":4" />
* [[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" />
* [[PowerPC]] assembly language<ref name=":4" />
* [[LC-3]] assembly language (used primarily in education and to program LC-3 computer) <ref name=":3" />
|