Я предполагаю, что это - потому что Java является "реальным", т.е. языком общего назначения. Для создания апплета необходимо записать код, и нет никаких ярлыков.
Теперь, когда флэш-память и т.д. пришла, Вы можете в значительной степени просто Драп и отбрасывать Ваш путь посредством создания прохладной анимации для Вашего веб-сайта. Это - намного более низкий барьер для записи - Вы не должны знать, как программировать для получения работы анимации флэш-памяти. Таким образом, флэш-память распространяется, и апплеты Java едва больше используются.
Это зависит от допустимого максимального размера стека для потока. Но при компиляции с использованием VC9 происходит сбой:
int main()
{
int a[10000000];
return 0;
};
В QBasic:
? 1/0
(По крайней мере, я думаю , что он все равно будет компилироваться, а затем выйдет из строя с делением на ноль; это было довольно давно ... )
$ 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
Интересно, считается ли это ...
a
Это в JavaScript. Это дает ошибку времени выполнения «объект не найден». Поскольку JavaScript - динамический язык, синтаксически это действительно правильно. По-прежнему хочется нарушить правила. : P
В C, 20 символов:
void main(){main();}
Обновление: Предложено roe, 15 символов:
main(){main();}
Примечание: Протестировано с VC ++ 2008.
Как насчет java Z
? Если файл не существует, произойдет сбой с ошибкой java.lang.NoClassDefFoundError
. Так что мой ответ - ноль букв. Если это неверно, то ...
class T{}
"Вылетит" с $ java T Исключение в потоке "main" java.lang.NoSuchMethodError: main
Если вам нужно что-то, что действительно работает, тогда, если вы готовы немного злоупотребить
class T{static {int i =1/0;}}
Else
class T{public static void main(String[]a){main(a);}}
Попробуйте это в сборке:
push 0
ret
конечно добавьте весь остальной мусор для компиляции в приложение.
Golfscript - 1 Char
Многие операторы могут это делать, например,
*
(eval):1:in `initialize': undefined method `class_id' for nil:NilClass (NoMethodError) from ../golfscript.rb:285:in `call' from ../golfscript.rb:285:in `go' from (eval):1:in `initialize' from ../golfscript.rb:285:in `call' from ../golfscript.rb:285:in `go' from ../golfscript.rb:477
Деление на ноль не вызывает проблем в Lua, но здесь нечто столь же короткое:
a()
lua: isort.lua:1: attempt to call global 'a' (a nil value) stack traceback: a.lua:1: in main chunk [C]: ?
box 0 :?> unit
Компилируется без предупреждения. Вылетает с: System.InvalidCastException: невозможно преобразовать объект типа «System.Int32» к типу «Microsoft.FSharp.Core.Unit».
1/0
Компилируется, но выдает предупреждение.
1/0
Производит:
Illegal division by zero at crash.pl line 1.
(все еще ищу что-то, что сделает это за два ..)
Если вы вы находитесь в компьютерном магазине, в котором есть TI-89, вы можете вывести его из строя, набрав это:
Exec "00000000"
(это 8 нулей)
Это приведет к "Illegal Instruction". Нажмите 2nd + Left + Right + ON, чтобы сбросить вычисление.
Если вы хотите повеселиться, сделайте следующее:
Exec "4E4A4E750000"
Это запускает скрытое меню тестирования оборудования, включая тесты памяти, тесты LCD (рисует шахматную доску и др. ) и более. К сожалению, строка состояния стирается, и ничто в ОС calc не возвращает ее обратно, поэтому, чтобы очистить себя, выполните сброс в соответствии с приведенными выше инструкциями или выполните следующие действия:
Exec "307C56E670FF20C020C020C020C020C04E750000"
Из командной строки в Windows создайте файл a.com, содержащий байт F4, инструкцию остановки x86:
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
ЦП NTVDM обнаружил недопустимую инструкцию
die
Died at test line 1.
выводит значение LIST в STDERR и завершает работу с текущим значением $! (errno).
Commodore 64 BASIC:
poke 2,2:sys2
или короче (с использованием ярлыков с графическими символами PETSCII):
pO2,2:sY2
(сбой: недопустимый код операции $ 02 на MOS / CSG6510). На самом деле это можно сделать в 7 байтах (3 инструкции):
lda #$02
sta $02
jmp $0002
процитировать этот ответ :
Все эти ответы и никакого Befunge? Я бы ставить справедливую сумму, это самый короткий решение их всех:
1
Не шучу. Попробуй сам: http://www.quirkster.com/js/befunge.html
РЕДАКТИРОВАТЬ: Думаю, мне нужно это объяснить один. Операнд 1 помещает 1 в Внутренний стек Befunge и отсутствие чего-либо еще помещает это в цикл в соответствии с правилами языка.
Используя предоставленного переводчика, вы в конце концов - и я имею в виду в конце концов - попал в точку, где Массив Javascript, представляющий Стек Befunge становится слишком большим для браузер, который нужно перераспределить. Если у тебя есть простой интерпретатор Befunge с меньший и ограниченный стек - как и случай с большинством языков ниже - эта программа вызовет больше заметное переполнение быстрее.
Late, but whatever. PHP, 32 characters.
$r=function($z){$z($z);};$r($r);
gives Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 261900 bytes) in ...
Technically, I could also do it in 29 with
$r=function($z){$z();};$r(0);
But that isn't as much fun as infinite recursion. That, and I don't think "undefined function" errors should count as "compiling" in a scripting language, otherwise:
Z();
would be the smallest solution.
Also, instead of crashing, how about (as a script) surpassing max execution time? 8 chars:
for(;;);
My original take on that had a $i++
in the third expression of the for loop, but because PHP treats all integers as signed, instead of overflowing, it just goes negative.
Сбой с 0
символами:
$ > golf.c
$ gcc -Wl,--defsym=main=0 golf.c
$ ./a.out
Segmentation fault
Ба - Я могу разбить C с помощью 5 символов:
main;
Это объявляет неявную int
переменную, называемую 'main'.
Он глобальный, поэтому переменная имеет начальное значение 0
.
Это C, имена не декорированы - поэтому компоновщик не понимает, что это var, а не функция.
GCC предупредил меня, но это все.
$ gcc crash.c
crash.c:1: warning: data definition has no type or storage class
$ ./a.exe
Segmentation fault (core dumped)
$
&a
Undefined subroutine &main::a called at test.pl line 1.
+[>+]
Это займет некоторое время, но в конечном итоге программе не хватит памяти и неизбежно произойдет сбой.
Подобно GolfScript:
*
Синтаксически допустимо, но вылетает во время выполнения, потому что маркер *
не определен (другая причина, чем причина сбоя GolfScript ).