সবচেয়ে ছোট প্রোগ্রাম যা স্ট্যাকওভারফ্লো ত্রুটি ছুড়ে ফেলেছে [বন্ধ]


75

এমন একটি প্রোগ্রাম লিখুন যা স্ট্যাকওভারফ্লো ত্রুটি বা ব্যবহৃত ভাষায় সমতুল্য নিক্ষেপ করবে। উদাহরণস্বরূপ, জাভাতে , প্রোগ্রামটি নিক্ষেপ করা উচিত java.lang.StackOverflowError

নিজেকে এমন কোনও ফাংশন বা নিজেকে নতুন ক্লাস হিসাবে চিহ্নিত করার অনুমতি দেওয়া হচ্ছে না ( mainজাভা থাকা বাদে )। এটি নির্বাচিত প্রোগ্রামিং ভাষার ক্লাস ব্যবহার করা উচিত।

এবং এটি পরিষ্কারভাবে ত্রুটি নিক্ষেপ করা উচিত নয়।


4
আমি "নির্বাচিত প্রোগ্রামিং ভাষার ক্লাসগুলি ব্যবহার করি" বুঝতে পারি না
প্রিন্স জন ওয়েসলি

3
এমন কোনও ফাংশনটিকে সংজ্ঞায়িত করা ঠিক আছে যা অভ্যন্তরীণ ফাংশনটিকে এভাবে বলে def s{def t=s;t}?
যুবরাজ জন ওয়েসল

12
বেশিরভাগ ভাষায় ক্লাসগুলি মহাবিশ্বের কেন্দ্র নয়, কেবল একটি বিশেষ ধরণের ডেটা স্ট্রাকচার। অনেকের কাছে এমন জিনিস থাকে না।
পালটে যাওয়া বন্ধ করে দেওয়া হয়েছে

1
মজার বিষয়টি হ'ল যে ভাষাগুলির জন্য লেজ পুনরাবৃত্তি নির্মূলকরণ প্রয়োজন (এবং প্রয়োগগুলি যেগুলি ভাষাগুলির প্রয়োজন হয় না তখন এটি সমর্থন করে) --- যেগুলি সত্যিকার অর্থে আরও ভাল --- এটির একটি অসুবিধায় রয়েছে। প্রথম দিন থেকেই স্ট্যাক ওভারফ্লোতে বিদ্যমান এটির সংস্করণে টোইনাইটের উত্তর লিঙ্কগুলি।
dmkese

1
জাভা ডকটি থেকে: যখন স্ট্যাকের ওভারফ্লো ঘটে তখন ছুড়ে দেওয়া হয় কারণ একটি অ্যাপ্লিকেশন খুব গভীরভাবে পুনরাবৃত্তি করে। docs.oracle.com/javase/6/docs/api/java/lang/…
জেসেডানো

উত্তর:


90

বেফুঞ্জ,।

আমি বেফুঞ্জকে চিনি না, তবে ...

1

স্ট্যাক ওভারফ্লো কোড গল্ফ থেকে


21
ব্যাখ্যা: 1 হল একটি সংখ্যার আক্ষরিক যা মুখোমুখি হওয়ার সাথে সাথে স্ট্যাকের দিকে ধাক্কা দেয় pushed বেফুঞ্জে, @প্রোগ্রামটি শেষ হওয়ার আগে এটির মুখোমুখি না হওয়া অবধি নিয়ন্ত্রণ প্রবাহকে ঘিরে রাখে।
হিস্টোক্র্যাট

6
আমি জানতাম না স্ট্যাক ওভারফ্লোতে এই প্রশ্ন আছে। আমি পোস্ট করার আগে এই সাইটে অনুসন্ধান করেছি।
সত্য নরম

31
আমি এখানে আমার উত্তর দেখতে হালকাভাবে চাটুকার করছি।
প্যাট্রিক

4
এটি> <> এও কাজ করে।
ক্রંચার

