ventajas tareas programar plantilla para gratis ejemplos descargar con automatizar aplicaciones aplicacion macros lisp scheme racket hygiene

macros - plantilla - programar tareas en android



Colección de grandes aplicaciones y programas usando macros (8)

Comprueba una de mis implementaciones favoritas de una API REST: el cliente de API Slack, que no está escrito en Scheme pero está en Racket.

octotep/racket-slack-api

Estoy muy interesado en Macros y estoy empezando a comprender su verdadero poder. Ayúdame a recopilar un gran uso de los macro sistemas.

Hasta ahora tengo estos constructos:

La coincidencia de patrones:

Andrew Wright y Bruce Duba. Patrón coincidente para Scheme, 1995

Relaciones en el espíritu de Prolog:

Dorai Sitaram. Programación en schelog http://www.ccs.neu.edu/home/dorai/schelog/schelog.html

Daniel P. Friedman, William E. Byrd y Oleg Kiselyov. El Schemer razonado. The MIT Press, julio de 2005

Matthias Felleisen. Transcribiendo Prolog en Scheme. Informe técnico 182, Universidad de Indiana, 1985.

Construcciones de bucle extensibles:

Sebastian Egner. Entendimientos ansiosos en Scheme: El diseño de SRFI-42. En Taller sobre Esquema y Programación Funcional, páginas 13-26, septiembre de 2005.

Olin Shivers. La anatomía de un ciclo: una historia de alcance y control. En la Conferencia Internacional sobre Programación Funcional, páginas 2-14, 2005.

Sistemas de clase:

PLT. PLT MzLib: manual de bibliotecas. Informe técnico PLT-TR2006-4-v352, PLT Scheme Inc., 2006. http://www.plt-scheme.org/techreports/

Eli Barzilay. Estafa. http://www.barzilay.org/Swindle .

Sistemas de componentes:

Ryan Culpepper, Scott Owens y Matthew Flatt. Abstracción sintáctica en interfaces de componentes. En Conferencia Internacional sobre Programación Generativa e Ingeniería de Componente, páginas 373-388, 2005

Comprobación de contrato de software

Matthew Flatt y Matthias Felleisen. Unidades: Módulos geniales para lenguajes CALIENTES En ACM SIGPLAN Conferencia sobre diseño e implementación de lenguajes de programación, páginas 236-248, 1998

Oscar Waddell y R. Kent Dybvig. Extendiendo el alcance de la abstracción sintáctica. En el Simposio sobre Principios de Lenguajes de Programación, páginas 203-215, 199

Generadores de Parser

Scott Owens, Matthew Flatt, Olin Shivers y Benjamin McMullan. Generadores Lexer y analizador en Scheme. En el Taller sobre Esquema y Programación Funcional, páginas 41-52, septiembre de 2004.

Herramientas para semántica de ingeniería:

Matthias Felleisen, Robert Bruce Findler y Matthew Flatt. Ingeniería semántica con PLT Redex. MIT Press, agosto de 2009.

Especi fi caciones de las transformaciones del compilador:

Dipanwita Sarkar, Oscar Waddell y R. Kent Dybvig. Un marco nanopass para la educación del compilador. Journal of Functional Programming, 15 (5): 653-667, septiembre de 2005. Educational Pearl.

Nuevas formas de ejecución

Servlets con continuaciones serializables Greg Pettyjohn, John Clements, Joe Marshall, Shriram Krishnamurthi y Matthias Felleisen. Continuaciones de la inspección general de la chimenea. En la Conferencia Internacional sobre Programación Funcional, páginas216-227, 2005.

Sistema de demostración de teoremas

Sebastian Egner. Entendimientos ansiosos en Scheme: El diseño de SRFI-42. En el Taller sobre Esquema y Programación Funcional, páginas 13-26, septiembre de 2005.

Extensiones del lenguaje base con tipos

Sam Tobin-Hochstadt y Matthias Felleisen. El diseño y la implementación del esquema mecanografiado. En el Simposio sobre Principios de Lenguajes de Programación, páginas 395-406, 2008.

pereza

Eli Barzilay y John Clements. Pereza sin todo el trabajo duro: combinando lenguajes perezosos y estrictos para la enseñanza. En Programación funcional y declarativa en educación, páginas 9-13, 2005.

Reactividad funcional

Gregory H. Cooper y Shriram Krishnamurthi. Incrustar flujo de datos dinámico en un lenguaje call-by-value. En el Simposio Europeo de Programación, 2006

Referencia:

Recopilado de la disertación de Ryan Culpepper


Culpepper & Felleisen, Fortifying Macros, ICFP 2010

Culpepper, Tobin-Hochstadt y Felleisen, Macrología avanzada y la implementación del esquema tipificado, Scheme Workshop 2007

Flatt, Findler, Felleisen, esquema con clases, mixins y rasgos, APLAS 2006

Herman, Meunier, Mejorando el Análisis Estático de Lenguajes Incorporados a través de la Evaluación Parcial, ICFP 2004


Esto no es particularmente preciso en la medida en que se extiende a través de un gran número de publicaciones muy antiguas, la mayoría de las cuales nunca he leído, pero IIRC grandes porciones del Common Lisp Object System y el Meta-Object Protocol *, pueden ser; son; o fueron inicialmente, construidos con macros ...

* Que componen en mi humilde opinión la programación de sistemas OO más avanzada jamás vista


No es un esquema, sino un dialecto de Lisp algo similar con un uso muy extenso de macros: http://www.meta-alternative.net/mbase.html

Hay macros que implementan varios tipos de coincidencia de patrones, listas de comprensión, varios generadores de analizadores (incluida una implementación de PEG / Packrat), Prolog incrustado, inferencia de visitantes ADT (como eliminar su repetición en Haskell), macros de sintaxis extensible, sistema de tipo Hindley-Milner, Esquema similar a macros de sintaxis, y muchos más. Algunas partes de esa funcionalidad se pueden portar potencialmente al Esquema, otras partes necesitan un sistema macro ampliado con contexto explícito.



Shivers, Carlstrom, Gasbichler & Sperber (1994 y más adelante) El manual de referencia de Scsh .

Tiene muchos buenos ejemplos del uso de macros para incrustar mini-idiomas en Scheme. Me introdujo en la técnica de definición de macros que citan implícitamente su argumento. Observe el uso de formularios de proceso, expresiones regulares y mini-idiomas tipo awk. Scsh es mi recomendación como punto de partida para jugar con macros.

Hilsdale y Friedman (2000) escribiendo macros en estilo de paso de continuación .

Muestra cómo las macros de reglas de sintaxis débiles pueden ser poderosas usando el estilo de continuación de paso. Da muchos ejemplos.

Flatt, Culpepper, Darais y Findler (enviado) Macros que funcionan juntos: enlaces de tiempo de compilación, expansión parcial y contextos de definición .

Proporciona una descripción general y una semántica del enfoque de las macros en el esquema Racket / PLT. No hay muchos ejemplos, pero creo que el documento tiene algo que estás buscando.


Here''s un ejemplo de un uso bastante impresionante de macros de esquema para crear sistemas robóticos eficientes escritos en un esquema


Agregaría "La biblioteca estándar Scheme en sí misma" a la lista. Mire el archivo boot-9.scm en la distribución boot-9.scm . Muchos de los formularios de Scheme más comúnmente utilizados - case , and , etc. - se definen allí como macros.