Compiler Project Proposal-1
Compiler Project Proposal-1
PROPOSAL
GROUP MEMBERS:
PATRICK AGUTU OCHIENG’ TMC/00065/021
DENGA DON-CARLOS TMC/00067/021
TONNY OTIENO ONYANGO CCS/00018/021
PAULINE WAMBUI TMC/00092/021
0|Page
PROJECT PROPOSAL: MULTIPLICATION ENHANCED COMPILER
INTRODUCTION
In today's rapidly evolving computational technology, compilers play an
important role in enabling efficient software development. However, many
compilers lack the ability to directly handle fundamental arithmetic operations
such as multiplication. Recognizing this limitation, our proposal aims to develop
a "Multiplication-Enhanced Compiler.” This project aims to enable developers
with a tool that can allow the integration of multiplication into their programs
therefore enhancing computation.
OBJECTIVE
The primary objective of this project is to design, develop and implement a
compiler with the capability to accurately perform multiplication operations as
an integral part of its functionality. This Multiplication-Capable Compiler will
enable developers and computing systems to handle multiplication within their
programs.
SCOPE OF WORK
This proposal outlines a plan to develop a Multiplication-Capable Compiler using
Java Programming Language. The Multiplication Capable Compiler will be
designed to operate on various computing platforms such as Windows, macOS,
and Linux
The following conditions will be completed during the projects design:
Design the compiler architecture and develop the front end.
Develop the middle end.
Develop the back end.
Test the compiler.
Improve the performance of the compiler.
Write the documentation for the compiler and prepare a presentation for
the final demo.
Through the demo Lecturer should be available for confirmation.
1|Page
METHODOLOGY
The compiler will be implemented in three phases:
1. Front end: The front end will be responsible for lexical analysis, syntax
analysis and semantic analysis. Where the lexical analysis is the first phase
of the compiler that deals with the scanning and tokenization. During the
lexical analysis phase, the MCC's lexer will recognize numeric literals and
operators. The lexer will identify multiplication operations based on the '*'
symbol, tokenizing them as a distinct operator.
Syntax analysis is the second phase of the compiler, where the streams of
the tokens released in the lexical analysis is use to build a parse tree or
abstract syntax tree that represents the structure of source code. The
parser will use a context-free grammar (CFG) that includes multiplication
operations.
Production rules in the CFG will define the syntax for multiplication
nodes in the abstract syntax tree (AST) that represent these operations.
Semantic analysis is a phase of a compiler that is responsible for checking
the validity of the code based on the language specific rules. The MCC will
perform semantic analysis to ensure that multiplication operations are
used with compatible data types.
Rules for type checking will be enforced, preventing operations like
2. Middle end: The middle end will be responsible for intermediate code
generation and optimization. Intermediate code generation the
Multiplication Enhanced Compiler will generate an intermediate
representation that includes instructions or representations for
multiplication operations.
Optimization is where the compiler may employ optimization techniques
to improve multiplication performance.
2|Page
3. Back end: The back end will be responsible for code generation for the
multiplication compiler project using the javaCC for coding the compiler.
3|Page
RESOURCES AND REQUIREMENTS
The following resources will be needed to complete the project:
Personnel: Three students will be assigned to the project.
Hardware: One computer will be needed for the project.
Software: The following software will be needed for the project:
o Yacc
o Flex
o JavaCC compiler project.
BUDGET
The estimated budget for the project is Kshs 100. This covers the printing of the
project.
PERIOD OF WORK WITHIN THE WEEKS
The project is scheduled for 12 weeks. He following is a tentative timeline for
the project:
Weeks 1-2: Design the compiler architecture and develop the front end.
Weeks 3-4: Develop the middle end.
Weeks 5-7: Develop the back end.
Weeks 7-9: Integrate the modules and test the compiler.
Weeks 9-12: Fix any bugs and improve the performance of the compiler.
Write the documentation for the compiler and prepare a presentation for
the final demo.
MILESTONES
4|Page
EVALUATION
CONCLUSION
This project will develop a compile for the Java programming language. The
compiler will be written in Java programming language. The compiler will be
written in Java and will generate code for the JavaCC compiler project. The
compiler will be implemented in three phases: front-end, middle end and back
end. The project is scheduled to be completed in 12 weeks.
(Group Leader)
5|Page