49

পাইথন (2.7.3), 35 টি অক্ষর

import sys
sys.setrecursionlimit(1)

এই অপারেশনটি নিজেই সফল হয়, তবে স্ক্রিপ্ট এবং ইন্টারেক্টিভ উভয়ই এর RuntimeError: 'maximum recursion depth exceeded'ফলস্বরূপ তত্ক্ষণাত পরে নিক্ষেপ করবে ।

এলসার এর উত্তর দ্বারা অনুপ্রাণিত।


পরিবর্তে আমি এটিকে আমার সমাধান হিসাবে রাখার কথা ভেবেছিলাম, তবে ত্রুটিটি স্ট্যাকের ওভারফ্লো হিসাবে বিবেচনা করা যায় কিনা তা নিশ্চিত ছিলাম না। যদিও, মূলত, এটি কি তাই, তাই না?
এলসার

2
@ এলসার: আমার ধারণা, স্ট্যাকটি উপচে পড়ার দুটি উপায় আছে: স্ট্যাকের ব্যবহৃত অংশটি বড় করুন, বা স্ট্যাকের অব্যবহৃত অংশটি আরও ছোট করুন। আপনি যদি বালতি জলে ভরাট কল্পনা করেন, আপনি আরও জল যোগ করে এটি উপচে ফেলে দিতে পারেন, তবে বালতিটি সঙ্কুচিত করে আপনি এটি উপচেও যেতে পারেন।

19

মোরগ

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
এটি আপনাকে ভাবতে পারে যে কাক একটি অবিশ্বাস্য বোবা ভাষা ... মজার ...
counter

1
@ Leftaroundabout আসলে নয়। নাট টাইপটি এমন এক ধরণের স্তর পেনো অঙ্ক যা অবশ্যই এটি লিঙ্কযুক্ত তালিকার মতো কাজ করবে।
FUZxxl

1
@FUZxxl: আমার মন্তব্যটি মোটেই বিদ্রূপাত্মক নয়। আপনি যদি এই বাক্যে শাস্ত্রীয় যুক্তি অন্তর্ভুক্ত করতে চান বা গঠনমূলক থাকতে চান তবে নিজের জন্য সিদ্ধান্ত নিন ...
বন্ধ হয়ে গেছে

2
ওহো ... বামফুট! আমি ভুলে গিয়েছিলাম যে মার্কডাউন পার্সার সর্বদা সেই দুর্দান্ত & lt; বিড়ম্বনা & জিটি; -ট্যাগগুলি খায়।
FUZxxl

19

জাভা - 35

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

ওপি কি নতুন ক্লাস বললো না? আমি public static void mainসেখানে একটি দেখতে পাচ্ছি না । নাকি আমি শুধু জাভা বুঝতে ব্যর্থ?
ব্র্যাডেন সেরা

4
@ বি 1 কে মিউজিক কোনও নতুন ক্লাস নেই, কেবলমাত্র একটি ক্লাস (এস) রয়েছে। কোডটি একটি স্ট্যাটিক ইনিশিয়ালাইজার ব্যবহার করে, জেভিএমের কোনও মূল পদ্ধতি নেই তা বের করার আগে এটি এসওকে ছুঁড়ে দেয়। জাভা 6 নিয়ে কাজ করে
aditsu

1
আমি স্থির ব্লক বুঝতে পারি। তবে পরের ব্লকটি কী?
নিকোলাস বারবুলেসকো

1
@ নিকোলাস বার্বুলেসকো এটি একটি ইনিশিয়ালাইজার ব্লক, আপনি যখন কোনও নতুন উদাহরণ নির্মাণ করবেন তখন এটি কার্যকর করা হয়।
অদিতসু

1
@ লুইজি কর্টিজ আমার মনে হয় এটি কেবল 6 বা
ততোধিক

19

জাভাস্ক্রিপ্ট 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 

