Don*_*ohe 41 programming-languages code-golf
这有点儿有趣.你可以设计一个最短的程序,它可以编译但什么都不做,但在执行时会立即崩溃?因此,"崩溃"意味着程序因错误条件(例如核心转储)而停止.
是否有一种语言使用gcc编译器比C语言崩溃更快(7个字符)?[我留下这个答案供有人找.]
(应该允许使用编译器标志.否则7现在不能工作,编译器检查变得更好.)
[结果评估]我无法标记单个答案,因为多种语言有多个正确答案.将一个答案换成另一个答案是不公平的.请用投票选出最佳答案.
Aar*_*ron 128
Bah - 我可以用5个字符崩溃C:
main;
Run Code Online (Sandbox Code Playgroud)
这声明了一个int名为'main' 的隐式变量.它是全局的,因此变量的初始值为0.它是C,名称没有被装饰 - 所以链接器没有意识到它是var而不是函数.
海湾合作委员会给了我一个警告 - 但就是这样.
$ gcc crash.c
crash.c:1: warning: data definition has no type or storage class
$ ./a.exe
Segmentation fault (core dumped)
$
Run Code Online (Sandbox Code Playgroud)
Joh*_*itb 67
与0角色崩溃:
$ > golf.c
$ gcc -Wl,--defsym=main=0 golf.c
$ ./a.out
Segmentation fault
Run Code Online (Sandbox Code Playgroud)
Vil*_*lx- 49
我想知道这是否重要......
a
Run Code Online (Sandbox Code Playgroud)
这是JavaScript.这给出了"找不到对象" 的运行时错误.由于JavaScript是一种动态语言,从语法上讲这实际上是正确的.仍然感觉像扭曲规则.:P
Adr*_*son 47
使用python:
1/0
Run Code Online (Sandbox Code Playgroud)
小智 33
从Windows中的cmd提示符创建包含字节F4,x86暂停指令的文件a.com:
F:\>debug
-a 100
0BFD:0100 hlt
0BFD:0101
-r cx
CX 0000
:1
-n a.com
-w
Writing 00001 bytes
-q
F:\>a.com
Run Code Online (Sandbox Code Playgroud)
NTVDM CPU遇到了非法指令
Dig*_*oss 24
$ cat > crash.S
hlt
$ as -o crash.o crash.S
$ ld crash.o
ld: warning: cannot find entry symbol _start; defaulting to 0000000008048054
$ ./a.out
Segmentation fault
Run Code Online (Sandbox Code Playgroud)
Bra*_*ert 23
die
Run Code Online (Sandbox Code Playgroud)
Died at test line 1.
将LIST的值打印到STDERR并以$的当前值退出!(错误).
Her*_*nán 11
Commodore 64 BASIC:
poke 2,2:sys2
Run Code Online (Sandbox Code Playgroud)
或更短(使用PETSCII graphic-char快捷键):
pO2,2:sY2
Run Code Online (Sandbox Code Playgroud)
(崩溃:MOS/CSG6510上的02美元无效操作码).实际上它可以用7个字节(3个指令)完成:
lda #$02
sta $02
jmp $0002
Run Code Online (Sandbox Code Playgroud)
Joe*_*ams 11
如果您在拥有TI-89的计算机商店,可以通过在以下位置输入以下内容来崩溃:
Exec "00000000"
Run Code Online (Sandbox Code Playgroud)
(那是8个零)
它将产生"非法指令".按2nd + Left + Right + ON重置calc.
如果您想获得更多乐趣,请执行以下操作:
Exec "4E4A4E750000"
Run Code Online (Sandbox Code Playgroud)
这将启动隐藏的硬件测试菜单,包括内存测试,LCD测试(绘制棋盘等)等.不幸的是,状态栏被删除,并且calc的操作系统中没有任何内容将其拉回,因此要自行清理,按照上面的说明进行重置,或者执行以下操作:
Exec "307C56E670FF20C020C020C020C020C04E750000"
Run Code Online (Sandbox Code Playgroud)
Mar*_*off 10
+[>+]
Run Code Online (Sandbox Code Playgroud)
它需要一段时间,但最终程序将耗尽内存并不可避免地崩溃.
怎么样java Z?如果没有文件存在,它将"崩溃" java.lang.NoClassDefFoundError.所以我的回答是零信.如果那是无效的话......
class T{}
Run Code Online (Sandbox Code Playgroud)
将在线程"main"java.lang.NoSuchMethodError:main中使用$ java T Exception"崩溃"
如果你想要实际运行的东西,那么如果你愿意滥用一些东西
class T{static {int i =1/0;}}
Run Code Online (Sandbox Code Playgroud)
其他
class T{public static void main(String[]a){main(a);}}
Run Code Online (Sandbox Code Playgroud)
引用这个答案:
所有这些答案都没有Befunge?我打赌相当多,这是他们所有人的最短解决方案:
Run Code Online (Sandbox Code Playgroud)1不开玩笑.亲自尝试:http: //www.quirkster.com/js/befunge.html
编辑:我想我需要解释一下.1操作数将1推入Befunge的内部堆栈,缺少任何其他内容将其置于语言规则下的循环中.
使用提供的解释器,你最终 - 我的意思是最终 - 达到了一个点,其中代表Befunge堆栈的Javascript数组变得太大而浏览器无法重新分配.如果你有一个简单的Befunge解释器,它有一个较小的有限堆栈 - 就像下面大多数语言一样 - 这个程序会更快地引起更明显的溢出.
在C中,20个字符:
void main(){main();}
Run Code Online (Sandbox Code Playgroud)
更新:建议由roe,15个字符:
main(){main();}
Run Code Online (Sandbox Code Playgroud)
注意:使用VC++ 2008进行测试.
迟到了,不管怎样.PHP,32个字符.
$r=function($z){$z($z);};$r($r);
Run Code Online (Sandbox Code Playgroud)
给 Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 261900 bytes) in ...
从技术上讲,我也可以在29岁时完成
$r=function($z){$z();};$r(0);
Run Code Online (Sandbox Code Playgroud)
但这并不像无限递归那么有趣.那,我不认为"未定义的函数"错误应该算作脚本语言中的"编译",否则:
Z();
Run Code Online (Sandbox Code Playgroud)
将是最小的解决方案.
而且,而不是崩溃,如何(作为一个脚本)超过最大执行时间?8个字符:
for(;;);
Run Code Online (Sandbox Code Playgroud)
我的原始$i++内容在for循环的第三个表达式中有一个,但是因为PHP将所有整数视为有符号,而不是溢出,它只是消极.
| 归档时间: |
|
| 查看次数: |
10636 次 |
| 最近记录: |