◄◄ Select
the category
Compilers
A compiler is a computer program (or set of
programs) that translates text written in a computer language (the
source language) into another computer language (the target language).
The original sequence is usually called the source code and the output
called object code. Commonly the output has a form suitable for
processing by other programs (e.g., a linker), but it may be a human
readable text file.
The most common reason for wanting to translate source code is to
create an executable program. The name "compiler" is primarily used
for programs that translate source code from a high level language to
a lower level language (e.g., assembly language or machine language).
A program that translates from a low level language to a higher level
one is a decompiler. A program that translates between high-level
languages is usually called a language translator, source to source
translator, or language converter. A language rewriter is usually a
program that translates the form of expressions without a change of
language.
A compiler is likely to perform many or all of the following
operations: lexing, preprocessing, parsing, semantic analysis, code
optimizations, and code generation.
Emulators
A software emulator allows computer programs to run
on a platform (computer architecture and/or operating system) other
than the one for which they were originally written. Unlike
simulation, which only attempts to reproduce a program's behavior,
emulation attempts to model to various degrees the state of the device
being emulated. High-level emulation uses a combination of the two
approaches in an attempt to retain as much accuracy as possible while
having the advantages of simplicity and speed provided by simulation.
A hardware emulator is an emulator which takes the form of a hardware
device. Examples include printer emulators inside the ROM of the
printer, and FPGA-based emulators.
A popular use of emulators is to mimic the experience of running
arcade games or console games on personal computers. Emulating these
on modern desktop computers is usually less cumbersome and more
reliable than relying on the original machines, which are often old
and hard to find, let alone repair. Emulation of arcade and console
systems on home PCs usually includes the practice of illegally
downloading software from various electronic distribution sources.