Seu desafio: escreva um "programa", para um idioma de sua escolha, que faça com que o compilador / intérprete / tempo de execução produza uma saída de erro ao compilar / executar seu programa, idêntico ao código-fonte do seu programa.
Regras:
- Seu programa pode ser específico para uma versão ou implementação específica do ambiente de compilação / intérprete / tempo de execução do seu idioma. Em caso afirmativo, especifique os detalhes.
- Somente opções padrão de compilador / intérprete / tempo de execução são permitidas. Você não pode passar algum sinalizador estranho para o seu compilador para obter um resultado específico.
- O programa não precisa ser válido sintaticamente ou semanticamente, mas posso oferecer uma recompensa ao melhor envio sintaticamente válido.
- O programa não deve produzir nenhuma saída própria (por exemplo, chamando uma função de impressão ou saída). Toda saída gerada ao tentar compilar / executar o programa deve ser originária do compilador / intérprete / tempo de execução.
- A saída completa do compilador / intérprete / tempo de execução deve ser exatamente idêntica ao código-fonte do programa.
- O compilador / intérprete / tempo de execução deve gerar pelo menos uma mensagem de erro quando chamado com o seu programa.
Este é um concurso de popularidade . A resposta mais criativa, conforme determinado pelos votos positivos, vence. Se você pode dar um bom argumento para usar uma brecha padrão, pode fazê-lo.
popularity-contest
quine
error-message
nneonneo
fonte
fonte
Error: Could not find or load main class Q
Respostas:
Ed (1 byte)
Todas as outras soluções até agora são longas e feias. Suponho que seja por causa da natureza da maioria das mensagens de erro. Mas uma boa mensagem de erro é elegante em sua simplicidade. Para isso, não procure mais do que ed.
Salve isso em um arquivo chamado
edscript
e executeed < edscript
ou executeed<<<?
. O resultado:O ponto de interrogação é gravado em stderr e ed retorna 1, portanto, essa é realmente uma mensagem de erro. Eu me pergunto por que ed não é muito popular?
Falso (0 bytes)
Corra com
false filename
. Ele grava o código-fonte do programa (ou seja, nada) no stderr e retorna 1. É claro que chamar uma linguagem de programação falsa é questionável, e o quine de zero byte não é original, mas achei que poderia adicioná-lo. Provavelmente existe algum intérprete para um idioma que não imprime mensagens de erro e possa substituir falso.Agora eu queria que isso fosse código de golfe.
fonte
Prompt de Comando do Windows
fonte
|
também.CoffeeScript, sintaticamente válido
Como testado em seu site usando o Chrome ou Firefox.
Você pode substituir
defined
por qualquer coisa que não seja uma variável interna, mas achei que esta versão era divertida. Infelizmente,undefined is not defined
em particular, não funciona como uma solução.No CoffeeScript, isso nem é um erro de sintaxe, porque é compilado. Tecnicamente, esse é um erro de tempo de execução no JavaScript, embora seja chato. O CoffeeScript é um candidato provável a produzir alguns quines de erro em tempo de execução mais interessantes, porque muitas frases engraçadas são códigos válidos. Por exemplo, o exemplo acima compila para
fonte
defined
é pordefined
itiondefined
. O que ... como ...?Undefined is not defined
(com um capitalU
) parece funcionar lolPitão
Spyder
Bem, uma solução bastante trivial para o Spyder IDE é aumentar a
SyntaxError
.Código e saída idêntica:
(Python 2.7.8 com Spyder 2.2.5)
terminal
Uma solução alternativa para Python partiu de lutas na linha de comando com um recuo inesperado.
Comando:
Código e saída idêntica:
ideone.com
No ideone.com, uma solução pode ser a seguinte. (Tente!)
Código e saída idêntica:
(Isto é para o Python 2. Um exemplo para o Python 3 é trivial, mas com 15 linhas de "código" bastante longas.)
Abordagem geral:
Como criar sua própria solução em 2 minutos?
Aposto que esse procedimento termina muito rapidamente na maioria dos casos!
fonte
SyntaxError: invalid syntax
produz a mesma coisa também :)> <> - 25 bytes
No Fish, qualquer instrução incorreta gera o erro: "algo cheira a peixe ...". Como s não é um comando válido, ele erros imediatamente.
fonte
something smells fishy...
, mas estáSomething smells fishy...
no intérprete online. Depende do intérprete.Windows .EXE, 248 bytes
Não mesmo. Salve como
quine.txt
e renomeie paraquine.exe
(ou faça o download aqui ):fonte
Espaço em branco
Primeiro, pensei que isso fosse claramente impossível. Mas, na verdade, é trivial também. -.-
Tente.
Sim, meu primeiro programa de espaço em branco! ;)
fonte
Frango
fonte
Javascript
Como navegadores diferentes usam compiladores JavaScript diferentes, eles produzem mensagens diferentes. Essas são, no entanto, soluções bastante triviais.
V8 (Chrome 36 / Node.js)
SpiderMonkey (Firefox 31)
Chakra (Internet Explorer 11)
fonte
jsc
::Exception: SyntaxError: Unexpected identifier 'identifier'
DCommodore 64 Basic
Quando executado no emulador de sua escolha (ou em um Commodore 64 real), produz
Este é, de fato, um programa de uma linha sintaticamente válido. O ponto de interrogação é um atalho para
PRINT
, eSYNTAX
eERROR
são nomes de variáveis válidos. O erro ocorre porque o analisador fica confuso pela substringOR
emERROR
.fonte
Microsoft Excel
Fórmula:
#DIV/0!
Mensagem de erro:
#DIV/0!
Para inserir uma fórmula sem usar um sinal de igual, acesse Opções do Excel / Avançado / Configurações de compatibilidade do Lotus e ative a Entrada da fórmula de transição.
fonte
#REF!
Bash (32)
Salvar como arquivo nomeado
x
:Quando executado:
fonte
Quine de erro de compilação Java 8 (12203 bytes)
Gerado no windows + mingw com java 1.8.0_11 jdk, usando este comando:
Pode não ser o mais curto, também não pode ser o mais longo, mais uma prova de conceito. Funciona porque a saída de erro mostra no máximo 100 erros.
fonte
ArnoldC
Cole o código neste compilador .
fonte
IT'S SHOWTIME
na verdade é na primeira linhaTrumpScript - Tornando o PPCG ótimo novamente ( TrumpScript )
Ao tentar executar esse idioma em um PC com Windows, a saída é sempre:
Então, ao executar este programa:
Ele nem será analisado porque a verificação do SO falha e você recebe a mensagem de erro. Exemplos também podem ser dados para o Mac, se alguém quiser, haha. Deus, eu queria usar isso no PPCG por um tempo agora, bom que finalmente cheguei.
Lista completa de erros que podem ser acionados usando detalhes ambientais:
https://github.com/samshadwell/TrumpScript/blob/master/src/trumpscript/utils.py
Resposta de bônus: ArnoldC ( ArnoldC )
ArnoldC requer declaração raiz de
IT'S SHOWTIME
, significadomain()
, portanto:Resultados na única mensagem de erro em ArnoldC ...
O que é realmente ... hilário. Você deve executá-lo de forma não detalhada, sem rastreamento de pilha.
fonte
Intérprete de máquina Z
Teste contra esse intérprete popular . Também há algum tipo de jogo inofensivo hospedado lá.
fonte
Julia 0.2.0
Outro erro de sintaxe foi encontrado iterativamente até que um ponto fixo fosse alcançado:
fonte
Mathematica
A
.
no Mathematica significa um ponto decimal ou funçãoDot
. Nesse caso, o.
aparece no final de uma expressão e não pode ser interpretado.fonte
C
Eu apliquei o método de copiar repetidamente as mensagens de erro na fonte. Convergiu em 2 ciclos. Compilado no OSX 10.9 com 'cc -c error.c'.
Nota: Esta não é uma resposta, é uma metodologia para obter uma. O resultado pode mudar dependendo do seu sistema operacional ou da versão do cc que você está usando.
O método exato para obter o resultado é executar as instruções
repetidamente até que a saída pare de mudar.
fonte
cc -c error.c 2>out
e depoismv out error.c
. E com a versão do cc que tenho hoje, são necessárias mais algumas iterações.cc
; caso contrário, é inválido e deve ser excluído de acordo com as diretrizes da comunidade.C ++ (g ++)
O arquivo deve ser salvo como
1.pas
.fonte
INTERCALL , 90 bytes
Inclui uma nova linha à direita no final. Observe que este não é o STDERR, mas foi considerado um erro de saída por muitos, então eu o publiquei aqui.
Este é o "cabeçalho obrigatório":
fonte
GHCi (intérprete / shell Haskell)
Uso:
Escreva o código em um arquivo chamado Code e carregue com o GHCi.
Um fato interessante é que, se as palavras fossem identificadores reais, isso seria uma expressão legal (contanto que fosse checar). Isso se deve basicamente ao fato de
:
ser um operador interno,.
usado para nomes qualificados pelo módulo e espaços em branco para indicar o aplicativo de funções.fonte
.
não é um operador aqui. Faz parte de um nome qualificado. Qual é a versão do GHCi?Ruby 2 no Windows
Código:
O código foi encontrado testando e repetindo o processo repetidamente até que um ponto de correção fosse alcançado. O código deve estar dentro do arquivo
"error.rb"
.Demo:
fonte
Applescript (no Editor de scripts)
fonte
AppleScript
Ambos
A
eidentifier
podem ser identificadores, então o AppleScript diz que não.fonte
C (gcc)
Compile com
gcc -Wfatal-errors error.c
.fonte
CJam 0.6.2
Experimente online.
fonte
BBC Basic, 7 bytes (ou 0 bytes)
Esta é uma entrada válida de 7 bytes:
Essa é a mensagem de erro produzida pelo intérprete quando ele é completamente incapaz de entender o código.
Por outro lado, isso não é:
Esta é uma palavra-chave válida no BBC Basic, que deve introduzir deliberadamente um erro de um código especificado no programa, mas a sintaxe está errada (nenhum código é fornecido.) Portanto, ele retorna
Syntax error
(que por sua vez retornaMistake
quando é executado).Em geral, o procedimento descrito por Falko em sua resposta leva à
Mistake
BBC básica. Há poucas exceções. qualquer coisa que produza os errosDATA not LOCAL
ouON ERROR not LOCAL
leve ao famoso zero byte quine: um código-fonte vazio produz um arquivo vazio.Dado que a maioria das mensagens de erro no básico da BBC são minúsculas (e, portanto, não são palavras-chave válidas), tenho certeza de que qualquer entrada inválida acabará por levar a uma dessas possibilidades.
fonte
CoffeeScript
Falha no primeiro erro, por isso é bastante fácil de fazer:
Demo
fonte
Adiante
Experimente aqui
Isso foi surpreendentemente fácil de criar.
fonte