Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: Le langage Arc, issu de Common Lisp et Scheme, a un mois

Posté par sacado (). Modéré le 01 mars 2008.
Le langage Arc est disponible depuis un mois sous la licence Libre Artistic 2 de la perl foundation. Pour info, Arc est un nouveau dialecte Lisp conçu par Paul Graham, un "gourou" de Lisp, qui a écrit 2 ouvrages très réputés sur ce langage et qui s'est fortement enrichi en vendant à Yahoo son application Viaweb, elle-même écrite en Lisp.

P. Graham a conçu Arc car il considérait que le langage Lisp, qui fête cette années ses 50 ans, avait perdu de sa fraîcheur et de sa pureté originelle, celle qu'il avait lorsqu'il a été conçu par John McCarthy à la fin des années 50, lui-même se basant entre autres sur le lambda-calcul élaboré par A. Church quelques années auparavant.

Arc est un langage à la fois minimaliste, comme Scheme, mais voué à être réellement utilisé, Graham étant un programmeur, pas un théoricien. Avant d'être publié, il a d'ailleurs été utilisé pour réaliser une application web : le forum Hacker News, dont le code source est disponible depuis quelques jours.

Le noyau du langage a été écrit en quelques centaines de lignes de Scheme et peut être très facilement étudié. Le reste du langage, c'est une de ses caractéristiques, a été écrit en Arc lui-même.

NdM : pour ceux qui voudraient retracer l'évolution de l'intelligence artificielle côté États-Unis principalement, n'hésitez pas à (re-)lire Crevier et son livre À la recherche de l'intelligence artificielle.

> Lire la dépêche (19 commentaires, moyenne: 4,7).  

Vous avez demandé le commentaire #909427.

bootstrapping myself

Posté par Guillaume Gimenez (page perso, ) le 01/03/2008 à 12:27. (lien). Évalué à 6.

> Le reste du langage, c'est une de ses caractéristiques, a été écrit en Arc lui-même.

Je dirais que c'est une caractéristique minimale pour un langage...

Le C ça puxor, gcc est écrit en brainfuck, c'est bien connu


mes 2 cents

  • [^]Re: bootstrapping myself

    Posté par champi (page perso, ) le 01/03/2008 à 13:34. (lien). Évalué à 7.

    Il y a plein de langages qui ne bootstrappent pas (encore). Exemple: les interpreteurs officiels de python, perl et ruby sont écrits en C (a mettant a part le projet Pypy qui est encore assez experimental).

    La VM java n'est pas ecrite en java non plus il me semble.

    • [^]Re: bootstrapping myself

      Posté par Guillaume Gimenez (page perso, ) le 01/03/2008 à 14:29. (lien). Évalué à 0.

      > ...interpreteurs...
      voilà le problème

      Mais la vrai question est : "Comment puis-je faire, moi aussi, pour faire un programme voué à être réellement utilisé" ???

      Celui qui a la réponse me permettra peut-être de gagner aussi 445000 yahoo shares !

      mes 45M $

      [^]Re: bootstrapping myself

      Posté par Beretta_Vexee () le 01/03/2008 à 15:32. (lien). Évalué à 5.

      A part pour faire du développement système c'est quoi le gros intérêt d'avoir un langage qui bootstrape ? C'est une preuve de maturité du langage OK mais "pragmatiquement" ca à quel utilité ?

      --
      Il relève de la responsabilité du lecteur de contrôler, par tous moyens, l'adéquation du message à ses besoins et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
      • [^]Re: bootstrapping myself

        Posté par Nicolas Boulay () le 01/03/2008 à 15:59. (lien). Évalué à 5.

        Avoir une grosse application trés tot pour faire de la validation...

        [^]Re: bootstrapping myself

        Posté par sacado () le 01/03/2008 à 18:46. (lien). Évalué à 6.

        Dans le cas d'Arc, c'est un peu particulier. Ce n'est pas le compilateur/interpréteur qui est "bootstrappé", c'est le langage lui-même. À partir de quelques axiomes de base (if, cons, car, cdr, eval, quote, fn, les opérations mathématiques de bases, l'affection et quelques autres), tout le reste du langage est défini (le langage est lui-même sa propre spécification) : la définition de fonction, les opérateurs and et or, les divers systèmes d'itération, le système de macro, etc.

        L'intérêt, c'est de permettre d'adapter le langage aux problèmes auxquels on se trouve confronté, de A à Z : selon la devise Lispienne, c'est "un langage de programmation programmable".

        [^]Re: bootstrapping myself

        Posté par alenvers () le 02/03/2008 à 12:11. (lien). Évalué à 3.

        Avoir un langage qui bootstrap, cela permet notament :
        - à ne pas dépendre d'un autre langage
        - de tester le langage lui-même
        - de faciliter le X-compiling. Tu n'as qu'à modifier ton compilateur pour ajouter une nouvelle archituecture cible (Sinon, il est problable que tu doivent aussi modifier le compilateur du langage que tu utilises).
        - d'optimiser de ton propre compilateur et améliorant sa production de code (suffit de le recompiler avec lui-même 2x de suite)

        • [^]Re: bootstrapping myself

          Posté par alenvers () le 02/03/2008 à 12:14. (lien). Évalué à 1.

          Oula pas bien réveillé ce matin, je vous conseille de supprimer des "de" et ajouter des "de", changer des "et" en "en", etc.

        [^]Re: bootstrapping myself

        Posté par Axioplase Ashi (page perso, ) le 03/03/2008 à 11:10. (lien). Évalué à 4.

        Bien souvent, dans le monde Scheme/Lisp, on etudie en profondeur les interpretes dits "meta-circulaires" ou` les primitives du langages interprete' sont interpretees par les primitives correspondantes du langage hote. Pour peu qu'une semantique (souvent denotationelles) du langage hote soit connue, le bootstrap permet alors d'obtenir "a peu de frais" une semantique du nouveau langage. Et donc un support mathematique pour l'etude des proprietes de ce langage, de sa robustesse, de sa validite' conceptuelle.

        Et bien souvent, le but de la creation d'un langage est d'apporter de nouveaux concepts. Avec le bootstrap, une fois le concept cree, t'as plus qu'a l'utiliser ! Avoue qu'il serait dommage de creer un truc uber cool et de pas pouvoir en profiter dans l'application que tu developpes...

        --
        J'aime la liberté.
        J'aime BSD.
        • [^]Re: bootstrapping myself

          Posté par Sarcastic (Jabber id, ) le 03/03/2008 à 12:14. (lien). Évalué à 2.

          FOUTAISES !