You are on page 1of 2

Designing of programming language and its Compiler

Aim : To design a programming language and its compilation process.

Team members :

Aastik Upadhyay
Abhay Chauhan
Abhishek Singh
Aditya Sharma


Project description :
A compiler is a special program that processes statements written in a
particular programming language and turns them into machine language or "code"
that a computer's processor uses. Typically, a programmer writes language
statements in a language such as Pascal or C one line at a time using an editor.

Our compiler will be based on Object-Oriented Programming language which

will be a new language designed by ourselves. The designed compiler will
perform all the basic operation of mathematics and string manipulation.

1) Basic Mathematics Operations : First, all the necessary inputs would be taken from
the user, inter-processing will be completed and finally the output will be
displayed/print to the user in very short time. Basic mathematics operation includes
arithmetic operations like addition, subtraction, multiplication, division and finding
the remainder (modulus function).
2) String Manipulations : As in basic mathematics operations, first the inputs will be
taken from the user, the inter-processing will be done and finally output will be
display to the user on the output user. Basic manipulations would include:
a. String Concatenation
b. Conversion of string
i. From Upper-case to Lower-case
ii. From Lower-case to Upper-case
c. Looping System: All the three loops (for, while, do-while) will be included in
our compiler. The loop system will also be included in string conversion, plus
a separate option will also be there to implement the loops differently.

Requirements Specification
Existing System :A compiler consists of:

Compilation part : Verifies syntax and semantics, and generates

an intermediate representation or IR of the source code for processing by the
middle-end. Performs type checking by collecting type information. Generates
errors and warning, if any, in a useful way. Aspects of the front end include
lexical analysis, syntax analysis, and semantic analysis.
Linking part : Performs optimizations, including removal of useless or
unreachable code, discovery and propagation of constant values, relocation of
computation to a less frequently executed place (e.g., out of a loop), or
specialization of computation based on the context. Generates another IR for the
Loading part : Generates the assembly code, performing register allocation in
process. (Assigns processor registers for the program variables where possible.)
Optimizes target code utilization of the hardware by figuring out how to keep
parallel execution units busy, filling delay slots. Although most algorithms for
optimization are in NP, heuristic techniques are well-developed.

Some Drawbacks of existing system

1) Hardware specific
2) Compile time
3) Platform specific

Proposed System
Proposed system will consist of a newly designed programming language and its compiler.
Hence a new product will be delivered to the user in the form of compiler.

Our motive will be learning, practical implementation of theory knowledge and increasing
the hand on working. Our compiler will contain no piracy. All the efforts will be from the
team members only and will try to give our best.