Giter Club home page Giter Club logo

tp-compil's Introduction

TP-Compil

  1. Introduction : Nous allons commencer par présenter ce qu’est un compilateur : Un compilateur est un programme informatique qui traduit un langage (appelé le langage source) en un autre (le langage cible), généralement dans le but de créer un exécutable. Un compilateur sert le plus souvent à traduire un code source écrit dans un langage de programmation en un autre langage, habituellement un langage d'assemblage ou un langage machine. Le programme en langage machine produit par un compilateur est appelé code objet.

  2. Présentation des outils utilisés :

Flex : est un outil pour générer des analyseurs, programmes qui reconnaissent des motifs lexicaux dans du texte. Il lit les fichiers d'entrée donnés, ou bien son entrée standard si aucun fichier n'est donné, pour obtenir la description de l'analyseur à générer. La description est une liste de paires d'expressions rationnelles et de code C, appelées règles. En sortie, flex génère un fichier source en langage C, appelé lex.yy.c', qui définit une routine yylex()'. Ce fichier est compilé et lié avec l'option `-lfl' (correspondant à la bibliothèque flex) afin de produire un programme exécutable. Quand l'exécutable est lancé, il analyse son entrée afin d'y trouver des occurrences correspondant aux précédentes expressions régulières. À chaque expression trouvée, il exécute le code C correspondant.

Bison : est l'implémentation de l'analyseur syntaxique yacc par le projet GNU. Scénarios d'utilisation : L'utilisation d'un analyseur syntaxique s'impose sur du code écrit par exemple en C ou C++ lorsqu'on a besoin de remplacer des classes ou autres références par des adaptateurs, ou des appels de fonctions, ou à partir d'autres classes et/ou fonctions. Dans ce schéma, GNU Bison peut analyser le code source et remplacer toutes les instances de classes et les fonctions, y compris ses arguments. On peut par ailleurs associer Bison à l'analyseur lexical Flex, version libre de Lex. Langages de programmation supportés : GNU Bison peut générer du code C, C++ ou Java, lequel pourra par la suite être compilé.

  1. Utilisation conjointe de flex et bison:

La source yacc utilise l'analyseur lexical yylex()qui peut être construit avec flex. L'option -d de la commande bison génére un fichier entête(syntaxe.tab.h)qui doit être inclus dans la source de votre programme flex pour pouvoir utiliser les symboles definis par bison er qui contient toutes les entitées définits dans flex. Ainsi, pour compiler l'analyseur syntaxique lysa décrit par syntaxe.y utilisant la definition d'un analyseur lexical lexique.l on procède :

Exemple des fichiers: lexique.l syntaxe.y

                 1- flex   lexique.l
                 2- bison  -d syntaxe.y        
                 3- gcc  lex.yy.c syntaxe.tab.c -o exe
                 4- exe ou ./exe (pour executer votre compilateur)

tp-compil's People

Contributors

khadidjasm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  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.