Faites une erreur quine!


104

Votre défi: rédiger un "programme", pour la langue de votre choix, qui oblige le compilateur / interprète / runtime à produire une erreur lors de la compilation / exécution de votre programme, qui est identique au code source de votre programme.

Règles:

  • Votre programme peut être spécifique à une version ou à une implémentation particulière de l'environnement de compilation / interpréteur / exécution de votre langage. Si oui, veuillez préciser les détails.
  • Seules les options standard du compilateur / interprète / runtime sont autorisées. Vous ne pouvez pas transmettre d'indicateur étrange à votre compilateur pour obtenir un résultat spécifique.
  • Le programme n'a pas besoin d'être valide du point de vue de la syntaxe ou de la sémantique, mais je peux donner une prime à la meilleure soumission syntaxiquement valide.
  • Le programme ne doit produire aucune sortie en soi (par exemple, en appelant une fonction d'impression ou de sortie). Toutes les sorties générées lors de la tentative de compilation / exécution du programme doivent provenir du compilateur / interprète / runtime.
  • La sortie complète du compilateur / interprète / runtime doit être exactement identique au code source de votre programme.
  • Le compilateur / interprète / runtime doit générer au moins un message d'erreur lorsqu'il est appelé avec votre programme.

C'est un concours de popularité . La réponse la plus créative, déterminée par les votes positifs, l'emporte. Si vous pouvez donner un bon cas d'utilisation d' une échappatoire standard, vous pouvez le faire.


7
Qu'est-ce qu'une " sortie d'erreur "? Et que signifie " générer un message d'erreur "? Plus spécifiquement: 1) La sortie doit-elle être en stderr? 2) Si le runtime enregistre une erreur dans syslog et n’écrit rien dans stderr, qu’est-ce qui devrait être comparé à la source du programme? 3) Si le runtime lève une exception en interne quand un programme vide lui est attribué, mais nécessite un drapeau pour réellement imprimer l'exception et termine donc avec un code de sortie non nul mais sans sortie, un message d'erreur a-t-il été généré?
Peter Taylor

1
J'ai essayé de le faire en java et j'ai eu un oscillateur p3. Ce fut la phase la plus courte: (Compile depuis q.java):Error: Could not find or load main class Q
SuperJedi224

2
Ha, à cause d'une ambiguïté syntaxique dans la première phrase, je pensais que le défi ici était de produire un programme qui ne produit normalement pas de sortie, mais si vous lui passez son propre code en entrée, cela produira une erreur.
Steve Bennett

2
Lors du signalement d'une erreur, APL imprime toujours un nom d'erreur personnalisable, éventuellement un message d'erreur, le nom du programme qui a provoqué l'erreur, le numéro de la ligne (entre crochets) où l'erreur s'est produite, la ligne de code qui a provoqué l'erreur et un une ligne avec un curseur indiquant l'endroit où l'analyse s'est arrêtée. Tout espoir de participation ici?
Adám

1
@SteveBennett Pourquoi n'avez-vous pas encore relevé ce défi?
CalculatriceFeline

Réponses:


117

Ed (1 octet)

Jusqu'à présent, toutes les autres solutions sont longues et laides. Je suppose que cela est dû à la nature de la plupart des messages d'erreur. Mais un bon message d'erreur est élégant dans sa simplicité. Pour cela, ne cherchez pas plus loin que ed.

?

Enregistrez ceci dans un fichier appelé edscriptet exécuté avec ed < edscript, ou exécuté ed<<<?. Le résultat:

?

Le point d'interrogation est écrit sur stderr et ed renvoie 1, il s'agit donc d'un message d'erreur. Je me demande pourquoi ed n'est pas très populaire?

Faux (0 octet)