ক্রোম 24:

Uncaught RangeError: Maximum call stack size exceeded 

ফায়ারফক্স 18

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

দ্রষ্টব্য - জাভাস্ক্রিপ্টের একক থ্রেডযুক্ত প্রকৃতির কারণে, অসীম লুপগুলি ইউআইকে লক করে শেষ করে না এবং কখনও ব্যতিক্রম ছুঁড়ে না ফেলে।

while(1);
for(;;);

এগুলির কোনওটিই যোগ্য নয়।

আপডেট - এটি তিনটি অক্ষর ছাঁটাই:

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

এমডিএন বলছে যে evalএটিই সবচেয়ে কম।
পিটার টেলর

5
eval.apply(0,Array(1e6))3 টি অক্ষর বাঁচায়, আপনি 9e9বিনা
ব্যয়েও

1
applyএটি একটি স্ট্যান্ডার্ড ECMAScript বৈশিষ্ট্য। ব্রাউজার নির্ভর কিছুই নেই। আপনি যদি না সত্যই পুরানো ব্রাউজারগুলির কথা না বলে থাকেন তবে এটি হাইপ্যাসটিকাল নেটস্কেপ 2 তে applyকোনওভাবেই কাজ করবে না , কারণ নেটস্কেপ 2-তে Arrayক্লাসের অস্তিত্ব নেই
Kon

1
ES6 এ নতুন সংক্ষিপ্ততম:eval(...Array(9e9))
প্যাট্রিক রবার্টস

1
সম্ভবত অ-মানক, কনসোল থেকে ক্রোমে নিক্ষেপ করে। dir.apply(0,Array(1e7));
পল জে

17

পাইথন ২.7 (12 টি অক্ষর)

exec('{'*99)

একটি «s_push ফলাফল: পার্সার স্ট্যাক ওভারফ্লো»


4
আমি পেয়েছিSyntaxError: unexpected EOF while parsing
মার্টিন থোমা

1
সঙ্গে exec('{'*101)আমি পেতেMemoryError
মার্টিন Thoma

4
পাইথন 2- execতে একটি বিবৃতি, যাতে আপনি কেবল ব্যবহার করতে পারেন exec'{'*999(99 যথেষ্ট বলে মনে হচ্ছে না)
gnibbler

একটি মেমোরিরার ট্রিগার করতে আপনার কমপক্ষে 100 টি দরকার। এবং ≠ স্ট্যাক ওভারফ্লো
noɥʇʎԀʎzɐɹƆ

13

গণিত, 4 টি চর

x=2x

Urs রিকার্সনলিমিট :: reclim: 1024 এর পুনরাবৃত্তির গভীরতা অতিক্রম করেছে। >>


1
"আপনি নিজেকে ফাংশন বলে এমন ফাংশনটি সংজ্ঞায়িত করতে পারেন না"
টমাস

13
এটি কোনও ফাংশন নয়, এটি একটি পরিবর্তনশীল (যদি না দেখতে এটির মতো হয় তবে)।
এএমকে

আপনি আমার ধারণা নিয়েছেন।
পাইরুলেজ

12

ক্লোজার, 12 টি চর

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

প্রতিবেদনে চলছে:

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

এটি আমাকে ল্যাম্বডা ক্যালকুলাসের অভিব্যক্তিটির কথা মনে করিয়ে দেয় (\x.xx)(\x.xx), তবে ক্লোজার ভালভাবে জানিনা যে এটি ঘটছে কিনা তা নিশ্চিত করে বলতে পারি। আমি আরও দেখতে পাচ্ছি না কেন পূর্বোক্ত প্রকাশগুলি স্ট্যাকের উপচে পড়বে, তাই সম্ভবত আপনি ওয়াই-কম্বিনেটরের সাথে কিছু কৌশল করছেন? এই উত্তরটি আমার আগ্রহী এবং একটি ব্যাখ্যা সুন্দর হবে।
Zwei

