Su desafío: escriba un "programa", para un idioma de su elección, que haga que el compilador / intérprete / tiempo de ejecución produzca una salida de error al compilar / ejecutar su programa que sea idéntico al código fuente de su programa.
Reglas:
- Su programa puede ser específico para una versión o implementación particular del entorno de compilación / interpretación / tiempo de ejecución de su idioma. En caso afirmativo, especifique los detalles.
- Solo se permiten las opciones estándar de compilador / intérprete / tiempo de ejecución. No puede pasar una bandera extraña a su compilador para obtener un resultado específico.
- El programa no necesita ser sintácticamente o semánticamente válido, pero puedo dar una recompensa por la mejor presentación sintácticamente válida.
- El programa no debe producir ninguna salida propia (por ejemplo, llamando a una función de impresión o salida). Todos los resultados generados al intentar compilar / ejecutar el programa deben originarse desde el compilador / intérprete / runtime.
- El resultado completo del compilador / intérprete / tiempo de ejecución debe ser exactamente idéntico al código fuente de su programa.
- El compilador / intérprete / runtime debe generar al menos un mensaje de error cuando se invoca con su programa.
Este es un concurso de popularidad . La respuesta más creativa, según lo determinado por los votos positivos, gana. Si puede dar un buen caso para usar una escapatoria estándar, puede hacerlo.
popularity-contest
quine
error-message
nneonneo
fuente
fuente
Error: Could not find or load main class Q
Respuestas:
Ed (1 byte)
Todas las otras soluciones hasta ahora son largas y feas. Supongo que eso se debe a la naturaleza de la mayoría de los mensajes de error. Pero un buen mensaje de error es elegante en su simplicidad. Para eso, no busques más que ed.
Guarde esto en un archivo llamado
edscript
y ejecute coned < edscript
o ejecuteed<<<?
. El resultado:El signo de interrogación se escribe en stderr y ed devuelve 1, por lo que en realidad es un mensaje de error. Me pregunto por qué ed no es muy popular.
Falso (0 bytes)
Corre con
false filename
. Escribe el código fuente del programa (es decir, nada) en stderr y devuelve 1. Por supuesto, llamar falso a un lenguaje de programación es cuestionable, y el cero byte quine no es original, pero pensé que podría agregarlo. Probablemente hay algún intérprete para un idioma que no imprime mensajes de error y podría reemplazar falso.Ahora desearía que esto fuera código golf.
fuente
Símbolo del sistema de Windows
fuente
|
también funciona con .CoffeeScript, sintácticamente válido
Según lo probado en su sitio web usando Chrome o Firefox.
Puede reemplazarlo
defined
por cualquier cosa que no sea una variable incorporada, pero pensé que esta versión era divertida. Desafortunadamente,undefined is not defined
en particular no funciona como una quine.En CoffeeScript esto ni siquiera es un error de sintaxis, porque se compila. Esto es técnicamente un error de tiempo de ejecución en JavaScript, aunque aburrido. CoffeeScript es un candidato probable para producir algunos errores de tiempo de ejecución más interesantes porque muchas frases divertidas son códigos válidos. Por ejemplo, el ejemplo anterior se compila a
fuente
defined
es pordefined
itiondefined
. ¿Qué ... cómo ...?Undefined is not defined
(con mayúsculaU
) parece funcionar jajajaPitón
Spyder
Bueno, una solución bastante trivial para el Spyder IDE es plantear a
SyntaxError
.Código y salida idéntica:
(Python 2.7.8 con Spyder 2.2.5)
Terminal
Una solución alternativa para Python comenzó con problemas en la línea de comandos con una sangría inesperada.
Mando:
Código y salida idéntica:
ideone.com
En ideone.com una solución podría ser la siguiente. (¡Intentalo!)
Código y salida idéntica:
(Esto es para Python 2. Un ejemplo para Python 3 es trivial pero con 15 líneas de "código" bastante largas).
Enfoque general:
¿Cómo crear su propia solución en 2 minutos?
¡Apuesto a que tal procedimiento termina bastante rápido en la mayoría de los casos!
fuente
SyntaxError: invalid syntax
produce lo mismo también :)> <> - 25 bytes
En Fish, cualquier instrucción incorrecta genera el error: "algo huele a pescado ...". Como s no es un comando válido, se produce un error de inmediato.
fuente
something smells fishy...
, pero estáSomething smells fishy...
en el intérprete en línea. Depende del intérprete.Windows .EXE, 248 bytes
No realmente. Guardar como
quine.txt
, luego renombrar aquine.exe
(o descargarlo aquí ):fuente
Espacio en blanco
Primero pensé que esto es claramente imposible. Pero en realidad es trivial también. -.-
Intentalo.
Sí, mi primer programa de espacios en blanco! ;)
fuente
Pollo
fuente
JavaScript
Dado que diferentes navegadores usan diferentes compiladores de JavaScript, producen diferentes mensajes. Estas son, sin embargo, soluciones bastante triviales.
V8 (Chrome 36 / Node.js)
SpiderMonkey (Firefox 31)
Chakra (Internet Explorer 11)
fuente
jsc
::Exception: SyntaxError: Unexpected identifier 'identifier'
DCommodore 64 Basic
Cuando se ejecuta en el emulador de su elección (o un Commodore 64 real), produce
Este es, de hecho, un programa de una línea válido sintácticamente. El signo de interrogación es un acceso directo para
PRINT
,SYNTAX
yERROR
son nombres de variables válidos. El error se produce porque el analizador se confunde con la subcadenaOR
enERROR
.fuente
Microsoft Excel
Fórmula:
#DIV/0!
Mensaje de error:
#DIV/0!
Para ingresar una fórmula sin usar un signo igual, vaya a Opciones de Excel / Avanzado / Configuración de compatibilidad de Lotus y habilite la Entrada de fórmula de transición.
fuente
#REF!
Golpe (32)
Guardar como archivo llamado
x
:Cuando se ejecuta:
fuente
Error de compilación de Java 8 quine (12203 bytes)
Generado en windows + mingw con java 1.8.0_11 jdk, usando este comando:
Puede que no sea el más corto, puede que tampoco sea el más largo, más una prueba de concepto. Funciona porque la salida de error muestra como máximo 100 errores.
fuente
ArnoldC
Pegue el código en este compilador .
fuente
IT'S SHOWTIME
de hecho, está en la primera líneaTrumpScript: hacer PPCG genial de nuevo ( TrumpScript )
Al intentar ejecutar este lenguaje en una PC con Windows, la salida es siempre:
Entonces, cuando ejecuta este programa:
Ni siquiera lo analizará porque falla la comprobación del sistema operativo y aparece el mensaje de error. También se pueden dar ejemplos para Mac si alguien los quiere, jaja. Dios, he querido usar esto en PPCG por un tiempo ahora, bueno que finalmente llegue.
Lista completa de errores que pueden desencadenarse utilizando especificaciones ambientales:
https://github.com/samshadwell/TrumpScript/blob/master/src/trumpscript/utils.py
Respuesta adicional: ArnoldC ( ArnoldC )
ArnoldC requiere declaración raíz de
IT'S SHOWTIME
significadomain()
, por lo tanto:Resultados en el único mensaje de error en ArnoldC ...
Lo cual, en realidad es ... hilarante. Tienes que ejecutarlo de forma no detallada aunque sin rastros de pila.
fuente
Intérprete de máquina Z
Prueba contra este popular intérprete . También hay algún tipo de juego mayormente inofensivo alojado allí.
fuente
Julia 0.2.0
Otro error de sintaxis se encontró iterativamente hasta que se alcanzó un punto fijo:
fuente
Mathematica
A
.
en Mathematica significa un punto decimal o una funciónDot
. En este caso,.
aparece al final de una expresión y no se puede interpretar.fuente
C
Apliqué el método de copiar repetidamente los mensajes de error a la fuente. Converge en 2 ciclos. Compilado en OSX 10.9 con 'cc -c error.c'.
Nota: Esto no es tanto una respuesta como una metodología para obtener una. El resultado puede cambiar según su sistema operativo o la versión de cc que esté utilizando.
El método exacto para obtener el resultado es ejecutar las instrucciones.
repetidamente hasta que la salida deja de cambiar.
fuente
cc -c error.c 2>out
y luegomv out error.c
. Y con la versión de cc que tengo hoy, toma algunas iteraciones más.cc
; de lo contrario, no es válido y debe eliminarse según las pautas de la comunidad.C ++ (g ++)
El archivo debe guardarse como
1.pas
.fuente
INTERCALL , 90 bytes
Incluye una nueva línea al final. Tenga en cuenta que esto no es STDERR, pero muchos lo consideraron un error, por lo que lo publiqué aquí.
Este es el "encabezado obligatorio":
fuente
GHCi (un intérprete / shell de Haskell)
Uso:
Escriba el código en un archivo llamado Código y cárguelo con GHCi.
Un hecho agradable es que, si las palabras fueran identificadores reales, esta sería una expresión legal (siempre y cuando se verificara). Esto se debe básicamente al hecho de que
:
es un operador integrado,.
se usa para nombres calificados por módulos y se utiliza un espacio en blanco para denotar la aplicación de funciones.fuente
.
No es un operador aquí. Es parte de un nombre calificado. ¿Para qué versión de GHCi es esto?Ruby 2 en Windows
Código:
El código se encontró probando e iterando el proceso una y otra vez hasta llegar a un punto fijo. El código debe estar dentro del archivo
"error.rb"
.Manifestación:
fuente
Applescript (en Script Editor)
fuente
AppleScript
Tanto
A
yidentifier
pueden ser identificadores, por lo AppleScript dice que no.fuente
C (gcc)
Compilar con
gcc -Wfatal-errors error.c
.fuente
CJam 0.6.2
Pruébalo en línea.
fuente
BBC Basic, 7 bytes (o 0 bytes)
Esta es una entrada válida de 7 bytes:
Este es el mensaje de error producido por el intérprete cuando es completamente incapaz de darle sentido al código.
Por otro lado, esto no es:
Esta es una palabra clave válida en BBC Basic que se supone que introduce deliberadamente un error de un código específico en el programa, pero la sintaxis es incorrecta (no se proporciona ningún código). Por lo tanto, regresa
Syntax error
(que a su vez regresaMistake
cuando se ejecuta).En general, el procedimiento descrito por Falko en su respuesta conduce a
Mistake
BBC basic. Hay algunas excepciones. todo lo que produce los erroresDATA not LOCAL
oON ERROR not LOCAL
conduce a la famosa quine de cero bytes: un código fuente vacío produce un archivo vacío.Dado que la mayoría de los mensajes de error en BBC basic son minúsculas (y, por lo tanto, no son palabras clave válidas), estoy bastante seguro de que cualquier entrada no válida en última instancia conducirá a una de estas posibilidades.
fuente
CoffeeScript
Falla en el primer error, por lo que es bastante fácil de hacer:
Manifestación
fuente
Adelante
Pruébalo aquí
Esto fue sorprendentemente fácil de inventar.
fuente