Sei sulla pagina 1di 11

PROJECT SYNOPSIS PRESENTATION

Objective/Aim:
This project aims at developing a compiler that will accept high level instructions from user based on our syntax & semantics, check it for errors(if any) and will compute the desired output.

Figure 1 : http://www.cs.uaf.edu/~cs631/node4.html

Figure 2: http://www.math.bas.bg/~nkirov/2004/Horstman/ch01/images/compiler.png

Technical Details:
The platform for the development is C language and data structure using C. The underlying principle is boot strapping which is the process of writing a compiler in the target programming language which it is intended to compile. Applying this technique leads to a self-hosting compiler and newly generated language.

Feasibility Study
Feasibility study is a test of a system proposal according to its workability impact on the organization ability to meet user needs and effective use of resources. The three major areas to consider while determining the feasibility of the project are:

Technical feasibility:
The compiler can be developed on windows and linux operating system.In windows,we can develop with the help of turbo c and in linux, we can develop it with the help of gcc. The symbol table and grammar rules can be easily generated with lex tool and yacc parser respectively. so we are going to develop compiler over linux os.

Economical feasibility:
Linux OS is an open source operating system. So it freely available under GNU licence. In case Lex tool and yacc tool are not available freely on the internet.It has to be purchased.

Operational feasibility:

As per the analyzed requirements and studied feasibilities, the project will be operable in earlier and recent version of windows operating system.

Methodology/ Planning of work


Bootstrapping (principle behind compiler design)

A compiler is characterized by three languages:


1.Source Language 2.Implementation Language 3.Target Language Notation: represents a compiler for Source , Target , implemented in

. The T-diagram shown above is also used to depict the same compiler.

To create a new language, L, for machine A:

This compiler will likely to perform some or all of the following operations: lexical analysis, preprocessing, parsing, semantic analysis (Syntax-directed translation), code generation, and code optimization.(We are not keen to work on code optimization.) LEX tool will be used to generate the Lexical Analyzer and YACC tool for generating the parser.

Figure 3: http://www.roma1.infn.it/SIC/_OLD_documentazione/unix/migr/digital-unixdoc/DOCUMENTATION/HTML/AA-PS32D-TET1_html/zk-0455U.gif

Facilities required for proposed work


Hardware requirements:
32 bit machine,800 MHz processor 1.66GHz Windows/Linux OS 128 MB RAM

Software requirements:
A lex tool A yacc parser tool Turbo C/GCC

Innovativeness and Usefulness:


This software will provide an IDE that will also be compatible with recent versions of windows operating Systems and will provide a friendly GUI (windows based).

The syntax & semantics of the users instructions will be meaningful, easy to understand and implement.

It will be useful to write high level user understandable instructions that will be parsed for errors, will compute target code for the machine and generate the output.
It will consist of in-built multiple arguments type arithmetic functions.

Current Status of Development:


Requirements have been analyzed and the prototype is being prepared.
We are working on lexical analyzer. We are not keen to work on code optimization.

Bibliography:
Compiler Design in C. -Allen I. Holub (Prentice-Hall of India Pvt Ltd) Principles of Compiler Design. -Alfred V. Aho and Jeffrey D. Ullman (Narosa Publishing House) www.nptel.iitm.ac.in www.compilerconnection.com

Potrebbero piacerti anche