Description: This project aims to create a mini-compiler in Pascal, capable of translating a subset of Pascal source code into intermediate code or directly into machine code. The main objective is to illustrate the fundamental concepts of compilation, such as lexical analysis, syntax analysis, intermediate code generation, and simple optimization.
Planned Features: Lexical Analysis: Decomposition of the source code into meaningful tokens. Syntax Analysis: Verification of the syntax structure of the source code. Semantic Analysis: Verification of the semantic rules of the Pascal language, such as correct variable declaration, type matching, and proper use of operators and functions. Intermediate Code Generation: Conversion of the source code into an intermediate representation. Contributions: All contributions are welcome! Whether you are a beginner looking to learn more about compilation or an expert wishing to improve functionality and performance, your participation is valuable.
Notes: This project is designed for educational and experimental purposes. While it can be used as a foundation for more complex projects, it is not intended to be a complete and robust compiler for production use.
#############FRENCH#########################
#Description : Ce projet vise à créer un mini-compilateur en Pascal, capable de traduire un sous-ensemble de code source en Pascal vers du code intermédiaire ou directement en code machine. L'objectif principal est d'illustrer les concepts fondamentaux de la compilation, tels que l'analyse lexicale, l'analyse syntaxique, la génération de code intermédiaire et l'optimisation simple.
Fonctionnalités prévues :
1)Analyse lexicale : Décomposition du code source en jetons (tokens) significatifs.
2)Analyse syntaxique : Vérification de la structure syntaxique du code source.
3)Analyse sémantique : Vérification des règles sémantiques du langage Pascal, telles que la déclaration correcte des variables, la correspondance des types, et l'utilisation appropriée des opérateurs et des fonctions.
4)Génération de code intermédiaire : Conversion du code source en une représentation intermédiaire.
Contributions : Toutes les contributions sont les bienvenues ! Que vous soyez un débutant cherchant à en apprendre davantage sur la compilation ou un expert souhaitant améliorer les fonctionnalités et les performances, votre participation est précieuse.
Remarques : Ce projet est conçu à des fins éducatives et expérimentales. Bien qu'il puisse être utilisé comme base pour des projets plus complexes, il n'est pas destiné à être un compilateur complet et robuste pour une utilisation en production.