IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Création de compilateur


Sujet :

Langages de programmation

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Par défaut Création de compilateur
    Bonsoir tout le monde,

    Je sais que cette question a fort figurer sur ce forum et autres forums aussi, mais vu que nous ne sommes qu'une simple et nouvelle association pour la promotion du bon usage de l'ordinateur, car ici au Maroc, les jeunes n'utilisent le PC que pour se connecter sur MSN, et discuter avec les autres connectés sans profit et sans valeur ajouté!

    Alors en cherchant un projet pour initier des jeunes qu'on a formé pendant presque 9 mois sur la programmation avec le langage C, on a décidés de mettre au point un compilateur pour un langage existent.

    Ma question est quel est le langage, qui existe, le plus simple pour ce type de projet?
    J'aurais aimé aussi que si quelqu'un sais où trouver de la bonne documentation ou même un exemple simple pour que ces jeunes le comprennent ça sera parfait (J'ai passer un coup d'oeil sur quelques Compilateurs libres, et c'est trop HARD pour les jeunes! Un langage simple pour un compilateur simple)...

    Merci beaucoup pour votre Attention, et à très bientôt..


    Association ZIND pour la promotion des nouvelles technologies.

    Karim LEHLOU
    Ingénieur en Réseaux et télécommunication
    Président de l'association ZIND.

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    les langages de type ML sont vraiment adaptés pour les travaux sur la théorie des langages
    tu trouveras plein d'exemple universitaires basés sur ces langages



    pour infos, on va bientot publier un article sur la compilation justement
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Par défaut
    C'est très aimable de votre part!

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    le plus dur dans un premier temps c'est de décrire la grammaire du langage

    Tu peux faire un compilateur pour une version simplifiée du C (vu qu'ils le connaissent) ou du Pascal. Si les étudiants avancent bien, ils ajouteront les pointeurs, les structures, les tableaux à plusieurs dimensions.

    Voilà un lien vers le cours C que j'ai eu : http://c.developpez.com/cours/

    Mais d'un point de vu général, on fait toujours :
    1. Ecriture de la grammaire
    2. Analyseur lexical
    3. Analyseur syntaxique
    4. Analyseur sémantique
    5. ...


    Il faudra répéter ce travail plusieurs fois avant d'arriver au langage machine.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    ce cours propose de faire le projet en C ?

    ça va être dur pour des débutants ^^
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Par défaut
    Merci infiniment pour le Poly! Mais j'aurais bien aimé que ça soit un exemple plus simple, car même si ces jeunes ont appris le C, mais ils ne le maîtrisent pas assé pour aborder un tel exemple!

    Juste un simple exemple d'un simple compilateur, mais je parle d'un vrai compilateur, car j'ai trouver un code source pour la compilation de VB avec la plateforme .NET, mais enfaite, c'est un compilateur interne dans la plateforme qui compile!

    Alors si quelqu'un à d'autres ressources, Documentation, Exemples, Cours, veillez nous les communiquer.

    Merci encore!

  7. #7
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    si tu veux rester avec des langages fonctionnels plus simples à utiliser sur ce genre projet :
    http://quincy.inria.fr/data/courses/itlp/
    http://www.enseignement.polytechniqu...t/compil/poly/
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    si tu veux rester avec des langages fonctionnels plus simples à utiliser sur ce genre projet :
    http://quincy.inria.fr/data/courses/itlp/
    http://www.enseignement.polytechniqu...t/compil/poly/
    Merci pour tes liens, gorgonite !

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  9. #9
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Peut-être pourrais-tu regarder du coté des outils flex/bison, qui sont dédiés à cela.

    Ensuite, le principal problème, c'est le temps à y consacrer. La compilation représente plusieurs semestre voire même plusieurs années suivant le niveau d'approfondissement voulu (la gestion d'erreur peut représenter jusqu'à une année d'étude).

  10. #10
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Je pense que écrire un interpréteur de commande
    L'interprétation fait partie de la compilation. Il s'agit de la traduction d'une instruction directement en code executable.

    Sur le principe ça revient au même.

    qu'il vaut mieux faire de la progr fonctionnelle pour cela, ce sera simple et instructif
    Autant je suis d'accord avec toi, en Caml c'est relativement simple à faire mais après un certain apprentissage (c'est toute un paradigme de programmation à réapprendre, c'est pas forcément direct, tout dépend du niveau).

  11. #11
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 747
    Par défaut suggestion!
    Il serait peut être préférable de choisir un language style 'LOGO' qui est fonctionnel, graphique et simple.... Et plutôt que d'aller jusqu'à générer du code machine s'arrêter à la génération d'un code C qui sera compilé.

    Cela permet de garder les principales étapes sans aller trop bas dans
    les détails et de s'appuyer sur des libraries toutes faites pour implanter les fonctionnalités du langage.

    Mais cela n'est qu'une suggestion.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut Autre suggestion
    Dans la série compilateur, il y en a un, je ne pense pas qu'il existe (je peux me tromper), mais qui serait très utile: un compilateur de HTML et de Java-script. Vous lui donnez en entrée une ou plusieurs pages HTML contenant du java-script, et il vous sort un programme exécutable.
    L'intérêt ? De pouvoir faire des programmes simples (style saisie de formulaires), qui pourraient être exécutés la fois à distance via internet et à la fois en local avec un programme exécutable (donc plus rapide, pas de problème de navigateur mal configuré, d'incompatibilité, ...).
    Par contre, pour ce qui est de la complexité du projet, je ne suis pas sûr que ce soit à la portée de débutants. A voir.

  13. #13
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par 10_GOTO_10 Voir le message
    Dans la série compilateur, il y en a un, je ne pense pas qu'il existe (je peux me tromper), mais qui serait très utile: un compilateur de HTML et de Java-script. Vous lui donnez en entrée une ou plusieurs pages HTML contenant du java-script, et il vous sort un programme exécutable.
    L'intérêt ? De pouvoir faire des programmes simples (style saisie de formulaires), qui pourraient être exécutés la fois à distance via internet et à la fois en local avec un programme exécutable (donc plus rapide, pas de problème de navigateur mal configuré, d'incompatibilité, ...).
    Par contre, pour ce qui est de la complexité du projet, je ne suis pas sûr que ce soit à la portée de débutants. A voir.
    Je vois pas l'intérêt d'exécuter du code JavaScript hors d'un navigateur.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  14. #14
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par PRomu@ld Voir le message
    [...]
    Autant je suis d'accord avec toi, en Caml c'est relativement simple à faire mais après un certain apprentissage (c'est toute un paradigme de programmation à réapprendre, c'est pas forcément direct, tout dépend du niveau).
    Effectivement... plus t'es débutant, plus c'est facile car tu n'as pas de préjugés

  15. #15
    Membre éprouvé Avatar de lozeu
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 100
    Par défaut
    Personne n'a proposé le basic -ou dérivé- ?
    C'est un langage ultra-simple et il vaut mieux car faire un compilateur en C avec quelques mois d'expérience ça va être hardcore pour eux!
    Ya super longtemps on l'enseignait aux momes le basic!
    Ou sinon le LOGO est simple aussi.

  16. #16
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    pour la 1001ème fois... pourquoi ne pas utiliser un langage FONCTIONNEL ???


    sous prétexte qu'une personne a parlé de C, vous ne retenez que cela
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  17. #17
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    C'est vrai que beaucoup de programmeurs habitués à l'impératifs font une sorte de blocage sur l'usage de langages fonctionnels. J'avoue avoir été longtemps dans ce cas avant de découvrir Haskell. Il faut du temps pour changer les à priori...

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  18. #18
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    C'est vrai que beaucoup de programmeurs habitués à l'impératifs font une sorte de blocage sur l'usage de langages fonctionnels.
    Oui, et c'est bien dommage, surtout dans un domaine comme la compilation, où ils excellent vraiment. Pour des débutants en C faire un compilateur est mission impossible, alors que beaucoup de cours de OCaml ou de Haskell proposent rapidement de créer un petit interpréteur en tant qu'exercice... C'est tellement vrai que l'un des tutorials pour apprendre Haskell propose tout simplement d'aborder le langage en programmant un petit interpréteur pour un sous-ensemble respectable de Scheme.

    --
    Jedaï

  19. #19
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Un objectif classique de Scheme est de faire un interpréteur d'un mini-scheme en Scheme. Ça se fait en 45h de cours... qui fait la même chose en C (faire un compilateur d'un mini-C en C) après 45h de C ??

    En tout cas... celui qui n'a jamais goûté du vrai sirop d'érable est toujours convaincu que ce qu'on vous vend en France en est... Il faut goûter pour savoir.

  20. #20
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Oui, et c'est bien dommage, surtout dans un domaine comme la compilation, où ils excellent vraiment. Pour des débutants en C faire un compilateur est mission impossible, alors que beaucoup de cours de OCaml ou de Haskell proposent rapidement de créer un petit interpréteur en tant qu'exercice... C'est tellement vrai que l'un des tutorials pour apprendre Haskell propose tout simplement d'aborder le langage en programmant un petit interpréteur pour un sous-ensemble respectable de Scheme.

    --
    Jedaï
    Je ne le connaissais pas celui-là. Merci pour le lien!

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

Discussions similaires

  1. [Flex/Bison] Création d'un compilateur
    Par lion de feu dans le forum Générateurs de compilateur
    Réponses: 0
    Dernier message: 26/05/2012, 05h36
  2. Création d'un compilateur en C
    Par neveah dans le forum Générateurs de compilateur
    Réponses: 3
    Dernier message: 02/01/2012, 19h13
  3. Fonctionnement et création d'un compilateur C
    Par Abelkims dans le forum C
    Réponses: 6
    Dernier message: 23/07/2009, 13h50
  4. licence pour création d'un compilateur
    Par cdm1024 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 06/05/2009, 00h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo