Compilers

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

COMPILERS

1. Introduction
A compiler is a software program that transforms high-level source code that is written by a developer from a highlevel programming language into a low level object code (binary code) in machine language, which can be
understood by the processor. The process of converting high-level programming into machine language is known as
compilation. The most common reason for converting source code is to create an executable program.
The name "compiler" is primarily used for programs that translate source code from a high-level programming
language to a lower level language (e.g., assembly language or machine code). If the compiled program can run on a
computer whose CPU or operating system is different from the one on which the compiler runs, the compiler is
known as a cross-compiler. More generally, compilers are a specific type of translator. In particular, a compiler can
be self-hosted that is, written in the programming language it compiles. Building a self-hosting compiler is a
bootstrapping problem, i.e. the first such compiler for a language must be either hand written machine code or
compiled by a compiler written in another language, or compiled by running the compiler in an interpreter [1].
In this survey we surveyed different C compilers and found out that mainly the compilers are being classified on the
following category:
1) Operating System on which it is running (i.e. UNIX, Windows, Mac, Rasberry Pi, etc.)
2) License Type (i.e. Free, Proprietary or GPL)
3) Integrated Development Environment [2]

2. Related Work
After the discovery of first compiler in 1952 by Grace Hopper, world has never looked back. 2 decades succeeding
1950s were the year of revolution when in 1957 a complete compiler was introduced by the FORTRAN team led
by John W. Backus[4] at IBM. It then took no time for others also to launch their compilers like ALGOL 58 compiler
(in 1958), ALTAC (in 1960) and FLOW MATIC (in 1960) by the team of Grace Hopper.
There are many compilers that have been developed over years but very few of them are cost effective as well as
efficient. Few of them are listed below in this section:(1)Borland Turbo C[2]- Turbo C is an Integrated Development Environment and compiler for the C programming
language from Borland. First introduced in 1987, it was noted for its integrated development environment, small
size, fast compile speed, comprehensive manuals and low price.
Version 1.0 (May 13, 1987) offered the first integrated development environment for C on IBM PCs. Like many
Borland products of the time, the software was bought from another company and branded with the "Turbo" name. It
ran in 384 KB of memory. Version 1.5 (January 1988) was an incremental improvement over version 1.0. It
included more sample programs, improved manuals and bug fixes. It was shipped on five 360 KB diskettes of
uncompressed files, and came with sample C programs. Version 2.0 (late 1988) featured the first "blue screen"
version, which would be typical of all future Borland releases for MS-DOS. The American release did not have
Turbo Assembler or a separate debugger. In 2006, Borland's successor, Embarcadero Technologies, re-released
Turbo C and the MS-DOS versions of the Turbo C++ compilers as freeware.

(2)Portable C Compiler[3]- The Portable C Compiler (also known as pcc or sometimes pccm - portable C compiler
machine) is an early compiler for the C programming language written by Stephen C. Johnson of Bell Labs in the
mid-1970s, based in part on ideas proposed by Alan Snyder in 1973, and "distributed as the C compiler by Bell
Labs... with the blessing of Dennis Ritchie." The keys to the success of pcc were its portability and improved
diagnostic capabilities. The compiler was designed so that only a few of its source files were machine-dependent. It
was relatively robust to syntax errors and performed more thorough validity checks than its contemporaries. Its latest
stable version was released on December 10,2014. It was written in C language and is for UNIX operating system.
(3)CodeWarrior:- During the invention of the codewarrior compiler, at early stages the it was only built for
Macintosh Operating system. But as years passed and further research over it took place it was then available in
Windows, UNIX and classic Mac OS. It supports language like C,C++ and assembly language. CodeWarrior was
originally developed by Metrowerks based on a C compiler by Andreas Hommel. CodeWarrior was a key factor in
the success of Apple's transition of its machine architecture from 68K processors to PowerPC because it provided a
complete, solid PowerPC compiler when the competition was mostly incomplete. Then Freescale Semiconductor
Inc. took over the charge on CodeWarrior and released the latest version 10.5 on September 16,2015 incorporates
the Eclipse IDE version 4.21 (Juno) and Eclipse CDT (C/C++ Development Tooling) version 8.1.1.

3.

Conclusion
Concluding this report brings multiple results and broadens the aspect of how a compiler is to be chosen.
There is a whole bunch of compilers for C/C++ language available in market and in this report only 3 of
them are discussed. The aim of this report is to give some basic idea about compilers, their examples and
how according to our need the compiler is to be chosen.

Compiler

Author

Microsoft
Windows

Unix Like

Other OS

License Type

Borland Turbo C

Embarcadero

Yes

No

Yes

Latest Version is Free

Portable C Compiler

Stephen C.
Johnson

Yes

Yes

Yes

BSD

CodeWarrior

Andreas
Hommel

Yes

Yes

Classic
Mac OS

Proprietary

Table 1[5]

Thus from this report one can conclude that no compiler is perfect. A compiler should be chosen over specific needs.
For running a C code in UNIX base OS its useless to use a Borland Turbo C compiler but its really efficient and cost
effective for a WINDOWS OS.

Acknowledgments
The above work is an collective effort of Aditya Pandya and Mit Joshi. The work shown on the paper is
only a glimpse of compiler. This paper is just to show how to select a proper Compiler according to
ones requirement. The references are been taken from various sites and are been mentioned further. This
work would have been nearly impossible without the guidance of Prof.Hasmukh Patel (HOD of
GPERI).We are really looking forward to extend this report in future under the expert guidance of
Prof.Hasmukh Patel .

References
[1]. Wikipedia:- History of Compiler Construction:https://en.wikipedia.org/wiki/History_of_compiler_construction
[2].IDE:- https://en.wikipedia.org/wiki/Integrated_development_environment
[3]. Freeware version of Borland Turbo C:- http://edn.embarcadero.com/article/41337
[4]. John W. Backus:- https://en.wikipedia.org/wiki/John_W._Backus
[5].Table 1:- List of c compilers:- https://en.wikipedia.org/wiki/List_of_compilers

You might also like