12

জাভা - 113 অক্ষর

আমি মনে করি এটি "কোনও স্ব-আহ্বানের পদ্ধতিগুলি" বিধি অনুসারে থাকবে। এটি স্পষ্টভাবে এটি করে না এবং এটি জাভা ভাষার একটি নির্মাণের মধ্য দিয়েও যায়।

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
@ ট্রুইসফট প্রিয়াটি নিশ্চিত যে জাভা StringBuilderসেখানে কোনও বস্তুতে ফেলে দেয় । toStringসম্ভবত সেখান থেকে কল করা হবে।
ক্রুঙ্কার

1
সংকলক এবং অপ্টিমাইজার সম্পন্ন হওয়ার পরে, toString()পদ্ধতিটি শেষ হয়ে যায়public java.lang.String toString() { return this.toString(); }
জোনাথন কলেন

12

সি, 19 বাইট

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

4
@Thomas হ্যাঁ এটা হয় কোন মেশিনে স্থানীয় ভেরিয়েবল স্ট্যাক বরাদ্দ করা হয় একটি স্ট্যাক ওভারফ্লো। যেহেতু সি ভাষার কোনও স্ট্যাক ওভারফ্লো ইঙ্গিতটির ধারণা নেই (এটি সমস্ত অপরিজ্ঞাত আচরণ; এর মধ্যে একটি সেগফল্ট হিসাবে নিজেকে প্রকাশ করে) তাই এটি মূল প্রয়োজনের সাথে খাপ খায় না।
জেনস

ঠিক আছে, দুঃখিত, গৃহীত।
টমাস

3
এটি main.c:1:16: error: size of array 'i' is negativeআমার জন্য জিসিসি 4.8.1 এ দেয় । স্বাক্ষরবিহীন সংস্করণ main(){int i[~0U];}কাজ করে।
Csq

আমি 4 জিবি স্ট্যাক ম্যানুয়ালি কনফিগার করার পরে আমার পক্ষে কাজ করে না।
FUZxxl

@FUZxxl আকর্ষণীয়; আপনার ints 32 বিট হয়? যদি তা sizeof(i)হয় তবে 16 জিবি। একটি ulবা ullপ্রত্যয় ব্যবহার করে কি কোনও পার্থক্য রয়েছে? কিছু সিস্টেম মেমরিকে অতিরিক্ত প্রতিশ্রুতিবদ্ধ করে এবং মেমরিটিতে লেখা থাকলে কেবল ক্রাশ হয়।
জেনস

10

গল্ফস্ক্রিপ্ট (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)
প্রোগ্রামফক্স

@ প্রোগ্রামআফক্স, আপনার 333সাথে প্রতিস্থাপন করতে পারে এমন কিছু মান থাকবে এবং এটি ভেঙে যাবে। 333আমার জন্য ক্ষুদ্রতম মান যা ভেঙেছিল, তবে আপনার যদি রুবির ভিন্ন সংস্করণ থাকে (বা অন্য কোনও ওএসে একই সংস্করণ হতে পারে, তবে আমি জানি সমস্তই) এটি প্রবাহিত হওয়ার আগে বিভিন্ন ধরণের স্ট্যাক ফ্রেমগুলি পরিচালনা করতে পারে।
পিটার টেলর

1
আমার মেশিনে 3192 এ বিরতি দেয় তাই 6.?অক্ষর যুক্ত না করে এখনও কাজ করে।
ডেনিস

10

x86 সমাবেশ, এনএএসএম সিনট্যাক্স, 7 বাইট

db"Pëý"

"Pëý" হেক্সাডেসিমাল এ 50 ইবি এফডি, এবং

_loop:
push eax
jmp _loop

x86 সমাবেশে।


8

রুবি, 12

eval"[]"*9e3

দেয়

SystemStackError: stack level too deep

সম্ভবত সিস্টেম নির্ভর

