Skip to content

dev-penny/Pascal600-compiler-design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pascal600 Compiler Design

Compiler design of Pascal600

Mini semi-complete Project of Compiler Design of Pascal600.

Includes 2 stages:

  1. Lexical Analysis

Lexical Analysis is the first phase of compiler also known as scanner. It converts the input program into a sequence of Tokens. It can be implemented with the Deterministic finite Automata.

  1. Syntax Analysis

Syntax Analysis or Parsing is the second phase,i.e. after lexical analysis. It checks the syntactical structure of the given input,i.e. whether the given input is in the correct syntax (of the language in which the input has been written) or not.It does so by building a data structure, called a Parse tree or Syntax tree.The parse tree is constructed by using the pre-defined Grammar of the language and the input string.If the given input string can be produced with the help of the syntax tree (in the derivation process),the input string is found to be in the correct syntax

How to run

make flex
make run

!!! But before proceeding to these steps, make sure to have installed any dependencies such as Flex and Bison

Stages not included

  1. Semantic Analyzer

Semantic analysis is the task of ensuring that the declarations and statements of a program are semantically correct, i.e,that their meaning is clear and consistent with the way in which control structures and data types are supposed to be used.

  1. Intermediate Code Generator

The front end of a compiler translates a source program into an independent intermediate code, then the back end of the compiler uses this intermediate code to generate the target code.Intermediate code can be either language specific (e.g., Byte Code for Java) or language independent (three-address code).

Acknowledgements

About

Compiler design - Lexical and Syntax Analysis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published