Courez avec false filename. Il écrit le code source (c'est-à-dire rien) du programme dans stderr et renvoie 1. Bien sûr, appeler un langage de programmation faux est discutable, et la valeur de zéro octet n'est pas originale, mais je pensais pouvoir l'ajouter également. Il existe probablement un interpréteur pour une langue qui n’imprime aucun message d’erreur et qui pourrait remplacer false.

Maintenant, j'aimerais que ce soit du code golf.


12
Je parcourais la (longue) liste d'esolangs pour trouver une langue comme celle-ci. C'est la faiblesse de ce défi. Il ne s'agit pas d'écrire un programme intelligent, mais de choisir intelligemment la langue. : /
Ingo Bürk

23
@ IngoBürk Heureusement, il s'agit d'un concours de popularité, pas d'un golf.
moelleux

Le zéro sur 0 octets est également le même code que celui qui avait déjà remporté le prix du "pire abus des règles" décerné par l'IOCCC pour avoir rendu la quinine théoriquement la plus courte. Il y avait beaucoup d'erreurs de compilation, cependant, et c'était écrit en K & R C, pas en ISO C (qui est plus strict).
Isiah Meadows

6
@ IngoBürk De nombreux problèmes de la vie réelle concernent également le choix judicieux de la langue. : P
Sarge Borsch

2
@Mendeleev * Quine (Jusqu'à récemment, j'ai toujours mal interprété "quine" comme "quinine" pour une raison quelconque ...)
Isiah Meadows le


81

CoffeeScript, valide du point de vue de la syntaxe

Comme testé sur leur site web en utilisant Chrome ou Firefox.

ReferenceError: defined is not defined

Vous pouvez remplacer definedpar tout ce qui n'est pas une variable intégrée, mais j'ai trouvé cette version amusante. Malheureusement, undefined is not defineden particulier ne fonctionne pas comme une quine.

Dans CoffeeScript, ce n'est même pas une erreur de syntaxe, car il compile. C'est techniquement une erreur d'exécution en JavaScript, bien qu'ennuyeuse. CoffeeScript est susceptible de produire des quines d’erreurs d’exécution plus intéressantes car beaucoup de phrases amusantes sont du code valide. Par exemple, l'exemple ci-dessus est compilé pour

({
  ReferenceError: defined === !defined
});

2
definedest par definedition defined. Wha ... comment ...?
CalculatriceFeline

3
Undefined is not defined(avec un capital U) semble fonctionner lol
Shieru Asakoto

50

Python

Spyder

Eh bien, une solution plutôt triviale pour l'EDI Spyder est de lever un SyntaxError.

Code et sortie identique:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Applications/Spyder.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile
    execfile(filename, namespace)
  File "/Users/falko/golf.py", line 1
    Traceback (most recent call last):
                         ^
SyntaxError: invalid syntax

(Python 2.7.8 avec Spyder 2.2.5)


Terminal

Une solution alternative pour Python démarrée à partir de lignes de commande se heurte à un retrait imprévu.

Commander:

python golf.py

Code et sortie identique:

  File "golf.py", line 1
    File "golf.py", line 1
    ^
IndentationError: unexpected indent

ideone.com

Sur ideone.com, une solution pourrait être la suivante. (Essayez le!)

Code et sortie identique:

Traceback (most recent call last):

  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/py_compile.py", line 117, in compile
    raise py_exc
py_compile.PyCompileError: SyntaxError: ('invalid syntax', ('prog.py', 1, 22, 'Traceback (most recent call last):\n'))

(Ceci est pour Python 2. Un exemple pour Python 3 est trivial mais avec 15 lignes de "code" plutôt long.)


Approche générale:

Comment créer sa propre solution en 2 minutes?

  1. Ouvrez un nouveau fichier dans l'EDI de votre choix.
  2. Frappe ta tête contre le clavier devant toi.
  3. Compiler.
  4. Remplacez le code par le message d'erreur du compilateur.
  5. Répétez les étapes 3 et 4 jusqu'à ce que le code converge.

Je parie qu'une telle procédure se termine assez rapidement dans la plupart des cas!


6
Comme vous pouvez probablement le constater, j'utilise cette approche générale. Cela ne fonctionne pas lorsque le code copié augmente progressivement le nombre d'erreurs du compilateur. :-)
rink.attendant.6

9
@ rink.attendant.6: C'est à ce moment-là que nous avons besoin de nos connaissances approfondies en matière de génie logiciel. ;)
Falko

@ rink.attendant.6 Ou lorsque vous êtes envoyé en cercle. Essayez-le dans la fenêtre immédiate Excel-VBA.
Dennis Jaheruddin

45
J'ai fait les étapes 1, 2 et 3, mais je ne pouvais pas faire l'étape 4, le code Perl était parfaitement valide!
Rodolphito

Salut, que diriez-vous de cela dans l'IDE stock python, SyntaxError: invalid syntaxproduit la même chose aussi :)
Gurupad Mamadapur

42

> <> - 25 octets

something smells fishy...

