Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vikashpr/18csc304j-cd

SRMIST Kattankulathur Compiler Design-18CSC304J lab exercises Implemented in C/C++
https://github.com/vikashpr/18csc304j-cd

18csc304j 18csc304j-cd compiler-design compiler-design-lab cpp srm-compiler-design-18csc304j srmist-cd srmist-cd-lab vikashpr

Last synced: 3 months ago
JSON representation

SRMIST Kattankulathur Compiler Design-18CSC304J lab exercises Implemented in C/C++

Awesome Lists containing this project

README

        

# 18CSC304J-COMPILER-DESIGN-LAB
[![Hits](https://hits.sh/github.com/VikashPR/18CSC304J-CD.svg?extraCount=2700)](https://hits.sh/github.com/VikashPR/18CSC304J-CD/)

![C](https://img.shields.io/badge/C-00599C?style=for-the-badge&logo=c&logoColor=white)
![C++](https://img.shields.io/badge/C++-00599C?style=for-the-badge&logo=c%2B%2B&logoColor=white)

| S.No | Experiment Name | Link |
| --- | --- | --- |
| 1 | Write a program to implement the Lexical Analyzer | [View➚]( https://github.com/VikashPR/CD/blob/main/LexicalAnalyzer.cpp ) |
| 2 | Write a program to construct a Non Deterministic Finite Automata (NFA) from Regular Expression | [View➚]( https://github.com/VikashPR/CD/blob/main/NFA-from-RE.c ) |
| 3 | Write the program to implement the conversion from NFA to DFA | [View➚]( https://github.com/VikashPR/CD/blob/main/NFA-to-DFA.cpp ) |
| 4.1 | Implement elimination of ambiguity using Left Recursion and Left Factoring (LeftFactoring) | [View➚]( https://github.com/VikashPR/CD/blob/main/LeftFactoring.cpp ) |
| 4.2 | Implement elimination of ambiguity using Left Recursion and Left Factoring (LeftRecursion) | [View➚]( https://github.com/VikashPR/CD/blob/main/LeftRecursion.cpp ) |
| 5 | Compute the FIRST() and FOLLOW() | [View➚]( https://github.com/VikashPR/CD/blob/main/First-Follow.c ) |
| 6 | Implement Predictive Parsing Table | [View➚]( https://github.com/VikashPR/CD/blob/main/PredictiveParsing.c ) |
| 7 | Implement Shift Reduce Parsing | [View➚]( https://github.com/VikashPR/CD/blob/main/ShiftReduceParser.cpp ) |
| 8 | Implement LEADING AND TRAILING for the given grammar | [View➚]( https://github.com/VikashPR/CD/blob/main/Lead-Trail.cpp ) |
| 9 | Implement LR(0) items for the given grammar | [View➚]( https://github.com/VikashPR/CD/blob/main/LR0.cpp ) |
| 10.1 | Implement Intermediate code generation – Postfix, Prefix (Infix to Postfix) | [View➚]( https://github.com/VikashPR/CD/blob/main/Infix-to-Postfix.c ) |
| 10.2 | Implement Intermediate code generation – Postfix, Prefix (Postfix to Prefix) | [View➚]( https://github.com/VikashPR/CD/blob/main/Postfix-to-Prefix.c ) |
| 11 | Implement the front end of a compiler that generates the three address code ( Quadruple, Triple, Indirect triple) Lab | [View➚]( https://github.com/VikashPR/CD/blob/main/FrontEnd.c ) |
| 12 | Design and develop a simple code generator (back end of the compiler) | [View➚]( https://github.com/VikashPR/CD/blob/main/BackEnd.c ) |
| 13 | Implement the construction of DAG | [View➚]( https://github.com/VikashPR/CD/blob/main/DAG.cpp ) |

## More contributions by the same author 🚀
| Subject Code | Subject Name| Repo Link |
| -- | -- | -- |
| 18CSC305J-AI | Artificial Intelligence | [View➚](https://github.com/VikashPR/18CSC305J-AI) |
| 18CSC303J-DBMS | Database management system | [View➚](https://github.com/VikashPR/18CSC303J-DBMS) |
| 18CSE316J-DEVOPS | Essentials in Cloud and Devops | [View➚](https://github.com/VikashPR/18CSE316J-DEVOPS) |

## Credit for being partners in crime



ChatGPT


Github Co-Pilot

## Contribution Guidelines

**Types of Contributions:**
- Pull Requests: Propose new features or changes to existing code. Make sure your code follows our conventions and does not break existing functionality. Test your code thoroughly and add the programming language used and the version.
- Issues: Report bugs or suggest new features. Provide detailed information.

**Contribution Process:**
1. Fork the repository.
2. Clone the forked repository to your local machine.
3. Create a new branch for your changes.
4. Make changes and commit them to your branch.
5. Push your branch to your forked repository.
6. Submit a pull request to the main repository.