ব্যাখ্যার জন্য সম্পাদনা করুন: একইভাবে অন্য কয়েকটি উদাহরণের জন্য, এটি একটি স্ট্রিং তৈরি করে [][][]... 9000 বার পুনরাবৃত্তি হয়েছে, তারপরে এটি মূল্যায়ন করুন: ডানদিকের []অংশটি বাকী অংশে একটি ফাংশন কল হিসাবে পার্স করা হয়, ইত্যাদি। যদি এটি আসলে শুরুতে পাওয়া যায় তবে এটি একটি আর্গুমেন্ট এরির নিক্ষেপ করবে কারণ []একটি []পদ্ধতির সাথে একটি যুক্তি যা একটি যুক্তি প্রয়োজন, তবে আমার যন্ত্রটি স্ট্যাকটি নয় হাজারের বেশি হওয়ার আগে একটি ত্রুটি ছুঁড়ে ফেলে।


হুম ... আইআরবি ক্র্যাশ হয়েছে: পি
ডোরকনব

কোন সংস্করণ? ruby১.৯.২ "আর্গুমেন্টের ত্রুটি: আর্গুমেন্টের ভুল সংখ্যা (১.২ এর জন্য 0)" ছুড়ে ফেলেছে।
manatwork

একটি পুরানো ruby1.8.7 পাওয়া গেছে। সেখানে পোস্ট কোড বর্ণিত হিসাবে কাজ করে।
manatwork

অদ্ভুত, এটি আমার 1.8.7, 1.9.2 এবং 1.9.3 এ কাজ করে।
হিস্টোক্র্যাট

আমি বলতামdef f;f;end;f
EMBLEM

8

রিবোল (১১ টি চর)

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...

যদিও রেবলের ফাংশন, ক্লোজার এবং অবজেক্টস রয়েছে ... এটি এর কোনওটির সংজ্ঞা দেয় না। এটি একটি ডেটা স্ট্রাকচারকে সংজ্ঞায়িত করে, যা কোড-হিসাবে-উপাত্তে ডিও ব্যবহার করে কোড হিসাবে বিবেচনা করা যেতে পারে।

আমরা আরপিএল দিয়ে "এস কি" এর প্রশ্নটি তদন্ত করতে পারি :

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

>> type? s
== block!

>> length? s
== 2

>> type? first s
== word!

>> type? second s
== word!

ডিও কখনই এটিকে কোনও ফাংশনে রূপান্তরিত করে না, এটি কাঠামোর বর্তমান পরিবেশে মূল্যায়নকারীকে অনুরোধ করে।


1
+1 ... আমি লক্ষ্য করি নি যে আমার উত্তরটি একটি ফাংশন সংজ্ঞায়িত করছে এবং এটি বিধিগুলির বিরুদ্ধে ছিল, তবে আমার উত্তরটি ডিও ব্যবহার করার জন্য সম্পাদনা করেছে ... তবে লক্ষ্য করা গেছে যে আপনি ইতিমধ্যে উত্তরটি জমা দিয়েছেন। সুতরাং আমি সবেমাত্র আমার মুছলাম, তবে যেহেতু আমি লিখেছিলাম যে এটি কেন কোনও জিনিস / ফাংশন / বন্ধের সংজ্ঞা দিচ্ছে না আমি ভেবেছিলাম আমি ব্যাখ্যাটি আপনার মধ্যে রেখে দেব। এছাড়াও আমি মনে করি যে করণীয় করাই হ'ল এক ধরণের মজাদার এবং অন্তর্ভুক্ত worth :-) আশা করি ঠিক আছে!
ডাঃ রেবমু

7

সি, 35 টি অক্ষর

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

কেন নির্ধারিত স্থানে কিছু সঞ্চয় করবেন?
পিটার টেলর