Dans Fish, toute instruction erronée génère l'erreur: "quelque chose sent le poisson ...". Puisque s n’est pas une commande valide, il se trompe immédiatement.


10
Veuillez noter que le nom de la langue est> <>, qui est généralement prononcé "poisson".
Aaron

1
Et c'est vraiment "Quelque chose sent le poisson ..."
Conor O'Brien

3
@ CᴏɴᴏʀO'Bʀɪᴇɴ Sur l'interpréteur python, c'est bien le cas something smells fishy..., mais c'est Something smells fishy...sur l'interpréteur en ligne. Cela dépend de l'interprète.
Addison Crump

1
@VTCAKAVSMoACE Ah, merci.
Conor O'Brien


41

Windows .EXE, 248 octets

The version of this file is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need an x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher.

Pas vraiment. Enregistrez sous quine.txt, puis renommez quine.exe(ou téléchargez-le ici ):


38

Espace blanc

J'ai d'abord pensé que c'était clairement impossible. Mais en réalité, c'est aussi trivial. -.-

Fail: Input.hs:108: Non-exhaustive patterns in function parseNum'

L'essayer

Oui, mon premier programme d'espaces blancs! ;)


1
Peut-on même appeler cela un programme d'espaces?
V. Courtois

1
Est-ce un bug d'interprétation?
user253751


29

JavaScript

Puisque différents navigateurs utilisent différents compilateurs JavaScript, ils produisent différents messages. Ce sont cependant des solutions plutôt triviales.

V8 (Chrome 36 / Node.js)

SyntaxError: Unexpected identifier

entrez la description de l'image ici

SpiderMonkey (Firefox 31)

SyntaxError: missing ; before statement

entrez la description de l'image ici

Chakra (Internet Explorer 11)

Expected ';'

entrez la description de l'image ici


Dans jsc:: Exception: SyntaxError: Unexpected identifier 'identifier'D
applaudir

2
@ConfusedMr_C C'est un jeton étrange sur lequel s'étouffer.
SuperJedi224

@ SuperJedi224 Oui. Au moins, ça marche: P
clap

28

Commodore 64 Basic

?SYNTAX  ERROR

Lorsqu'il est exécuté sur l'émulateur de votre choix (ou sur un Commodore 64 actuel), produit

?SYNTAX  ERROR

En fait, il s’agit d’un programme monoligne à syntaxe valide. Le point d'interrogation est un raccourci pour PRINT, et SYNTAXet ERRORsont des noms de variables valides. L'erreur se produit parce que l'analyseur est confus par la sous-chaîne ORde ERROR.


5
Si l'analyseur devient confus et génère une erreur de syntaxe, cela ne le rend-il pas syntaxiquement non valide?
Martin Ender

4
@ MartinBüttner, cela dépend vraiment de l'autorité sur laquelle vous considérez la "syntaxe valide": la description du langage ou son implémentation.
Mark

16
Je vois, techniquement, la syntaxe est correcte, mais cela déclenche l’analyseur en raison d’un bogue d’une implémentation particulière?
Martin Ender

6
Plus ou moins, confondu par le fait qu'il n'y a qu'une seule mise en œuvre.
Mark

Nitpick: CBM BASIC imprime en fait deux espaces, pas un, entre "SYNTAX" et "ERROR". Malheureusement, je ne peux pas modifier cette réponse pour la corriger, car Stack Exchange impose un minimum stupide de 6 caractères pour les modifications.
Psychonaut

28

Microsoft Excel

Formule: #DIV/0!

Message d'erreur: #DIV/0!

Pour entrer une formule sans utiliser le signe égal, allez dans Options de compatibilité Excel / Avancé / Lotus et activez Saisie de formule de transition.


-2 octets:#REF!
Ingénieur Toast

19

Bash (32)

Enregistrer dans un fichier nommé x:

x: line 1: x:: command not found

Quand exécuté:

>> bash x
x: line 1: x:: command not found

19

Quine d'erreur de compilation Java 8 (12203 octets)

Généré sur windows + mingw avec java 1.8.0_11 jdk, en utilisant cette commande:

echo a > Q.java; while true; do javac Q.java 2> Q.err; if [ $(diff Q.err Q.java | wc -c) -eq 0 ]; then break; fi; cat Q.err > Q.java; done

