Logiciel : 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.
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.
Arc : site officiel (1308 hits)
Le forum d'Arc (186 hits)
Le site de P. Graham (216 hits)
Versions expérimentales d'Arc (179 hits)
Le forum Hacker News, première application Arc (636 hits)
> Lire la dépêche (19 commentaires, moyenne: 4,7).
Vous avez demandé le commentaire #909473.




bootstrapping myself
> 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
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
> ...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
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
Avoir une grosse application trés tot pour faire de la validation...
[^]Re: bootstrapping myself
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
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
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
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
FOUTAISES !