Coder Social home page Coder Social logo

compilateur's Introduction

Exemple de code .c que le compilateur peut transformer en langage assembleur

Le fichier compile.cpp est le main() du projet.
Pour compiler :

   g++ compilation.gcc -o compilation

ENTREE: Pour charger un test, il faut changer le chemin de lecture du fichier :std::string chemin; qui est dans le fichier compile.cpp.

SORTIE: L'écriture du code assembleur par le compilateur est dans la sortie standard (dans le terminal).

Analyse lexicale (Lexing) :

Le compilateur commence par lire le code source et le décompose en une série de tokens. Les tokens sont les unités lexicales de base du langage, comme les mots-clés (if, while, int), les identificateurs (noms de variables et de fonctions), les opérateurs (+, -, *, /), et les symboles de ponctuation ({, }, (, )).

Analyse syntaxique (Parsing) :

Ensuite, le compilateur analyse les tokens pour vérifier que le code respecte la syntaxe du langage C. Cette étape génère un arbre syntaxique abstrait (AST, Abstract Syntax Tree), qui représente la structure grammaticale du code source.

Analyse sémantique :

Le compilateur vérifie ensuite les règles sémantiques du langage, comme les types de données et la portée des variables. Il effectue des vérifications de type, vérifie les déclarations de variables, et assure que les opérations sont valides (par exemple, qu'on ne tente pas d'ajouter une variable entière à une chaîne de caractères).

Génération de code (Code Generation) :

Une fois les optimisations effectuées, le compilateur traduit le code intermédiaire en code assembleur spécifique à l'architecture cible. Le code assembleur est une représentation de bas niveau du programme, utilisant des instructions spécifiques au processeur sur lequel le programme sera exécuté.

compilateur's People

Contributors

gastonduault avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.