Code-Golf: Quel est le plus court programme qui compile et se bloque?
C'est un peu de plaisir. Pouvez-vous concevoir le plus court programme qui compile mais ne fait rien, mais immédiatement crash lors de l'exécution? C'est pourquoi, par "accident", nous voulons dire que le programme s'arrête avec une erreur (un vidage de la mémoire par exemple).
Est-il une langue qui se bloque plus rapide (7 caractères) que C à l'aide d'un compilateur gcc? [Je laisse cette réponse pour quelqu'un à trouver.]
(Elle devrait être autorisée à utiliser les drapeaux de compilation. Sinon 7 ne serait pas de travail aujourd'hui, le compilateur vérifie est devenu beaucoup mieux.)
[l'évaluation des résultats] je suis incapable de marquer une seule réponse, parce qu'il y a plusieurs bonnes pour plusieurs langues. Il ne serait pas juste de disqualifier une réponse pour un autre. Veuillez utiliser les votes pour choisir les meilleures réponses.
- Qu'entendez-vous par "plante"? A-t-elle à provoquer une erreur, peut-il obtenir stuct dans une boucle infinie? Ou faut-il prendre l'ensemble de la machine vers le bas?
- Vous ne pouvez pas écrire valide d'un programme C en 7 caractères en tout.
- C'est une vraie question - c'est un code-golf
- Code-Golf est discuté au meta <a href="meta.stackexchange.com/questions/24242/...>
- Ne pas suivre le Code-les règles du Golf...
- Dupe de stackoverflow.com/questions/62188/stack-overflow-code-golf après tout, un débordement de pile est une forme de plantage de la droite?
- Je l'aime; un code de golf autour de quelque chose d'autre que le formatage de sortie (même si pas parfaitement définies).
- veuillez préciser comment il pourrait être amélioré pour suivre les règles de plus près (il ne savait pas à propos de gode-golf avant de poster cette question) @RCIX: DONC, serait une solution valable, mais pas le seul.
- Les points de Bonus pour prendre vers le bas l'ensemble du réseau.
Vous devez vous connecter pour publier un commentaire.
Bah je peux crash C en 5 caractères:
Il déclare implicitement
int
variable appelée "main".C'est global, la variable a une valeur initiale de
0
.C'est C les noms ne sont pas décorés de sorte que le linker ne réalisent pas que c'est une variable et non une fonction.
GCC m'a donné un avertissement, mais c'est tout.
valgrind: the 'impossible' happened: ...
Crash avec
0
caractères:Je me demande si ce compte...
C'est en JavaScript. Cela donne à la runtime d'erreur "objet non trouvé". JavaScript est un langage dynamique, du point de vue syntaxique c'est vraiment bon. Se sent encore comme tordre les règles. 😛
someVar;
ne pas vraiment faire quelque chose d'utile, mais la variable est évalué et il fait partie de la spécification.a()
(function{…})()
, parce que si quelque chose semicolonless est avant la première accolade, javascript, appel à la fonction en tant qu'argument. donc préfixe des accolades ou des crochets qui commencent leurs lignes avec des points-virgules, et laisser tous les autres.à l'aide de python:
a
va se planter avec une NameError.x
? NameError est juste une exception, la syntaxe est valide.X86 code machine: 1 octet
De invite de cmd sous windows de créer le fichier a.com contenant des octets F4, x86 arrêter instruction:
Le PROCESSEUR NTVDM a rencontré instruction illégale
Perl
mourir
a()
Commodore 64 de BASE:
ou plus courte (à l'aide de PETSCII graphique-char raccourcis):
(crash: $02 code d'opération non valide sur MOS/CSG6510). En fait, il peut être fait dans les 7 octets (3-instructions):
Si vous êtes dans une boutique d'informatique qui a TI-89s, vous pouvez planter un en tapant ceci dans:
(8 zéros)
Il donnera, "illegal Instruction". Appuyez sur la 2e+Gauche+Droite+pour réinitialiser le calc.
Si vous voulez avoir plus de plaisir, ce faire:
Qui lance l'caché de test du matériel de menu, y compris les tests de mémoire, écran LCD tests (dessine des damiers et coll.) et de plus en plus. Malheureusement, la barre d'état est effacée, et rien dans le calc OS le tire en arrière, de sorte à nettoyer après vous, réinitialiser en suivant les instructions ci-dessus, ou de le faire:
Exec
ing peu près tout ce qui n'est pas valide.Brainf*ck
5 caractères
Il va prendre un certain temps, mais finalement, le programme sera à court de mémoire et inévitablement crash.
Facteur (ou en arrière)
"Data stack underflow"
Comment sur
java Z
? Si aucun fichier existe, il sera "crash" avec unjava.lang.NoClassDefFoundError
. Donc, ma réponse est zéro lettres. Si ce n'est pas valide alors...Serait "crash" avec
$ java T
Exception in thread "main" java.lang.NoSuchMethodError: principaux
Si vous voulez quelque chose qui fonctionne actuellement, alors si vous êtes prêt à l'abus des choses un peu
D'autre
pour citer cette réponse:
En C, 20 caractères:
Mise à jour: Proposé par le roe, le 15 caractères:
Remarque: Testé avec VC++ 2008.
main(){return main();}
" est bien.main(){main();}
" je suppose, ça va donner un avertissement au sujet d'atteindre la fin de non-nulle de la fonction si.x(){...}
est parfaitement valide pourint x(void) {...}
antérieures C normes. Il est donc valide C vertu de cette norme.return
déclaration dansmain()
, de sorte qu'il est invalide à nouveau 🙂return
, je pense.En retard, mais peu importe. PHP, 32 caractères.
donne
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 261900 bytes) in ...
Techniquement, je pourrais aussi le faire en 29 avec
Mais ce n'est pas aussi amusant que d'une récursion infinie. Que, et je ne pense pas que "undefined function" erreurs doivent être considérées comme "compiler" dans un langage de script, sinon:
serait la plus petite solution.
Aussi, au lieu de s'écraser, comment à ce sujet (comme un script) dépassant max de temps d'exécution? 8 caractères:
Mon original qui avait un
$i++
dans la troisième expression de la boucle for, mais parce que PHP traite tous les entiers signés, au lieu de déborder, il va juste négatif.Essayer cette assemblée:
bien sûr ajouter tous les autres déchets à compiler dans une application.
dans windows powershell:
Perl en seulement 2 caractères.
Régime:
Texte de remplissage pour rendre cela plus longtemps.
(1)
compile très bien mais crash immédiatement.'()
.()
comme'()
est bizarre dans le Schéma, bien que je crois qu'il est de tradition en LISP.()
est dénuée de sens. Viens de tester à nouveau, et il est maintenant marqué comme non valide la syntaxe (peut-être un bug ou un artefact d'une ancienne version) dans les deux programme et REPL.En QBasic:
(Au moins je pense ça va encore compiler et puis crash avec une division par zéro; cela fait quelques temps...)
En C, 33 caractères:
void
dans la déclaration de fonction... pas le meilleur mais.int x(void) {...}
commex() {...}
dans au moins C89, C++ est une autre histoire.Golfscript - 1 Char
Beaucoup d'opérateurs peuvent le faire, par exemple,
En Haskell.
main=main
(produit<<loop>>
GHC, au moins)main = error ""
F# 3 caractères
1/0
Ne compiler, mais donne un avertissement.
1/0
calculeInfinity
, à condition qu'il soit du type correct.Float
etDouble
va le faire, alors queInteger
va se plaindre (car il n'est pasFractional
et ne prend pas en charge/
), commeRational
(zéro parce que le dénominateur n'est pas autorisé).Float
etDouble
types d'exposition IEEE-comportement défini, ayantNaN
etInfinity
que possible des valeurs, et sont totalement incorrectes mathématiquement dans ce100000000000000000000000000000000000000 + 1.0 == 100000000000000000000000000000000000000
évalue àTrue
. 🙂Lua, 3 caractères
La division par zéro ne causent pas de problèmes en Lua, mais voici quelque chose de tout aussi court:
donne:
print(1/0) --> 1.#INF
sur Windows etprint(1/0) --> inf
sur Linux.F#, 11 personnages
Compile sans avertissement. Les accidents avec:
Système.InvalidCastException: Impossible de convertir l'objet de type 'System.Int32' type 'de Microsoft.FSharp.De base.L'unité'.
PostScript, 1 caractère
Comme GolfScript:
Syntaxiquement juridique, mais se bloque lors de l'exécution, car le jeton
*
n'est pas définie (autre raison que pourquoi GolfScript se bloque).return 1/0
?return 1/(0,0);
🙂Il dépend de la permis à max taille de la pile d'un thread. Mais il ne crash lors de la compilation à l'aide de VC9:
Perl
3 caractères
Produit:
(toujours à la recherche de quelque chose qui va le faire en deux..)
perl -c
vérifie. L'erreur est une erreur d'exécution, et Perl juste utilement identifie l'emplacement dans le programme pour vous.&a
stackoverflow.com/questions/1770427/Crash-Perl-in-2-chars/...C#, 37 caractères
Explose pile.
Befunge, 1 caractère
rythme RCIX, plusieurs réponses du plus court programme de débordement de la pile Quel est le plus court code de provoquer un débordement de pile? s'appliquent également; le plus court est le befunge programme:
PS: Golfscript, pas de réponse courte
Il semble golfscript http://www.golfscript.com/ est mauvais à cela: j'ai supposé qu'il y aurait un seul personnage à la pile ou stack underflow-débordement, mais il semble conçu pour ne pas se bloquer. J'espère que quelqu'un qui connaît le mieux la langue de remplir plus de détails.
0 Octets
À l'aide de l'A86, vous pouvez avoir un zéro de la taille du fichier source!
À l'aide de l'invite de commande DOS:
Groovy 3 caractères
Produit
MSNA
mov al, [0]