 |
|
| |
|
 |
 |
at Global Oneness Community.
Share your dreams and let others help you with the interpretation!
Dream Sharing Forum
|
 |
Compiler - Types of compilers |  | Compiler - Types of compilers: Encyclopedia II - Compiler - Types of compilers |  |
Compiler - Native versus cross compiler.
Most compilers are classified as either native compilers or cross compilers.
A compiler may produce binary output intended to run on the same type of computer and operating system ("platform") as the compiler itself runs on. This is sometimes called a native-code compiler. Alternatively, it might produce binary output designed to run on a different platform. This is known as a cross compiler. Cross compilers are very useful when bringing up a new hardware platform f ...
See also:Compiler, Compiler - History, Compiler - Types of compilers, Compiler - Native versus cross compiler, Compiler - One-pass versus multi-pass compilers, Compiler - Compiled versus interpreted languages, Compiler - Compiler design, Compiler - Compiler front end, Compiler - Compiler back end, Compiler - Notes |  | | Compiler, Compiler - Compiled versus interpreted languages, Compiler - Compiler back end, Compiler - Compiler design, Compiler - Compiler front end, Compiler - History, Compiler - Native versus cross compiler, Compiler - Notes, Compiler - One-pass versus multi-pass compilers, Compiler - Types of compilers, Loop nest optimization, Compiler analysis, Assemblers, Compiler construction, Interpreter software, Abstract interpretation, Linkers, Top-down parsing, Bottom-up parsing, Attribute grammar, Semantics encoding, Error avalanche, Recompilation, Decompiler, Just-in-time compiler, Meta-Compilation, Preprocessor, Parallel compilers, Important publications in compilers for programming languages, Hardware compilation |  | |
|  |  | Compiler: Encyclopedia II - Compiler - Types of compilers
Compiler - Types of compilers
Compiler - Native versus cross compiler
Most compilers are classified as either native compilers or cross compilers.
A compiler may produce binary output intended to run on the same type of computer and operating system ("platform") as the compiler itself runs on. This is sometimes called a native-code compiler. Alternatively, it might produce binary output designed to run on a different platform. This is known as a cross compiler. Cross compilers are very useful when bringing up a new hardware platform for the first time (see bootstrapping). Cross compilers are also necessary when developing software for microcontroller systems that have barely enough storage for the final machine code, much less a compiler. Compilers which are capable of producing both native and foreign binary output may be called either a cross compiler or a native compiler depending on a specific use, although it would be more correct to classify them as a cross compilers.
Interpreters are never classified as native or cross compilers, because they do not output a binary representation of their input code.
Virtual machine (VM) compilers are typically not classified as either native or cross compilers. However, if need be, they can be classified as one or the other, especially in the less usual cases where a compiler is running inside the same VM (making it a native compiler), or where a compiler is capable of producing an output for several different platforms, including a VM (making it a cross compiler).
Compiler - One-pass versus multi-pass compilers
All compilers are either one-pass or multi-pass.
- One-pass compilers, like early compilers for the Pascal programming language.
- The compilation is done in one pass over the program source, hence the compilation is completed very quickly.
- Multi-pass compilers, like 2-pass compilers or 3-pass compilers
- The compilation is done step by step. Each step uses the result of the previous step and creates another intermediate result. This can improve final performance at the cost of compilation speed.
While the typical multi-pass compiler outputs machine code from its final pass, there are several other types:
- A "source-to-source compiler" is a type of compiler that takes a high level language as its input and outputs a high level language. For example, an automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations (e.g. OpenMP) or language constructs (e.g. Fortran's DOALL statements).
- Stage compiler that compiles to assembly language of a theoretical machine, like some Prolog implementations
- This Prolog machine is also known as the Warren Abstract Machine (or WAM). Byte-code compilers for Java, Python (and many more) are also a subtype of this.
- Just-in-time compiler, used by Smalltalk and Java systems, and also by Microsoft .Net's Common Intermediate Language (CIL)
- Applications are delivered in bytecode, which is compiled to native machine code just prior to execution.
Other related archives1950s, 1957, 1960, 1960s, 1962, 1970s, A-0, Abstract interpretation, Assemblers, Attribute grammar, Bottom-up parsing, COBOL, COM file, Code generation, Common Intermediate Language, Compiler optimization, Decompiler, EBNF, EXE, Error avalanche, FORTRAN, GCC, Grace Hopper, Graph, Hardware compilation, IBM, Important publications in compilers, Intel, Intermediate language, Intermediate representation, Interpreter software, John Backus, Just-in-time compiler, Lexical analysis, Linkers, Lisp, Loop nest optimization, MIT, Meta-Compilation, Microsoft, Multi-pass compilers, Niklaus Wirth, One-pass compilers, Open64, OpenMP, Optimization, P-Code, PL/0, Parallel compilers, Parsing, Pascal programming language, Preprocessor, Prolog, Python, Recursive descent parser, SGI, SNOBOL4, Semantic analysis, Semantics encoding, Sun Microsystems, Syntax analysis, Top-down parsing, Tree, Virtual machine, Warren Abstract Machine, assembly language, back end, basic block, bootstrapping, build utility, bytecode, call graph, cascaders, compiled languages, compiler optimization, complexity, computer language, computer program, computer science, constant propagation, control flow graph, cross compiler, dead code elimination, decompiler, dependence analysis, educational programming language, entry points, executable, external calls, finite state automaton, formal language, front end, high level language, identifier, inline expansion, interpreted languages, keyword, linked, loop transformation, machine code, machine language, microcontroller, object, object code, platform, programming languages, register allocation, regular expression, regular language, representation, source code, subroutine, symbol name, text file, transcompilers, use-define chain, virtual machine
 Adapted from the Wikipedia article "Types of compilers", under the G.N U Free Docmentation License. Please also see http://en.wikipedia.org/wiki |
|
|
More material related to Compiler can be found here:
|
|
« Back
|
Search the Global Oneness web site |
|
|
|
|
 |
Sneak-Peek of Global Oneness Community
Hi friend! The Global Oneness Community, the place for information and sharing about Oneness is not really launched yet (you will see there is still some clean up to do) ...but it is now open for a sneak-peek! And if you wish - please register and become one of the very first members to do so! Jonas
Forum Home,
Articles,
Photo Gallery,
Videos,
News,
Sitemap
...and much more!
|