Peut-être pas le plus court, peut-être pas le plus long non plus, plus une preuve de concept. Fonctionne car la sortie d'erreur affiche au plus 100 erreurs.

Q.java:1: error: class, interface, or enum expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:1: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:1: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:1: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:2: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:2: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:2: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:2: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:2: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:3: error: illegal start of type
^
^
Q.java:4: error: = expected
Q.java:1: error: <identifier> expected
 ^
Q.java:4: error: <identifier> expected
Q.java:1: error: <identifier> expected
      ^
Q.java:4: error: ';' expected
Q.java:1: error: <identifier> expected
       ^
Q.java:4: error: illegal start of type
Q.java:1: error: <identifier> expected
        ^
Q.java:4: error: = expected
Q.java:1: error: <identifier> expected
               ^
Q.java:5: error: '(' expected
Q.java:1: error: class, interface, or enum expected
 ^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:5: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:5: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:5: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:5: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:5: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:6: error: illegal start of type
                      ^
                      ^
Q.java:7: error: = expected
Q.java:1: error: <identifier> expected
 ^
Q.java:7: error: <identifier> expected
Q.java:1: error: <identifier> expected
      ^
Q.java:7: error: ';' expected
Q.java:1: error: <identifier> expected
       ^
Q.java:7: error: illegal start of type
Q.java:1: error: <identifier> expected
        ^
Q.java:7: error: = expected
Q.java:1: error: <identifier> expected
               ^
Q.java:8: error: '(' expected
Q.java:1: error: class, interface, or enum expected
 ^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:8: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:8: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:8: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:8: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:8: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:9: error: illegal start of type
                                 ^
                                 ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
 ^
Q.java:10: error: <identifier> expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
      ^
Q.java:10: error: ';' expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
       ^
Q.java:10: error: illegal start of type
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
        ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
               ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                       ^
Q.java:10: error: illegal start of type
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                               ^
Q.java:10: error: <identifier> expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                ^
Q.java:10: error: unclosed character literal
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                  ^
Q.java:10: error: ';' expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                    ^
Q.java:10: error: unclosed character literal
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                       ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                     ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                           ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                                      ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                                                 ^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:11: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:11: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:11: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:11: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:11: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:12: error: illegal start of type
                                      ^
                                      ^
Q.java:12: error: <identifier> expected
                                      ^
                                       ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
   ^
Q.java:13: error: ';' expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
      ^
Q.java:13: error: <identifier> expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
              ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
               ^
Q.java:13: error: ';' expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
                  ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
                               ^
Q.java:13: error: unclosed character literal
  (use -source 1.4 or lower to use 'enum' as an identifier)
                                   ^
Q.java:13: error: unclosed character literal
  (use -source 1.4 or lower to use 'enum' as an identifier)
                                        ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
                                                          ^
Q.java:14: error: <identifier> expected
Q.java:1: error: = expected
      ^
Q.java:14: error: ';' expected
Q.java:1: error: = expected
       ^
Q.java:14: error: illegal start of type
Q.java:1: error: = expected
        ^
Q.java:14: error: = expected
Q.java:1: error: = expected
               ^
Q.java:14: error: illegal start of type
Q.java:1: error: = expected
                 ^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
 ^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:15: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
          ^
Q.java:15: error: ';' expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:15: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:16: error: illegal start of type
                                           ^
                                           ^
Q.java:17: error: = expected
Q.java:2: error: <identifier> expected
 ^
Q.java:17: error: <identifier> expected
Q.java:2: error: <identifier> expected
      ^
Q.java:17: error: ';' expected
Q.java:2: error: <identifier> expected
       ^
Q.java:17: error: illegal start of type
Q.java:2: error: <identifier> expected
        ^
Q.java:17: error: = expected
Q.java:2: error: <identifier> expected
               ^
100 errors

17

ArnoldC

missing IT'S SHOWTIME on first line

Collez le code dans ce compilateur .


32
Ce qui IT'S SHOWTIMEest drôle, c’est qu’il est en fait en première ligne
Cyoce

2
Devrait faire un PR pour résoudre ce problème: P
Nick T

17

TrumpScript - Rendre PPCG encore une fois génial ( TrumpScript )

Lorsque vous essayez d'exécuter cette langue sur un PC Windows, le résultat est toujours le suivant:

Make sure the currently-running OS is not Windows, because we're not PC

Donc, lors de l'exécution de ce programme:

Make sure the currently-running OS is not Windows, because we're not PC

