Quiero hacer algunas metaprogramaciones en un lenguaje estáticamente tipado, donde se escribirán mis programas y mis metaprogramas. Quiero decir esto en un sentido fuerte: si mi generador de programas se compila, quiero que el sistema de tipos sea lo suficientemente fuerte como para que solo se puedan generar programas de tipo correcto.Lenguajes de metaprogramación mecanografiados
Por lo que sé, solo metaocaml puede hacerlo. (No, ni las plantillas de Template Haskell ni las de C++ se ajustan a la factura; consulte this paper). Pregunta: ¿qué otros idiomas/sistemas permiten esto?
EDITAR: Por lo que yo sé, metaocaml está muerto. Oleg tried to resurrect it, pero eso todavía está atascado varias versiones detrás de OCaml. Si uno quiere ir con lenguajes experimentales (es decir, incluso más que metaocaml, parece que Ur y muy posiblemente Idris se ajustaba perfectamente. Cualesquiera otras nuevas entradas al campo?
¿Hay alguna pregunta? – Ken
@Ken: sí, dame idiomas/sistemas que lo permitan. Editaré la pregunta (aunque veo que 2 contestadores me entendieron perfectamente). –
Tenía la intención de comentar, con respecto a TH, que [este tema apareció en la lista de correo de Haskell-cafe] (http://www.haskell.org/pipermail/haskell-cafe/2010-April/075753.html) un poco mientras estaba de vuelta, pero después de encontrar el hilo parece que, por razones obvias, no proporciona ayuda para responder a esta pregunta ... –