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

Scheme Discussion :

Décalage entre langages et interpréteurs


Sujet :

Scheme

  1. #1
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut Décalage entre langages et interpréteurs
    Il y a une chose que je ne comprends pas bien dans la communauté Lisp/Scheme.

    D'un côté, et c'est sans doute un des traits les plus excitants de ces langages, on nous dit que Lisp/Scheme n'est pas qu'un langage, grâce au cumul des macros et du code homoiconic c'est un véritable assembleur de langages.
    D'ailleurs on a de brillants universitaires qui travaillent à renforcer encore cet aspect.

    De l'autre côté, puisque c'est plus "facile" à implémenter, on devrait s'attendre à une réactivité beaucoup plus grande, les interpréteurs devraient rivaliser d'innovation et chercher à implémenter les derniers mécanismes/extensions proposés.

    Hé bien ça n'est pas ce que j'observe, les interpréteurs disponibles se répartissent principalement en deux catégories:
    • les Lisp/Scheme "compatibles" qui reprennent une(la?) norme en y ajoutant quelques indispensables extensions, lesquelles n'ont malheureusement rien à voir avec les publications évoquées précédemment
    • les "nouveaux" langages de script, qui hésitent entre Lisp et Smalltalk/Ruby/JavaScript/Que-sais-je, et dont l'auteur est tellement proche de ses utilisateurs qu'il est dispensé de lire Queinnec


    Pourquoi a-t-on si peu d'interpréteurs Lisp/Scheme d'inspiration universitaire ? Pourquoi le retard des interpréteurs est-il plus grand que dans le camp ML ?
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    J'avoue que je ne suis pas sûr de saisir l'essence de ton message.
    Personnellement, Lisp (et le dialecte Scheme plus particulièrement) est l'occasion de tester des principes, des approches, de m'implémenter une surcouche pour voir comment je pourrais le faire fonctionner (actuellement c'est les aspects). Maintenant je n'en ferais pas, moi-même, un interpréteur... Je vois donc Lisp comme un moyen de tester et d'expérimenter. En général je passe à autre chose après (à moins que ce ne soit un petit projet).

    Mais c'est vrai que je n'ai pas d'intérêt « pratique » dans la création des langages ou dans l'écriture des features avancées. En fait, si j'en ai, mais je n'ai pas le temps car je consacre mes efforts sur mes recherches en GL (publish or die).

    Il y a des essais cependant comme en témoigne les langages optionnels dans PLT/Scheme : le real-time par exemple. Beaucoup d'efforts sont concentrés vers les compilateurs plutôt de toute façon. Au final, Chicken, Gambit, Bigloo, Stalin, Guile, ScSh (pour Scheme seulement) me semble être des exemples qui surgissent de l'effervescence chaotique et innovatrice. Tout n'arrive pas à finalité — heureusement quand même — mais il me semble qu'il existe quand même une « bonne réactivité » même si je ne suis pas sûr de ce que ça veut dire ^_^

    http://community.schemewiki.org/?sch...mplementations
    donne une liste des implémentations de Scheme (et donc pas des Lisp de façon général)... ça me paraît plutôt grand... Il y a des liens vers les bibliothèques aussi... mais tu dois connaître non ? Tu n'as probablement pas posté sans avoir cherché.

    Donc peut être que je n'ai pas compris ce que tu voulais dire. Qu'aimerais-tu voir ? C'est peut-être le « d'inspiration universitaire » que je ne comprends pas.

  3. #3
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Va voir Clojure, un dialecte de Lisp codé en Java. Très intéressant:

    • Structures de données immutables
    • Support pour la concurrence
    • Interopération avec Java et ses librairies
    • Structures de données persistantes
    • Protocole pour les types séquences


    C'est très intéressant, probablement le Lisp avec le plus d'innovation pour le moment et, si Dieu le veut, une bonne chance de faire bonne impression en entreprise.

  4. #4
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    @Garulfo
    Effectivement, ce lien ne m'est pas inconnu.

    @GnuVince
    Clojure, Groovy, Jaja et autres ciblent la JVM avec ses atouts et ses défauts (on aime ou on aime pas).
    C'est sans doute une 3ième catégories d'interpréteurs qui peuplent la liste ci-dessus: Scheme adapté à une plateforme de langages managés.

    Les langages dont je parle sont ceux qui sont ne sont pas représentés dans la liste de http://schemers.org/, quelques exemples qui me viennent à l'esprit :


    Et pour cause: si on en rencontre une implémentation c'est toujours une sur-couche de Scheme, jamais un interpréteur indépendant

    Sur schemers.org on ne retrouve que partiellement les fonctionnalités avancées, par exemple Galapagos offre les environnements de 1ière classe, mais sans les primitives export et import de la littérature.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par SpiceGuid Voir le message
    Les langages dont je parle sont ceux qui sont ne sont pas représentés dans la liste de http://schemers.org/, quelques exemples qui me viennent à l'esprit :


    Et pour cause: si on en rencontre une implémentation c'est toujours une sur-couche de Scheme, jamais un interpréteur indépendant

    Sur schemers.org on ne retrouve que partiellement les fonctionnalités avancées, par exemple Galapagos offre les environnements de 1ière classe, mais sans les primitives export et import de la littérature.

    C'est clair que si tu cherches sur Schemer, tu ne trouveras pas d'implémentation d'autre chose que Scheme ^_^ ObjVLisp par exemple est du Lisp pas du Scheme. Ça ressemble, mais c'est pas la même chose. Tu ne trouveras pas non plus CLisp sur cette liste.

    - ObjVLisp est implémenté mais est une extension à VLisp... en fait tout est une « extension » du lisp originel d'une certaine forme.
    - Moostrap que tu cites est une extension de Scheme aussi, c'est vrai.
    - Qi est disponible sur leur cite. C'est nouvelle implémentation je crois celui-ci. Pas une extension non ?

    Mais encore une fois, je ne comprends pas ce qui te dérange dans le fait de faire une surcouche ou de voir une extension. Quand tu as un interpréteur/compilateur bien fait, pourquoi vouloir le refaire ? Il est mieux de faire une extension non ?

    En fait, c'est le principe même de la philosophie Lisp : un noyau sur le lambda-calcul et le reste est créé à partir de là. C'est la philosophie qui donne aussi OCaml à la base.

    Tous les travaux d'extension ou presque sont universitaires...

    Donc... qu'est-ce qui te dérange au fait ?
    Si c'est que le langage « officiel » n'implémente pas tout ce qui sort, c'est heureux. Ça serait en général un calvaire si chaque nouvelle version possédait une armée de nouveauté. Car en général ça rend le langage impraticable. C'est pourquoi c'est des extensions que tu peux choisir d'utiliser ou non. De plus quand quelque chose sort dans un article, ce n'est peut-être pas vraiment utile, ou pas vraiment efficace, ou pas vraiment cohérent...
    Si jamais GNU C++ implémentait toutes les nouveautés et extensions sur le C++ qui sortent ça serait un compilateur poubelle vite fait. Il faut faire un tri et offrir éventuellement des modules et des extensions.

    T'ai-je demandé ce que tu n'aimais pas finalement ??

  6. #6
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    J'avais cru comprendre que Qi est une surcouche de Lisp :
    Citation Envoyé par Qi FAQ
    Qi runs on CLisp , CMU Lisp, SBCL (May 2007) and Allegro Common Lisp (June 2007).
    Oui, avec Lisp/Scheme le sucre syntaxique est bien plus explicite qu'avec un ML et du coup on peut se configurer son langage à la carte plutôt que de l'avoir codé en 'dur'

    je viens de comprendre que ça n'est pas du bloatware et que pour soulager mon embarras il suffisait de ne pas lire les sources que je ne comprends pas, et ça passe beaucoup mieux, question d'habitude
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par SpiceGuid Voir le message
    J'avais cru comprendre que Qi est une surcouche de Lisp :
    Ahh bin t'as l'air d'avoir raison. Je pense que j'ai été trompé par

    What is Qi?
    A language implemented in Common Lisp that generates efficient type secure Lisp programs which you can run on any machine.
    Je pensais que ça voulait dire que c'était une implémentation complète et non une surcouche... mais c'est vrai que ton passage semble dire autre chose.

Discussions similaires

  1. Dictionnaire de traduction entre langages
    Par mtaveau dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 01/05/2007, 00h17
  2. Différences entre langages scriptés et compilés
    Par @v@lon dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/03/2007, 16h51
  3. Réponses: 3
    Dernier message: 19/10/2006, 20h56
  4. [AJAX] Décalage entre évènement et renvoi serveur
    Par Aurias dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/06/2006, 15h45

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