StackOverflowエラーをスローする最短プログラム[終了]


75

StackOverflowエラーまたは使用する言語で同等のエラーをスローするプログラムを作成します。たとえば、javaでは、プログラムはをスローする必要がありjava.lang.StackOverflowErrorます。

自分自身または新しいクラスを呼び出す関数を定義することはできませんmainjavaに含まれるクラスを除く)。選択したプログラミング言語のクラスを使用する必要があります。

また、エラーを明示的にスローするべきではありません。


4
「選択したプログラミング言語のクラスを使用する」がわかりません
ジョンウェスリー王子

3
このような内部関数を呼び出す関数を定義しても大丈夫def s{def t=s;t}ですか?
ジョンウェスリー王子

12
ほとんどの言語では、クラスは特別な種類のデータ構造であり、宇宙の中心ではありません。多くはそのようなものすら持っていません。
反時計回りに

1
ここでおもしろいのは、末尾再帰の除去を必要とする言語(および言語がそれを必要としないときにそれをサポートする実装)---これは非常に現実的な意味で-これに不利なことです。TwiNightの回答は、初期の頃からStack Overflowに存在していたこのバージョンへのリンクです。
dmckee

1
java docから:アプリケーションの再帰が深すぎるためにスタックオーバーフローが発生した場合にスローされます。 docs.oracle.com/javase/6/docs/api/java/lang/...
jsedano

回答:


90

Befunge、1

私はBefungeを知らないが、...

1

Stack overflow code golfから


21
説明:1は数値リテラルであり、検出されるとスタックにプッシュされます。Befungeでは@、プログラムが終了するまで、制御フローがラップアラウンドします。
-histocrat

6
StackOverflowにこの質問があることは知りませんでした。投稿する前にこのサイトでのみ検索しました。
トゥルーソフト

31
ここで自分の答えを見ると、少しお世辞になります。
パトリック

4
これは> <>でも機能します。
ランチャー

49

Python(2.7.3)、35文字

import sys
sys.setrecursionlimit(1)

この操作自体は成功しますが、RuntimeError: 'maximum recursion depth exceeded'結果としてスクリプトとインタラクティブの両方がすぐにスローされます。

elssarの答えに触発されました。


代わりにそれを私の解決策として置くことを考えましたが、エラーがスタックオーバーフローと見なされるかどうかはわかりませんでした。とはいえ、本質的にはそういうことですよね?
elssar

2
@elssar:スタックをオーバーフローさせるには2つの方法があると思います:スタックの使用済み部分を大きくするか、スタックの未使用部分を小さくします。バケツが水で満たされていることを想像すると、水を追加することでオーバーフローさせることができますが、バケツを収縮させることでオーバーフローさせることもできます。

19

Coq

Compute 70000.

70000S (S ( ... (S O) ...))70000 Sの構文糖衣です。スタックオーバーフローを引き起こすのは型チェッカーだと思います。

コマンドを実行する前に出力される警告は次のとおりです。

Warning: Stack overflow or segmentation fault happens when working with large
numbers in nat (observed threshold may vary from 5000 to 70000 depending on
your system limits and on the command executed).

2
Coqは信じられないほど愚かな言語だと思うかもしれません...おかしい...
反時計回り

1
@leftaroundabout実際にはありません。Natタイプは、リンクリストであるかのように動作する必要があるタイプレベルのペアノ数字です。
-FUZxxl

1
@FUZxxl:私のコメントは皮肉な意味ではありませんでした。...あなたがその文の中に古典論理を含めたい場合は自分で決める、または建設的な滞在することを好む
counterclockwis回すために中止した

2
@leftaroundaboutおっと...ごめんなさい。マークダウンパーサーが常にこれらの素敵な&lt; irony&gt;タグを食べることを忘れていました。
-FUZxxl

19

Java-35

class S{static{new S();}{new S();}}

OPは新しいクラスを指定しませんでしたか?私はpublic static void mainそこにありません。それとも、Javaを理解していないだけですか?
ブレーデンベスト14

4
@ B1KMusic新しいクラスはありません。クラスは1つだけです(S)。コードは静的初期化子を使用し、jvmがメインメソッドがないと判断する前にSOをスローします。Java 6で動作します。
aditsu 14

