This is a compiler project developed as part of the Compiler Construction course at Universidad de Guadalajara. The project is divided into three main stages: Lexical Analyzer, Syntax Analyzer, and Semantic Analyzer. It is implemented in C# using the .NET 6.0 framework.
- Project Overview
- Lexical Analyzer
- Syntax Analyzer
- Semantic Analyzer
- Participants
- Project Reports
- Prerequisites
- Getting Started
- Contributing
- License
The goal of this project is to build a compiler for educational purposes, covering the essential components of a compiler, including lexical analysis, syntax analysis, and semantic analysis. Each stage of the compiler is implemented sequentially, with each stage building upon the previous one.
- Description: The Lexical Analyzer is responsible for scanning the source code and converting it into a stream of tokens. It identifies keywords, operators, identifiers, and other language constructs.
- Description: The Syntax Analyzer takes the stream of tokens generated by the Lexical Analyzer and checks whether the source code adheres to the specified grammar rules. It builds a syntax tree for the input program.
- Description: The Semantic Analyzer performs semantic checks on the syntax tree to ensure that the program follows the language's semantics. It also generates intermediate code or performs other semantic tasks as required.
-
Ismael Avila | GitHub: ismaelg-avilag
- Contact: [email protected]
-
Issac Hernandez | GitHub: isaac080G
- Contact: [email protected]
-
- Contact: [email protected]
As part of the project evaluation, reports for each development stage have been created and are available in PDF format. You can access these reports through the following links:
Feel free to click on the links above to review the detailed reports for each stage of the project.
Before you begin, ensure you have met the following requirements:
To get started with this project, follow these steps:
-
Clone this repository to your local machine:
git clone https://github.com/yourusername/compiler-project.git
-
Open the project in Visual Studio 2022.
-
Build the project to ensure that all dependencies are resolved.
-
Start implementing or experimenting with the various components of the compiler (Lexical Analyzer, Syntax Analyzer, and Semantic Analyzer).
Contributions are welcome! If you'd like to contribute to this project, please follow these steps:
-
Fork the repository on GitHub.
-
Clone your fork locally.
-
Create a new branch for your feature or bug fix.
-
Make your changes and commit them with clear and concise commit messages.
-
Push your changes to your fork on GitHub.
-
Create a pull request from your fork to the main repository.
-
Your pull request will be reviewed, and once approved, your changes will be merged.
This project is licensed under the MIT License - see the LICENSE file for details.