Il ne sera même pas analysé car l'échec de la vérification du système d'exploitation et le message d'erreur. Des exemples peuvent également être donnés pour Mac si quelqu'un les veut haha. Dieu, je voulais utiliser cela dans PPCG depuis un moment maintenant, bien que j'y arrive enfin.

Liste complète des erreurs pouvant être déclenchées à l'aide de spécifications environnementales:
https://github.com/samshadwell/TrumpScript/blob/master/src/trumpscript/utils.py


Réponse bonus: ArnoldC ( ArnoldC )

ArnoldC requiert une déclaration de racine de IT'S SHOWTIME, ce qui signifie main():

WHAT THE FUCK DID I DO WRONG

Résultats dans le seul message d'erreur dans ArnoldC ...

WHAT THE FUCK DID I DO WRONG

Ce qui est en fait ... hilarant. Vous devez l'exécuter de manière non commentée sans traces de pile.


9
Celles-ci devraient être deux réponses distinctes.
mbomb007

13

Interprète Z-machine

I don't know the word "know".

Testez contre cet interprète populaire . Il existe également une sorte de jeu essentiellement inoffensif hébergé ici.


12

Julia 0.2.0

Une autre erreur de syntaxe a été trouvée de manière itérative jusqu'à ce qu'un point fixe soit atteint:

ERROR: syntax: extra token "token" after end of expression

11

Mathematica

Syntax: "needed." is incomplete; more input is needed.

A .dans Mathematica signifie soit un point décimal, soit une fonction Dot. Dans ce cas, le .apparaît à la fin d'une expression et ne peut pas être interprété.


entrez la description de l'image ici


Je ne pensais pas que c'était possible.
ngenisis

9

C

J'ai appliqué la méthode de copie répétée des messages d'erreur à la source. Il a convergé en 2 cycles. Compilé sur OSX 10.9 avec 'cc -c error.c'.

error.c:1:1: error: unknown type name 'error'
error.c:1:1: error: unknown type name 'error'
^
error.c:1:6: error: expected identifier or '('
error.c:1:1: error: unknown type name 'error'
     ^
2 errors generated.

Remarque: Il ne s'agit pas vraiment d'une réponse, mais d'une méthodologie pour en obtenir une. Le résultat peut varier en fonction de votre système d'exploitation ou de la version de cc utilisée.

La méthode exacte pour obtenir le résultat est d'exécuter les instructions

$ cc -c error.c 2>out ; mv out error.c ; cat error.c

jusqu'à ce que la sortie cesse de changer.


J'ai retenté. Cela n'a pas fonctionné au début. Pour que cela fonctionne, vous devez exécuter cc -c error.c 2>outet ensuite mv out error.c. Et avec la version de cc que j'ai aujourd'hui, cela prend quelques itérations supplémentaires.
Florian F

Vous voudrez peut-être noter que dans votre réponse, cela nécessite une version spécifique d'OSX cc; sinon, il est invalide et doit être supprimé conformément aux directives de la communauté.
MD XF

@MDXF: Cela fonctionne avec clang. Voici un lien vers tio.run, 122 octets: tio.run/##S9ZNzknMS///Xy85PyVVryQzXy/…
G. Sliepen

8

C ++ (g ++)

Le fichier doit être enregistré sous 1.pas.

g++: error: 1.pas: Pascal compiler not installed on this system

4
Cela fonctionne-t-il toujours si le compilateur Pascal est installé sur le système?
SuperJedi224

@ SuperJedi224 Au moins, installer FreePascal n'aide pas. Je suppose que GNU Pascal est peut-être le bon compilateur Pascal, mais je n'ai pas essayé.
Jimmy23013

8

INTERCALL , 90 octets

Fatal error: A INTERCALL program must start with the mandatory header to prevent golfing.\n

Inclut une nouvelle ligne à la fin. Notez que ce n'est pas STDERR, mais comme beaucoup l'ont considéré comme une erreur, je l'ai posté ici.

C'est "l'en-tête obligatoire":

INTERCALL IS A ANTIGOLFING LANGUAGE
SO THIS HEADER IS HERE TO PREVENT GOLFING IN INTERCALL
THE PROGRAM STARTS HERE:

Le lien vers le repo est cassé.
connectyourcharger

@connectyourcharger Hm, on dirait qu'il n'y a plus de repo.
Erik l'Outgolfer

