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

Python Discussion :

Nouveau langage en python


Sujet :

Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut Nouveau langage en python
    Salut à tous.
    Ce serait pour savoir si il est possible de programmer un langage de programmation en python, si oui pouvez-vous me montrer un code qui par exemple quand j'écris dans une fenêtre Tkinter de python le mot :
    open_windows(name:"Fenetre")
    ca m'ouvre une fenêtre appellée Fenetre.
    merci

  2. #2
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Tu peux faire ça de plusieurs manières différentes.

    Tu pourrais imaginer de parser tout toi-même, c'est à dire écrire le tokenizer, l'assembler et l'unité d'exécution... bref redéfinir un langage complet: amuse toi...

    La méthode la plus simple est d'utiliser le built-in exec de python.

    Exemple (non testé, n'ai pas python sous la main):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def open_window(name):
        # Ton code d'ouverture de la fenêtre
     
    execGlobals = {
        'open_window': open_window,
        'autre_fonction': some_function,
        ...
    }
     
    execLocals = {} # Un dictionnaire qui peut contenir des variables
     
    cmd = readCmd() # Obtenir la commande d'une manière ou d'une autre
    exec cmd in execGlobals, execLocals
    La dernière ligne change sous python3. Si mes souvenirs sont justes, exec est devenu une fonction, et non un statement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec(cmd, execGlobals, execLocals)

  3. #3
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Ce serait pour savoir si il est possible de programmer un langage de programmation en python
    C'est certainement très possible, mais à mon avis pas recommandable, sauf peut-être pour du prototypage, parce qu'à chaque fois que tu 'empiles' les performances s'écroulent.
    Ne pas oublier que Python lui-même est écrit dans un langage qu'on peut qualifier de 'moyen niveau' et qu'en dépit de toutes ses qualités reconnues, il n'a pas la réputation d'être très performant du point de vue du temps d'exécution, ce qui n'est pas un gros problème pour la plupart des scripts.
    Un langage écrit 'au dessus de Python' va forcément ramer. Dans certains cas ce n'est pas important, par exemple 'Logo' (langage à part entière) avait été écrit en Lisp, et vue sa motivation (exclusivement pédagogique) les performances n'avaient pas d'importance.
    Ce que tu peux faire c'est utiliser Python pour mettre au point un langage en utilisant des techniques telles qui ont été suggérées dans le post précédent, et une fois ce travail fini, réécrire entièrement l'interprète en C.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    Merci
    Ok bon et bien merci mais si je ne connai pas bien le C , (j'ai des connaissance de base ) et pour réécrire un interpreteur je pense que sa va pas etre du gateau non?
    Mais regardez par exemple j'ouvre une fenetre ou je peut ecrire du texte ( via Tkinter ) et que j'écris open_windows , il me faudrait un moyen pour que cette fenetre interprette le code mais il faut que l'interpretteur soit en python, je pense que c'est possible mais compliquer .
    Si vous avez un tuto ou des truc du genre , pouvez vous men donnez quelques un.
    Merci

    P.S:si y a des gens interéssés par ce projet , je suis dispo pour un travail de groupe, j'ai un mois de libre devant moi .

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Récemment, j'ai utilisé SPARK .
    C'est une suite analyseur lexical, syntaxique, générateur de code qui fait un peu la même chose que LEX/YACC/BISON.
    Cela va peut être au delà de ce que vous cherchez.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    salut
    Alors ok mais SPARK sert a quoi car je connais plus ou moins YACC mais pas exactement a quoi il sert.

    Merci

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par bossodo Voir le message
    salut
    Alors ok mais SPARK sert a quoi car je connais plus ou moins YACC mais pas exactement a quoi il sert.

    Merci
    à écrire des mini-langages de programmation
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    Merci
    Je vais donc essayer SPARK mais en attendant je me suis remis au C ,
    j'ai deja fait traditionel mon 'HELLO WORLD' et j'ai revu les variables ( pas beaucoup car en se momment je me concebtre beaucoup sur python 3.1 , mais pour programer un interpretteur il faut utiliser quoi ( variable, socket, ect... j'ai rien d'autre en tete ))
    Bon et bien voila merci

  9. #9
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    La création d'un langage interprété requiert de fortes capacités de conceptions, et une connaissance très approfondie du langage utilisé.

    Il te faudra aussi savoir faire des maps (hashtable ou tree, peu importe), comprendre comment fonctionne le langage machine, être capable de créer un set d'instructions efficace etc...

    Et même si tu travailles en C, il te faudra des notions d'héritage et polymorphisme suffisamment avancées pour savoir les appliquer sans le support de l'orienté objet.
    Tu pourrais bien sur te passer de ces dernières notions, au prix de quelque chose de plus compliqué encore...


    Bref, c'est une trèèèèès longue guerre pour créer un langage interprété, et tu n'auras sans doute pas assez d'un mois pour y arriver. (j'en tiens pour exemples les langages existants qui ont mis des années à émerger)

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    Oula sa va pas etre simple mais je vais pas abandonner
    Quoi que...

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Sur le site de SPARK, ils partent d'un exemple de calculette.
    La grammaire se résume a expression, facteur, +, *,...
    C'est à la base de tout les cours de compilation et cela vous permet de balayer le domaine de façon exhaustive.
    Si vous êtes dans une logique d'apprentissage de ces techniques, restez avec Python... Il est plus simple à apprendre.
    Evitez de cumuler les difficultés: il est sage de bien maîtriser un langage de programmation avant de se lancer dans ces techniques. Sinon c'est le découragement assuré: trop de chose à apprendre d'un coup.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    Salut
    Alors j'ai commençé a ecrirs des fonction comme open_windows()
    , open_windows_texte(), ect...
    par exemple voila pour open_windows()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    from tkinter import *
    def open_windows():
            root = Tk()
            root.mainloop()
    et donc comment doit-je faire pour que ma fenetre puisse l'interpreter ,
    et comment je pourai definir un bibliotheque ou je pourai mettre toute les fonction et a l'aide d'une autre fonctions ( fonction = Add (" nom de la fonction a importer" )) les importer pour pouvoir les utiliser ?
    Merci d'avance .

Discussions similaires

  1. Nouveau langage en python (2)
    Par bossodo dans le forum Général Python
    Réponses: 9
    Dernier message: 15/10/2009, 14h52
  2. Nouveau langage de programmation : le langage G
    Par G-FACTION dans le forum Autres langages
    Réponses: 10
    Dernier message: 19/07/2009, 19h58
  3. Nouveau langage WEB
    Par Wulfgard dans le forum Autres langages pour le Web
    Réponses: 4
    Dernier message: 27/06/2009, 13h03
  4. "Rentring" : est-ce un nouveau langage ?
    Par sergi_o dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 24/11/2006, 23h35
  5. Nouveau langage : le D
    Par cheick dans le forum D
    Réponses: 4
    Dernier message: 30/05/2004, 15h56

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