3
@ ডিএমকেকি, সমস্ত বিভাজন ত্রুটিগুলি স্ট্যাক ওভারফ্লোস নয়, তবে আমি এটিটি বলব, কারণ এটি স্ট্যাকের ক্ষমতা ছাড়িয়ে যাওয়ার ফলাফল।
ugoren

1
@dmckee, alloca স্ট্যাক থেকে বরাদ্দ।
ugoren

1
@ পিটারটেলর: এটি সম্ভবত বাস্তবায়নের উপর নির্ভর করে তবে আমার ক্ষেত্রে alloca(1)মূলত অনুবাদ করা হয়েছে sub $1, %espযাতে স্ট্যাকটি স্পর্শ করা যায় না।
চাকরি

7

সাধারণ লিস্প, 7 টি অক্ষর

#1='#1#

সুন্দর ... আমি #1=(#1#)টার্মিনালের জন্য ব্যবহার করার পরিকল্পনা করছিলাম এবং (print #1=(#1#)), তবে আপনার সমাধানটি আরও ভাল।
protist

আসলে এটি পড়ার সময় উপচে পড়ে না, যখন আপনি এটি মুদ্রণের চেষ্টা করবেন। সুতরাং 1 অক্ষরের পার্থক্যটি বাদ দিয়ে, আপনার চেয়ে ভাল আর নেই।
protist

আপনি ঠিক বলেছেন, ঠিক এটি সম্পাদিত। আমি নিশ্চিত নই যে পড়ার সময় উপচে পড়ার কোনও উপায় আছে কিনা।
এরিক হ্যালিউইকিজ

আসলে, #। # 1 = '# 1 # একটি রিড-টাইম ওভারফ্লোর কারণ :-)
এরিক হ্যালিউইকিজ

7

পাইথন - 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 টি কীপ্রেস

এই "ভাষায়" বাইটস / টোকেনগুলি গণনা করা বেশ শক্ত - আমি শিফট, আলফা (দ্বিতীয় শিফট কী) এবং =শেষে বাদে প্রয়োজনীয় কী-টিপসগুলির সংখ্যা দিয়েছি - এটি অবশ্যই কীপ্রেস প্রতি 1 বাইট অনুসারে মাপসই হয়।

Fx-85GT প্লাস মডেলটিতে পরীক্ষিত , যা একটি স্ট্যান্ডার্ড, নন-গ্রাফিং, "নন-প্রোগ্রামেবল" বৈজ্ঞানিক ক্যালকুলেটর। অন্যান্য মডেলগুলি কাজ করবে।

11 টি কিউব শিকড় সজ্জিত করুন:

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

এটি বর্গমূলের নিচে অনুপস্থিত সংখ্যা সম্পর্কে একটি বাক্য গঠন ত্রুটি দেয় না।

বর্গমূলের সাথে এটি কাজ করে বলে মনে হচ্ছে না।

