

Compilers often come as a package with other tools, and each processor manufacturer will have at least one compiler or a package of software development tools (that includes a compiler). Choosing a compiler then, means that first you need to know the ISA, operating system, and the programming language that you plan to use. Source-to-source compilers translate one program, or code, to another of a different language (e.g., from Java to C).
EASY TRANSLATOR CODING ROOT KIT CODE
A cross-compiler, however, can generate code for a platform other than the one it runs on itself.Ī cross-compiler running on a Windows machine, for instance, could generate code that runs on a specific Windows operating system or a Linux (operating system) platform.

That is, a compiler can convert C++, for example, to machine code that’s targeted at a platform that is running the Linux OS. For example, you cannot compile code for an x86 and run it on a MIPS architecture without a special compiler. A compiler creates machine code that runs on a processor with a specific Instruction Set Architecture (ISA), which is processor-dependent. Compilers can take a while, because they have to translate high-level code to lower-level machine language all at once and then save the executable object code to memory. If you don’t know what the tool actually does other than that it accomplishes some level of code conversion to a specific target language, then you can safely call it a translator.Ĭompilers convert high-level language code to machine (object) code in one session. The most general term for a software code converting tool is “translator.” A translator, in software programming terms, is a generic term that could refer to a compiler, assembler, or interpreter anything that converts higher level code into another high-level code (e.g., Basic, C++, Fortran, Java) or lower-level (i.e., a language that the processor can understand), such as assembly language or machine code. It’s important to note that all translators, compilers, interpreters and assemblers are programs themselves. Examples of CPUs include those made by Intel (e.g., x86), AMD (e.g., Athlon APU), NXP (e.g., PowerPC), and many others. All of the above work in some way towards getting a high-level programming language translated into machine code that the central processing unit (CPU) can understand. Translators, compilers, interpreters and assemblers are all software programming tools that convert code into another type of code, but each term has specific meaning.