Ouais, les recherches sur Google ne donnent rien, à l'exception des pensions pour Intercal.
connectyourcharger

@connectyourcharger Pas besoin de; il n'y a que 8 pensions appelées "intercall" (insensibles à la casse), et aucune d'entre elles ne concerne la langue, donc il est prudent de dire que c'est parti pour de bon (non, il n'y a rien non plus dans la Wayback Machine).
Erik l'Outgolfer

8

GHCi (interprète / shell Haskell)

Code.hs:1:1: Parse error: naked expression at top level

Usage:

Ecrivez le code dans un fichier nommé Code et chargez-le avec GHCi.

Un fait intéressant est que, si les mots étaient de véritables identifiants, il s'agirait d'une expression légale (pour autant que cela revienne à une vérification de type). Cela est essentiellement dû au fait qu’il :s’agit d’un opérateur intégré, .utilisé pour les noms qualifiés de modules et d’espaces blancs pour désigner l’application de fonctions.


.n'est pas un opérateur ici. Cela fait partie d'un nom qualifié. Quelle est la version de GHCi?
dfeuer

@dfeuer ouais, ma mauvaise. N'hésitez pas à le réparer. La version ghci est probablement proche de ce qui était sorti à l'époque.
fier haskeller

7

Ruby 2 sur Windows

Code:

error.rb:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
error.rb:1: syntax error, unexpected tI...
          ^

Le code a été trouvé en testant et en itérant le processus encore et encore jusqu'à atteindre un point de réparation. Le code doit être à l'intérieur du fichier "error.rb".

Démo:

C:\>type error.rb
error.rb:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTR
ING_DBEG or tSTRING_DVAR or tSTRING_END
error.rb:1: syntax error, unexpected tI...
          ^

C:\>ruby.exe error.rb
error.rb:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTR
ING_DBEG or tSTRING_DVAR or tSTRING_END
error.rb:1: syntax error, unexpected tI...
          ^

7

Applescript (dans l'éditeur de script)

Syntax Error
A "error" can't go after this identifier.

entrez la description de l'image ici


8
c'est une erreur?
chat

L'article "A" apparaît avant les mots qui commencent par une consonne ou un son de consonne. Pour les mots commençant par une voyelle ou un son de voyelle, l’article correct est "an". Je suis juste en train de nidifier :)
Chat

1
@cat je vois. Oui, je n'ai jamais prétendu que la correction grammaticale est correcte :)
Digital Trauma,

7

AppleScript

Un identifiant ne peut pas aller après cet identifiant.

Les deux Aet identifierpeuvent être des identifiants, AppleScript dit non.

identifiants


21
ça devrait être un identifiant ... allez ...
chat

7

C (gcc)

error.c:1:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
 error.c:1:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
      ^
compilation terminated due to -Wfatal-errors.

Compiler avec gcc -Wfatal-errors error.c.



6

BBC Basic, 7 octets (ou 0 octet)

Ceci est une entrée valide de 7 octets:

Mistake

C'est le message d'erreur produit par l'interpréteur lorsqu'il est totalement incapable de comprendre le code.

Par contre, ce n'est pas:

ERROR

Il s'agit d'un mot clé valide dans BBC Basic qui est censé introduire délibérément une erreur d'un code spécifié dans le programme, mais la syntaxe est incorrecte (aucun code n'est donné.) Par conséquent, il retourne Syntax error(qui à son tour revient Mistakelorsqu'il est exécuté).

En général, la procédure décrite par Falko dans sa réponse conduit à Mistakela base de la BBC. Il y a quelques exceptions. tout ce qui produit les erreurs DATA not LOCALou ON ERROR not LOCALconduit au fameux zéro octet: un code source vide produit un fichier vide.

Étant donné que la plupart des messages d'erreur dans BBC basic sont en minuscule (et donc que les mots clés ne sont pas valides), je suis pratiquement sûr que toute entrée non valide mènera à l'une de ces possibilités.


5

CoffeeScript

Echoue à la première erreur, donc c'est assez facile à faire:

E:\foo.coffee:1:3: error: unexpected \
E:\foo.coffee:1:3: error: unexpected \
  ^

Démo

E:\>coffee -c foo.coffee
E:\foo.coffee:1:3: error: unexpected \
E:\foo.coffee:1:3: error: unexpected \
  ^

E:\>

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.