1
静的ブロックを理解しています。しかし、次のブロックは何ですか?
ニコラスバルブレスコ14年

1
@NicolasBarbulescoこれは初期化ブロックです。新しいインスタンスを作成すると実行されます。
aditsu

1
@LuigiCortese私はそれがJava 6以上でしか動作しないと思う
-aditsu

19

Javascript 24文字

ブラウザ依存の回答(へのアクセス権が必要apply):

eval.apply(0,Array(999999))
  • eval 私が見つけることができる最短のグローバル関数名でした(誰がより短いものを知っていますか?
  • apply配列を関数パラメーターに変換できます。最初のパラメーターは関数のコンテキストです(this
  • Array(999999)リストされた長さの配列を作成します。引数の最大数がわからないが、これより小さく、より多い99999

IE9:

SCRIPT28: Out of stack space 
SCRIPT2343: Stack overflow at line: 20 

Chrome 24:

Uncaught RangeError: Maximum call stack size exceeded 

FireFox 18

RangeError: arguments array passed to Function.prototype.apply is too large

— JavaScriptのシングルスレッドの性質により、無限ループはUIをロックし、例外をスローしなくなります。

while(1);
for(;;);

これらのどちらも資格がありません。

更新 —これにより、3つの文字が削られます。

eval.apply(0,Array(1e7))

MDNはそれevalが最短だと言います。
ピーターテイラー

5
eval.apply(0,Array(1e6))3つの文字を保存し、あなたも一緒に行くことができ9e9、無償で
ThinkChaos

1
apply標準のECMAScript機能です。ブラウザに依存するものは何もありません。あなたは本当に古いブラウザについて話しているが、これはとの仮定のネットスケープ2に動作しない場合を除きapplyので、とにかくArrayクラスはNetscapeの2に存在しない
コンラッド・ボロウスキ

1
ES6の新しい最短:eval(...Array(9e9))
パトリックロバーツ

1
おそらく非標準で、コンソールからChromeをスローします。dir.apply(0,Array(1e7));
ポールJ

17

Python 2.7(12文字)

exec('{'*99)

«s_push:パーサースタックオーバーフロー»が発生します


4
私は得るSyntaxError: unexpected EOF while parsing
マーティン・トーマ

1
exec('{'*101)私を取得MemoryError
マーティン・トーマ

4
Python2では、execあなただけ使用できるように、ステートメントですexec'{'*999(99が十分ではないようです)
gnibbler

MemoryErrorをトリガーするには少なくとも100が必要です。そして、その≠スタックオーバーフロー
noɥʇʎԀʎzɐɹƆ

13

Mathematica、4文字

x=2x

$ RecursionLimit :: reclim:再帰の深さ1024を超えました。>>


1
「あなたは自分自身を呼び出す関数を定義することはできません」
トマス

13
それは関数ではなく、変数です(見た目がまったく違っていない限り)。
AMK

あなたは私の考えを取り入れました。
PyRulez 14

12

Clojure、12文字

(#(%%)#(%%))

replで実行:

user=> (#(%%)#(%%))
StackOverflowError   user/eval404/fn--407 (NO_SOURCE_FILE:1)

これは、ラムダ計算式を思い出させますが、(\x.xx)(\x.xx)これが起こっているのかどうかを確実に伝えるのに十分なclojureを知りません。また、前述の式がスタックオーバーフローを引き起こす理由がわからないので、Yコンビネーターでいくつかの策略をしているのかもしれません。この答えは私に興味があり、説明がいいでしょう。
ツヴァイ

12

Java-113文字

これは「自己呼び出しメソッドなし」ルールの精神にとどまると思います。それは明示的にそれをしません、そして、それはJava言語構造さえ経ます。

public class S {
    public String toString() {
        return ""+this;
    }
    public static void main(String[] a) {
        new S().toString();
    }
}

要約版:

public class S{public String toString(){return ""+this;}public static void main(String[] a){new S().toString();}}

9
まあ、""+this実際に""+this.toString()はですので、メソッドは自分自身を呼び出します。
トゥルーソフト

1
@TrueSoft JavaがStringBuilderそこにオブジェクトをスローすることはかなり確実です。toStringおそらくそこから呼び出されます。
ランチャー14

1
コンパイラとオプティマイザーが完了toString()するまでに、メソッドは次のようになりますpublic java.lang.String toString() { return this.toString(); }
ジョナサンカレン14

12

C、19バイト

main(){int i[~0u];}

4
@Thomasはい、であるローカル変数がスタックに割り当てられている任意のマシン上のスタックオーバーフロー。C言語にはスタックオーバーフロー表示の概念がないため(すべて未定義の動作で、そのうちの1つはセグメンテーション違反として現れます)、これは元の要件に適合します。
イェンス14

OK、申し訳ありません、受け入れられました。
トマス14

3
main.c:1:16: error: size of array 'i' is negativegcc 4.8.1 で提供されます。署名されていないバージョンはmain(){int i[~0U];}動作します。
Csq 14

4GBスタックを手動で構成した後、機能しません。
-FUZxxl

@FUZxxl興味深い; あなたのintは32ビットですか?その場合、sizeof(i)16GBです。ulまたはull接尾辞を使用すると違いが生じますか?一部のシステムはメモリをオーバーコミットし、メモリが書き込まれた場合にのみクラッシュします。
イェンス

10

GolfScript(8文字)

{]}333*`

結果:

$ golfscript.rb overflow.gs 
golfscript.rb:246:in `initialize': stack level too deep (SystemStackError)
from /home/pjt33/bin/golfscript.rb:130:in `new'
from /home/pjt33/bin/golfscript.rb:130:in `ginspect'
from /home/pjt33/bin/golfscript.rb:130:in `ginspect'
from /home/pjt33/bin/golfscript.rb:130:in `map'
from /home/pjt33/bin/golfscript.rb:130:in `ginspect'
from /home/pjt33/bin/golfscript.rb:130:in `ginspect'
from /home/pjt33/bin/golfscript.rb:130:in `map'
from /home/pjt33/bin/golfscript.rb:130:in `ginspect'
 ... 993 levels...
from (eval):4
from /home/pjt33/bin/golfscript.rb:293:in `call'
from /home/pjt33/bin/golfscript.rb:293:in `go'
from /home/pjt33/bin/golfscript.rb:485

基本的に、これはネストされたデータ構造を作成し、それを文字列に変換しようとするとスタックをオーバーフローさせます。


私にとって、これはエラーになりませんが、出力[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [[[[[[[[[[[[[""]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]] (and so on, output too long for comments)
ProgramFOX

@ProgramFOX、あなたが置き換えることができるいくつかの値があり333、それは壊れます。333壊れた最小の値でしたが、Rubyの異なるバージョン(または、おそらく別のOS上の同じバージョン)がある場合、オーバーフローする前に異なる数のスタックフレームを処理する可能性があります。
ピーターテイラー14

1
私のマシンでは3192でブレークするため6.?、文字を追加しなくても動作します。
デニス14年

10

x86アセンブリ、NASM構文、7バイト

db"Pëý"

「Pëý」は16進数で50 EB FDです。

_loop:
push eax
jmp _loop

x86アセンブリ。


8

ルビー、12

eval"[]"*9e3

与える

SystemStackError: stack level too deep

おそらくシステムに依存しますが、最後の桁を上げることで桁違いに追加できます(推奨されません)。

説明用に編集:他のいくつかの例と同様に、これは[][][]...繰り返し9000回の文字列を作成し、それを評価します:一番右[]が残りの関数呼び出しとして解析されます。実際に最初に到達[]した[]場合、1つの引数を必要とするメソッドを持つオブジェクトであるため、ArgumentErrorがスローされますが、スタックが9000を超える少し前にマシンがエラーをスローします。


うーん...クラッシュしたIRB:P
ドアノブ

どのバージョンですか?ruby1.9.2は「ArgumentError:間違った数の引数(1..2の場合は0)」をスローします。
マナトワーク

古いruby1.8.7が見つかりました。投稿されたコードは説明どおりに機能します。
マナトワーク

奇数、それは私の1.8.7、1.9.2、および1.9.3で動作します。
-histocrat

私が言っているだろうdef f;f;end;f
EMBLEM

8

Rebol(11文字)

do s:[do s]

利回り:

>> do(s:[do s])    
** Internal error: stack overflow
** Where: do do do do do do do do do do do do do do do do 
do do do do do do do do do do do do do do do do do do do
do do do do do do do do do do do do do do do do do do do 
do do do do do do do do do do do do do do do do do do do
do do do do do do do do do do do do do do do do do do do
do do do do do do do do do do do do do do do do do do do
do do do do do do do do do do do do do do do do do do do
do do do do do do do do do do do do do do do do do do do
do do do do do do do do do do do do do do do do do do do
do do do do do do do do do do do do do do do do do do do
do do do do do do do do do do do do...

Rebolには関数、クロージャー、オブジェクトがありますが、これらはいずれも定義していません。これはデータ構造を定義します。これは、コードとしてのデータパラダイムでは、DOを使用してコードとして扱うことができます。

REPLを使用して、「Sは何か」の問題を詳しく調べることができます。

>> s: [do s]
== [do s]

>> type? s
== block!

>> length? s
== 2

>> type? first s
== word!

>> type? second s
== word!

DOはこれを関数に変換せず、構造上の現在の環境で評価者を呼び出します。


1
+1 ...私の答えが関数を定義していることに気づかず、それがルールに反していましたが、DOを使用するように答えを編集しました...その答えを既に送信していることに気づきました。だから私は私のものを削除しましたが、なぜこれがオブジェクト/関数/クロージャを定義していないのかを書いたので、私はあなたに説明を入れようと思いました。また、do do do doはおかしくて、含める価値があると思います。:-)大丈夫だと思います!
レブム博士14

7

C、35文字

main(){for(;;)*(int*)alloca(1)=0;}

割り当てられたスペースに何かを保存するのはなぜですか?
ピーターテイラー

1
この場合、Cでこの問題を解決することは不可能です。
FUZxxl13年

3
@dmckee、すべてのセグメンテーションフォールトがスタックオーバーフローではありませんが、これはスタック容量を超えた結果だからです。
ウゴレン

1
@ dmckee、allocaはスタックから割り当てます。
ウゴレン

1
@PeterTaylor:おそらく実装に依存しますが、私の場合alloca(1)は基本的に変換されるsub $1, %espため、スタックは変更されません。
ジョブ

7

Common Lisp、7文字

#1='#1#

美しい...私は#1=(#1#)端末とに使用する予定でした(print #1=(#1#))が、あなたの解決策ははるかに優れています。
原生生物

実際には、印刷時にオーバーフローすることはなく、読み取り時にオーバーフローします。そのため、1文字の違いは別として、あなたのものはより良くありません。
原生生物

あなたは正しい、ちょうどそれを編集しました。読み取り時にオーバーフローを引き起こす方法があるかどうかはわかりません。
エリックハリエヴィッチ14年

実際、#。#1 = '#1#は読み取り時間のオーバーフローを引き起こします:-)
エリックハリエヴィッチ14

7

Python-11文字

exec'('*999

>>> exec'('*999
s_push: parser stack overflow
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError

非常に賢い解決策。
mbomb007

7

カシオ計算機、11回のキープレス

この「言語」でバイト/トークンをカウントするのは非常に困難です-Shift、Alpha(2番目のシフトキー)を除くキープレスの回数を指定しました。これはキープレス=ごとに1バイトに収まります。

fx-85GT PLUSモデルでテストされました。これは、標準のグラフ化されていない「プログラム不可能な」科学計算用電卓です。他のモデルでも動作します。

11個のキューブルートを積み重ねるだけです。

3√ 3√ 3√ 3√
3√ 3√ 3√ 3√
3√ 3√ 3√

平方根の下に欠落している数に関する構文エラーさえ与えません。

これは平方根では機能しないようです。

または、cos(31回繰り返します。

出力

Stack ERROR

[AC]  :Cancel
[<][>]:Goto

これはスタックオーバーフローとみなされると思います。スタックは小さいようです...


スタックエラーと呼ばれるのは、ルートスタックが多すぎるためだといつも思っていました:P
FlipTack

Canonの計算機は、25回以上繰り返されると、ほぼすべての演算子(少なくとも+、-、*、および/を除く)でスタックエラーを返します。例えば、これは(構文エラーなし)スタックエラーが発生:(((((((((((((((((((((((((
Steadybox

7

FORTH、13バイト

BEGIN 1 AGAIN

値スタックをオーバーフローします


: X X ; X(9)リターンスタックをオーバーフローさせる必要がある
-AMK

動作しません(呼び出しの定義中にXは定義されておらず、それは自己参照/再帰です
ラチェットフリーク

@ratchetfreak、これらのコントロールワードはコンパイル状態でのみ使用できるため、:... ;ワード定義でラップする必要があります。これにより、少なくとも6文字が追加され、さらに少なくとも2文字が追加され、プログラムとして実行されます。短くすることもできますが、例を示します: F BEGIN 1 AGAIN ; F。これは、「プログラムを書く」という質問に答えるからです。とにかく、文字数に関係なく、Forthに賛成票を投じました!:-)
ダレンストーン14年

6

追記、7

{1}loop

例えば。

$ gsnd
GPL Ghostscript 9.06 (2012-08-08)
Copyright (C) 2012 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
GS>{1}loop
Error: /stackoverflow in 1
Operand stack:
   --nostringval--
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   %loop_continue   --nostringval--   --nostringval--   false   1   %stopped_push   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   %loop_continue
Dictionary stack:
   --dict:1168/1684(ro)(G)--   --dict:0/20(G)--   --dict:77/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
Current file position is 8
GS<1>


6

LaTeX:8文字

\end\end

これは、この回答で使用されているのと同じコードです。基本的に、\endマクロはそれ自体を繰り返し展開し、スタックオーバーフローを引き起こしますTeX capacity exceeded, sorry [input stack size=5000]。詳細な説明はこちらをご覧ください


5

PHP 5.4、33文字

for($n=1e5;$n--;)$a=(object)[$a];

これにより、ネストされたstdClassオブジェクトが自動的に破棄されると、スタックオーバーフローが発生します。

$ gdb -q php
Reading symbols from /usr/bin/php...(no debugging symbols found)...done.
(gdb) set pagination 0
(gdb) r -nr 'for($n=1e5;$n--;)$a=(object)[$a];'
Starting program: /usr/bin/php -nr 'for($n=1e5;$n--;)$a=(object)[$a];'
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00000000006debce in zend_objects_store_del_ref_by_handle_ex ()
(gdb) bt
#0  0x00000000006debce in zend_objects_store_del_ref_by_handle_ex ()
#1  0x00000000006dee73 in zend_objects_store_del_ref ()
#2  0x00000000006a91ca in _zval_ptr_dtor ()
#3  0x00000000006c5f78 in zend_hash_destroy ()
#4  0x00000000006d909c in zend_object_std_dtor ()
#5  0x00000000006d9129 in zend_objects_free_object_storage ()
#6  0x00000000006dee53 in zend_objects_store_del_ref_by_handle_ex ()
#7  0x00000000006dee73 in zend_objects_store_del_ref ()
#8  0x00000000006a91ca in _zval_ptr_dtor ()
#9  0x00000000006c5f78 in zend_hash_destroy ()
#10 0x00000000006d909c in zend_object_std_dtor ()
#11 0x00000000006d9129 in zend_objects_free_object_storage ()
[...]
#125694 0x00000000006dee53 in zend_objects_store_del_ref_by_handle_ex ()
#125695 0x00000000006dee73 in zend_objects_store_del_ref ()
#125696 0x00000000006a91ca in _zval_ptr_dtor ()
#125697 0x00000000006c5f78 in zend_hash_destroy ()
#125698 0x00000000006d909c in zend_object_std_dtor ()
#125699 0x00000000006d9129 in zend_objects_free_object_storage ()
#125700 0x00000000006dee53 in zend_objects_store_del_ref_by_handle_ex ()
#125701 0x00000000006dee73 in zend_objects_store_del_ref ()
#125702 0x00000000006a91ca in _zval_ptr_dtor ()
#125703 0x00000000006c4945 in ?? ()
#125704 0x00000000006c6481 in zend_hash_reverse_apply ()
#125705 0x00000000006a94e1 in ?? ()
#125706 0x00000000006b80e7 in ?? ()
#125707 0x0000000000657ae5 in php_request_shutdown ()
#125708 0x0000000000761a18 in ?? ()
#125709 0x000000000042c420 in ?? ()
#125710 0x00007ffff5b6976d in __libc_start_main (main=0x42bf50, argc=3, ubp_av=0x7fffffffe738, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe728) at libc-start.c:226
#125711 0x000000000042c4b5 in _start ()

2
CodeGolfでのPHPの2回目の登場に違いありません。
ボジャングルズ

5

Q / k(16文字)

これが挑戦の精神かどうかは定かではありませんが、規則を破るとは思いません

s:{f`};f:{s`};f`

それは、C#が非常に多くのタイピングを必要とするのは残念なことです。
アンドリューグレイ

5

同じスタイルの束:

Python、30

(lambda x:x(x))(lambda y:y(y))

Javascript、38

(function(x){x(x)})(function(y){y(y)})

ルア、44

(function(x) x(x) end)(function(y) y(y) end)

Python x=lambda y:y(y);x(x)では短い(20文字)。この関数は再帰的ではありません。xは、引数として渡された関数を呼び出します。
-AMK

ルビー2.0 -->x{x[x]}[->y{y[y]}]
ジョン・ドヴォルザーク

Mathematica#@#&[#@#&]
alephalpha

あなたは単に再帰を使用しているのであれば、なぜJSでは:(function x(){x()})()?
xem 14年

@xem要件には再帰がないと書かれています。それが理由です。
ダニー

5

C#:106 86 58 46 32 28

32:ゲッターはあなたのマシンをC#で簡単にできます:

public int a{get{return a;}}

1
セッターの必要はありませんpublic int a {get{return a;}}
マイクKoder

3
これは、「自分自身を呼び出す関数を定義することはできません」というルールに違反しています。確かに、これは構文シュガーの後ろに隠れていますが、まだ挑戦のポイントがありません。
ピーターテイラー

セッターを追加すると、ルールを多少回避します。これは、相互に呼び出す2つの関数があるためです。しかし、私は疑問に思う:それはまだこの課題の背後にあるOPの意図に違反していますか?
アンドリューグレー

1
私が理解している考え方は、インタープリターまたは言語の標準APIで過度にネストされた再帰を見つけることです。これはC#では簡単ではないかもしれません。
ピーターテイラー

1
なぜ「公開文字列」なのですか?「int」も同様に機能しますint a { get { return a; } }
。– NPSF3000

5

INTERCAL、12バイト

(1)DO(1)NEXT

説明:

NEXTINTERCALのサブルーチン呼び出しのバージョン(または、少なくとも、取得できる最も近いバージョン)です。現在位置をNEXTスタックにプッシュし、指定されたラベルにジャンプします。

ただし、NEXTスタックの長さが80を超える場合、スタックオーバーフローのINTERCALバージョンとほぼ同じものが得られます。

ICL123I PROGRAM HAS DISAPPEARED INTO THE BLACK LAGOON
    ON THE WAY TO 1
        CORRECT SOURCE AND RESUBNIT

Ideoneでお試しください。


6
「ブラックラグーンに姿を消した」これは何ですか、ArnoldC?
アディソンクランプ

5

モーニングトンクレセント、139 133

Take Northern Line to Bank
Take Circle Line to Temple
Take Circle Line to Temple
Take Circle Line to Bank
Take Northern Line to Angel

4

X86アセンブリ(AT&T)、33文字

ラベルmainをジャンプターゲットとして使用していますが、これは再帰的な関数ではないことに注意してください。

.globl main
main:push $0;jmp main

いいアイデア:これは一種の再帰なしの再帰です!
アンドレアコルベッリーニ

a86を使用:dd 0fdeb6010文字!
スキッツ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.