Compilers
Compilers
Compilers
History of Compilers: The history of compilers dates back to the early days of
computing, and it has been marked by several key milestones:
In the early days of computing, programming was done using machine code,
which consisted of binary instructions directly understandable by the
computer's hardware.
Assembly languages were introduced as a step up from raw machine code.
Assembly languages used symbolic mnemonics to represent machine code
instructions, making it somewhat easier for programmers to write and
understand code.
Programmers had to write code manually for specific computer architectures,
which was time-consuming and error-prone.
The need for more efficient and accessible programming led to the
development of high-level programming languages like Fortran (1957) and
LISP (1958).
Fortran, designed by John Backus and his team at IBM, was one of the first
high-level languages. It was created to make scientific and engineering
calculations more accessible.
LISP, developed by John McCarthy, was designed for symbolic computing and
artificial intelligence research.
JIT compilers, which translate code into machine code at runtime, gained
prominence with languages like Java and .NET. These compilers allow for
platform independence and runtime optimization.
Dynamic compilation techniques, such as adaptive optimization, became more
prevalent, enabling programs to adapt to changing runtime conditions.
Working of compiler
The working of a compiler is a complex process that involves several stages, each of
which contributes to the transformation of high-level programming code into
machine code or assembly language that can be executed by a computer. Here is an
elaboration of the working of compilers:
Compilers can be categorized into different types based on their functionality, target
platform, and usage. Here are some common types of compilers:
These are some of the common types of compilers, each serving different purposes
and having its own set of features and optimizations. The choice of compiler type
depends on the programming language, target platform, and specific requirements
of the development process.