বিকল্পভাবে, cos(31 বার পুনরাবৃত্তি করুন ।

আউটপুট

Stack ERROR

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

আমি বিশ্বাস করি যে এটি স্ট্যাক ওভারফ্লো হিসাবে যোগ্যতা অর্জন করে। স্ট্যাকটি ছোট মনে হচ্ছে ...


আমি সর্বদা ভেবেছিলাম এটিকে স্ট্যাক ত্রুটি বলা হয়েছিল কারণ আপনি অনেকগুলি শিকড়কে "স্ট্যাক আপ" করেছেন: পি
ফ্লিপট্যাক

আমার ক্যানন ক্যালকুলেটর কেবল 25 টি বা তার বেশি বার পুনরাবৃত্তি হলে কোনও অপারেটর (কমপক্ষে +, -, * এবং /) বাদ দিয়ে একটি স্ট্যাক ত্রুটি দেয়। উদাহরণস্বরূপ, এটি স্ট্যাক ত্রুটির কারণ ঘটায় (সিনট্যাক্স ত্রুটি ছাড়াই):(((((((((((((((((((((((((
স্টিডিবক্স

7

ফরথ, 13 বাইট

BEGIN 1 AGAIN

মান স্ট্যাককে উপচে ফেলেছে


: X X ; X(9) অবশ্যই ফেরার স্ট্যাকের উপচে
এএমকে

কাজ করবে না (কল সংজ্ঞায়িত করার সময় এক্স সংজ্ঞায়িত হয়নি এবং এটি একটি স্ব-রেফারেন্স / পুনরাবৃত্তি
র‌্যাচেট ফ্রিক

@ratchetfreak, এই নিয়ন্ত্রণ শব্দগুলি কেবল একটি সংকলন অবস্থায় ব্যবহার করা যেতে পারে, সুতরাং তাদের একটি :... ;শব্দের সংজ্ঞাতে আবৃত করা দরকার । এটি একটি প্রোগ্রাম হিসাবে চালিত করার জন্য কমপক্ষে 6 টি অক্ষর যুক্ত করে, কমপক্ষে 2 টি আরও যুক্ত করে। আপনি এটা খাটো করতে সক্ষম হতে পারে, কিন্তু এখানে একটি উদাহরণ দেওয়া হল: : F BEGIN 1 AGAIN ; F। আমি এটি পরামর্শ দিচ্ছি কারণ প্রশ্নটি জিজ্ঞাসা করছে: "একটি প্রোগ্রাম লিখুন" " যাইহোক, চার গণনা নির্বিশেষে আপনাকে ফরথের জন্য একটি উত্সাহ দিয়েছে! :-)
ড্যারেন স্টোন

6

পোস্টস্ক্রিপ্ট,।

{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

হাস্কেল (জিএইচসি, কোনও অপ্টিমাইজেশন নেই), 25

main=print$sum[1..999999]

যোগফল মোটে অলস। এটি থাঙ্কগুলির একটি গুচ্ছকে পাইল করে, তারপরে শেষে তাদের সমস্তকে মূল্যায়নের চেষ্টা করে, ফলস্বরূপ স্ট্যাকের ওভারফ্লো হয়।


আমি সবসময় ভাচ্ছিলাম যে ভাঁজ ব্যবহার করে যোগফল প্রয়োগ করা হয়েছিল। তাই না?
গর্বিত হাস্কেলর


6

ল্যাটেক্স: 8 টি অক্ষর

\end\end

এই উত্তরে এটি একই কোড ব্যবহৃত হয় । মূলত, \endম্যাক্রো নিজেই বারবার বিস্তৃতি, একটি স্ট্যাক ওভারফ্লো ফলে: TeX capacity exceeded, sorry [input stack size=5000]। আরও বিস্তারিত ব্যাখ্যা এখানে পাওয়া যাবে


5

পিএইচপি 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
কোডগল্ফে পিএইচপি-র দ্বিতীয় উপস্থিতি অবশ্যই হবে এর জন্য +1!
বোজাঙ্গলেস

5

কিউ / কে (16 টি অক্ষর)

এটি চ্যালেঞ্জের চেতনাতে রয়েছে কিনা তা নিশ্চিত নয় তবে আমি মনে করি না এটি নিয়ম ভঙ্গ করে:

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

এটি লজ্জাজনক সি # এর জন্য এত বেশি টাইপ করা দরকার, আপনি আমার উত্তরটি অনুপ্রাণিত করলেন!
অ্যান্ড্রু গ্রে

5

একই শৈলীতে একটি গুচ্ছ:

পাইথন, 30

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

জাভাস্ক্রিপ্ট, 38

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

লুয়া, 44

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

পাইথনে x=lambda y:y(y);x(x)সংক্ষিপ্ততর (20 টি অক্ষর)। এই ফাংশন পুনরাবৃত্ত হয় না। x এর দ্বারা প্রদত্ত যে কোনও ফাংশনকে আর্গুমেন্ট বলে।
এএমকে

রুবি ২.০ -->x{x[x]}[->y{y[y]}]
জন ডিভোরাক

গণিত#@#&[#@#&]
আলেফাল্ফ

আপনি কেবল পুনরাবৃত্তি ব্যবহার করছেন, তবে কেন কেবল এটি করবেন না, উদাহরণস্বরূপ জেএসে: (ফাংশন এক্স () {x ()}) ()?
xem

@ এক্সের প্রয়োজনীয়তাগুলি কোনও পুনরাবৃত্তি বলে না, সে কারণেই।
ড্যানি

5

সি #: 106 86 58 46 32 28

32 : আগতরা সি মেশিনে আপনার মেশিনটি সহজেই SO করতে পারে:

public int a{get{return a;}}

1
সেটারের দরকার নেইpublic int a {get{return a;}}
মাইক কোডার

3
এটি "আপনাকে নিজেকে কল করে এমন কোনও ক্রিয়া সংজ্ঞায়িত করার অনুমতি নেই" এই নিয়ম লঙ্ঘন করে। স্বীকারযোগ্যভাবে এটি সিনট্যাক্স চিনির পিছনে লুকানো রয়েছে তবে এটি এখনও চ্যালেঞ্জের বিন্দুটি হারিয়েছে।
পিটার টেলর

সেটারটি যুক্ত করা কিছুটা নিয়মকে অবরুদ্ধ করে দেয় কারণ আপনার এখন দুটি ফাংশন একে অপরকে কল করছে। তবে আমি আশ্চর্য হই: এটি কি এখনও এই চ্যালেঞ্জের পিছনে ওপির উদ্দেশ্য লঙ্ঘন করে?
অ্যান্ড্রু গ্রে

1
আমি যে ধারণাটি বুঝতে পেরেছি তা হ'ল ভাষার দোভাষী বা স্ট্যান্ডার্ড এপিআইতে কিছুটা অতিরিক্ত নেস্টেড পুনরাবৃত্তি খুঁজে পাওয়া। এটি সি # তে খুব সহজ হবে না।
পিটার টেলর

1
"পাবলিক স্ট্রিং" কেন? "ইনট" ঠিক পাশাপাশি কাজ করে:int a { get { return a; } }
এনপিএসএফ 3000

5

ইন্টারকল, 12 বাইট

(1)DO(1)NEXT

ব্যাখ্যা:

NEXTইন্টারকলের একটি সাবরুটাইন কলটির সংস্করণ (বা, কমপক্ষে, আপনি পেতে পারেন এটি নিকটতম)। এটি NEXTস্ট্যাকের উপরে বর্তমান অবস্থানকে ঠেলে দেয় এবং প্রদত্ত লেবেলে লাফ দেয়।

তবে, যদি NEXTস্ট্যাকের দৈর্ঘ্য 80 এর বেশি হয়, তবে আপনি স্ট্যাকের ওভারফ্লোর ইন্টারকাল সংস্করণটি অনেকটা পেয়েছেন:

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

আইডিয়নে চেষ্টা করে দেখুন।


6
"ব্ল্যাক লগনের মধ্যে অসন্তুষ্ট হয়ে গেছে" এটি কী, আর্নল্ডসি?
অ্যাডিসন ক্রম্প 12

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 বিধানসভা (এটিএন্ডটি), 33 টি অক্ষর

মনে রাখবেন যে, যদিও আমি ট্যাগ ব্যবহার করছি mainএকটি লাফ টার্গেট হিসাবে, এই না একটি recursive ফাংশন।

.globl main
main:push $0;jmp main

দুর্দান্ত ধারণা: এটি এক ধরণের পুনরাবৃত্তি-বিনা পুনরাবৃত্তি!
আন্ড্রেয়া কারবেলিনী

a86: dd 0fdeb6010 অক্ষর ব্যবহার করে !
স্কিজ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.