Skip to content

Exemple d'u compilateur du language de programmation Logo pour les enfants.

Notifications You must be signed in to change notification settings

abdorah/Compilateur_Logo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 

Repository files navigation

Compilateur Logo

Contributeurs :

Ce projet a été réalisé sous la contribution de :


Objectif du projet :

Le but de ce projet est de développer un compilateur de langage LOGO en C.Ce projet a pour but principal d'aider les enfants dans l'apprentissage des différentes figures.

Introduction :

Le langage de programmation LOGO a pour but d'améliorer chez les enfants leur manière de penser et d'aborder la résolution de problèmes. Matérialisé sous la forme d'un petit robot, la Tortue Logo, ce langage est utilisé dans la résolution de problèmes. Le langage de programmation Logo permet de déplacer cette « tortue géométrique », qui est un stylo représenté sous la forme d’une tortue que les enfants peuvent bouger ou dessiner sur l’écran.


Unités lexicales du langage :


* Mots clés = { IF,
                ELSE,
                REPEAT,
                FORWARD,
                LEFT,
                RIGHT,
                COLOR,
                DEFINE,
                USE,
                FONCTION,
                TRANSPARENT,
                RED,
                GREEN,
                BLACK,
                BLUE}
* Symboles spéciaux = {[,]}
* Opérateurs = {+,-,*,/}

Grammaire du langage :

Soit  G = <T,NT,S,P> la grammaire de notre langage LOGO,les règles de productions sont les suivantes:

<START> ::= <PROGRAM>

<PROGRAM> ::= <INSTRUCTION>
            | <PROGRAM> <INSTRUCTION>

<INSTRUCTION> ::= <FORWARD> <EXPRESSION>
                | <LEFT> <EXPRESSION>
                | <RIGHT> <EXPRESSION>
                | <REPEAT> <EXPRESSION> '[' <PROGRAM> ']'
                | <IF> <EXPRESSION> '[' <PROGRAM> ']' <BLOCK>
                | <DEFFONCTION> <EXPRESSION> '[' <PROGRAM> ']'
                | <RED>
                | <GREEN>
                | <BLUE>
                | <TRANSPARENT>
                | <BLACK>
                | <COLOR>
                | <USEFONCTION> <EXPRESSION>
                

<BLOCK> ::= <ELSE> '[' <PROGRAM> ']'
            | <empty>

<EXPRESSION> ::= <EXPRESSION> '+' <TERM>
                | <EXPRESSION> '-' <TERM>
                | <EXPRESSION> '*' <TERM>
                | <EXPRESSION> '/' <TERM>
                | TERM

<TERM> ::= <TERM> '*' <FACTOR>
        | <TERM> '/' <FACTOR>
        | <FACTOR>

<FACTOR> ::= <VALUE>
            | '-' <FACTOR>
            | '(' <EXPRESSION> ')'


Structure du projet

Le projet suit la structure suivant:

Dossier / Fichier Rôle
Makefile ce fichier contient les commandes de make permettant de générer les executables et les dessins
parser.y code d'analyseur syntaxique et sémantique
scanner.l code d'analyseur lexical
semantic.c des fonctions sémantiques
semantic.h les structures et les fonctions utilisés dans la partie sémantique
test un ensemble de tests

Exécution du projet

Pour compiler le projet avec l’exemple de code logo test.logo, il faut juste utiliser la commade : 
        > cd source
        > make draw 

Outils développement

  • FLEX
  • BISON
  • MAKE
  • GNU GCC

About

Exemple d'u compilateur du language de programmation Logo pour les enfants.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published