16 votes

Premier Lisp avec macros ?

Le Lisp original de McCarthy et un certain nombre d'incarnations ultérieures ne disposaient pas d'une fonction de macro comme celle dont nous disposons aujourd'hui dans Common Lisp, Clojure, Scheme, etc. C'est ce que je sais.

Cependant, je ne sais pas exactement comment les macros sont apparues, quelle(s) implémentation(s) les a(ont) eues en premier, et ce qui les a motivées. Des références à des articles et à des sources seraient idéales si vous le voulez bien.

13voto

Rainer Joswig Points 62532

En L'évolution de Lisp (PDF) :

Les macros semblent avoir été introduites dans Lisp par Timothy P. Hart en 1963 dans un court mémo AI du MIT [Hart, 1963]

Voir :

AIM-57 Auteur(s) : Timothy P. Hart

Définitions MACRO pour LISP

Octobre 1963

ftp://publications.ai.mit.edu/ai-publications/0-499/AIM-057.ps

ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-057.pdf

Dans LISP 1.5, des formes spéciales sont utilisées pour trois objectifs logiquement distincts : a) pour atteindre la liste, b) pour permettre aux fonctions d'avoir un nombre indéfini de fonctions [ ] d'être évalués. Les nouveaux interprètes LISP peuvent facilement répondre au besoin (a) en faisant de l'alist une entité de type SPECIAL ou de type APVAL. Les besoins (b) et (c) peuvent être remplacées par l'incorporation d'une MACRO dans define. Je propose un tel expandeur.

9voto

Aidan Cully Points 3611

John Shutt's Thèse de doctorat La première partie concerne l'histoire des lisps, y compris l'introduction des macros, je crois. Ce n'est pas tout à fait clair pour moi à la lecture, mais il semble qu'il affirme que les macros sont plus ou moins identifiées à un mouvement de "langages extensibles" (qui est indépendant de lisp), et que l'article de M.D. McIlroy de 1960, "Macro Extension Instructions of Compiler Languages", a été fondateur du mouvement des langages extensibles... ce qui implique que les macros ont été introduites dans la littérature académique en 1960.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X