Hay muchos desafíos que dicen "interpretar X", donde X es un lenguaje simple. En mi opinión, eso es demasiado aburrido. Para darle a todas las personas que postergan las cosas en Internet algo interesante que hacer, puede intentar hacer este desafío:
Reto
Elige un idioma $LANG
. $LANG
puede ser cualquier lenguaje de programación completo o un subconjunto completo de un lenguaje de programación. Tenga en cuenta que si omite una característica de su idioma $LANG
para la interpretación, no debe usarla para su propio programa, ya que su presentación también debe estar escrita $LANG
.
Escriba un compilador / intérprete para $LANG
escrito $LANG
. Puede utilizar todas las facilidades (incluidos eval
y amigos) de su idioma que están disponibles para escribir este compilador. Para hacer la tarea más desafiante, hay una restricción: su programa debe ser capaz de interpretar / compilar todos los programas válidos, $LANG
excepto su propio intérprete / compilador. Si ocurre que el programa a interpretar / compilar es su propio intérprete o compilador (independientemente del nombre del archivo), su programa debe hacer algo completamente ajeno a la funcionalidad de un intérprete o compilador (como barfing o impresión Hello, world!
).
Para hacer esta tarea aún más compleja, su programa no debe leer su propia fuente al compilar o interpretar.
Presupuesto
- Esta tarea es el código de golf. La presentación con la menor cantidad de caracteres que es correcta gana. En caso de empate, la solución que se presentó primero gana.
- Su programa / script debe leer el programa para ser interpretado desde un archivo. Puede codificar su ruta y nombre. Cuando se lee el archivo, puede compilar el archivo en otro archivo (que debe ser ejecutable en su sistema) o ejecutarlo directamente. Si
$LANG
carece de capacidades de lectura de archivos, puede elegir otra forma de leer el código que se ajuste$LANG
. No puede elegir$LANG
como un subconjunto de otro idioma pero con las capacidades de lectura de archivos eliminadas. - Se aplican las reglas habituales de código de golf. Es decir: su lenguaje personal de mascotas que creó solo para resolver este desafío está prohibido, si la solución se vuelve trivial al usarlo (como definir un programa de un solo carácter que implemente exactamente la solución). Se alienta el abuso de las reglas.