সবচেয়ে সংক্ষিপ্ত প্রোগ্রামটি লিখুন যা সর্বাধিক সংকলক সতর্কতা এবং ত্রুটি উত্পন্ন করে


42

চ্যালেঞ্জ:

একটি খুব সংক্ষিপ্ত প্রোগ্রাম লিখুন যা সংকলন করা হলে, সংখ্যক সংকলক সতর্কতা এবং ত্রুটিগুলির সর্বাধিক পরিমাণ তৈরি করে। এটি যে কোনও প্রোগ্রামিং ভাষায় লেখা যেতে পারে।

স্কোরিং:

স্কোর এই সমীকরণ দ্বারা নির্ধারিত হয়: errors_and_warnings_length/code_length। সর্বোচ্চ স্কোর জয়।

উদাহরণ:

সি # প্রোগ্রামটি classপাঁচটি দীর্ঘ দীর্ঘ এবং 3 টি সতর্কতা উত্পন্ন করে, যা স্কোর (1/5) * 3 = 0.6।

সম্পাদনা করুন:

কিছু বিভ্রান্তির কারণে, প্রোগ্রামগুলি কমপক্ষে 1 চর দীর্ঘ হতে হবে। অন্যথায় এটি অসীম স্কোর পেতে পারে।


17
আমার ধারণাটি পছন্দ করার সময় আমি মেট্রিকটিকে কিছুটা উদ্বেগজনক বলে মনে করি। কি সংকলন? কি সেটিংস (বিশেষত সতর্কতা সংক্রান্ত ক্ষেত্রে)? আমি গড় gcc -Wall -pedanticপ্লেইন ol` থেকে ভিন্ন gccথেকে ভিন্ন tccকিছু অন্যান্য গ কম্পাইলার থেকে সম্ভবতঃ ভিন্ন।
dmckee

2
কেবল রাশিয়ান, বা জার্মান ভাষায় একটি সংকলক পান, আপনি কিছু লম্বা ত্রুটি পান (কোনও
পাং

2
আমি সি / সি ++ ব্যতীত অন্য ভাষায় উত্তর দেখতে পছন্দ করব।
কেন ব্লুম

4
চ্যালেঞ্জটি যথাসম্ভব বিভিন্ন ত্রুটি তৈরি করা যদি আমি পছন্দ করতাম
হান্নেশ

3
হুম। অন্যথায় এটির স্কোর অপরিজ্ঞাপিত হবে
wizzwizz4

উত্তর:


94

জিসিসি, স্কোর 2 200 /36 ≈ 4.5 × 10 58

#include __FILE__
#include __FILE__

আমি আসলে এই কোডটি সংকলন শেষ করি নি, তবে পরীক্ষার এবং সহজ গণিতের ভিত্তিতে এটি মোট 2 200 #include nested too deeply ত্রুটি তৈরি করতে হবে।

অবশ্যই, প্রোগ্রামটি তুচ্ছভাবে এক্সটেনসিবল। তৃতীয় লাইন যোগ করতে স্কোর দেখাবে 3 200 /54 ≈ 4.9 × 10 93 । চারটি লাইন দিতে 4 200 /72 ≈ 3.6 × 10 118 , ইত্যাদি।


6
খুব চতুর উত্তর। +1
প্রিন্স জন ওয়েসলি

5
খুব চালাক আমি সম্মত, তবে আমি এটিকে 1 টি ত্রুটি হিসাবে গণ্য করব ("খুব গভীরভাবে নেস্ট করা"), ব্যাকট্রেসের প্রতিটি লাইনের জন্য পৃথক ত্রুটি নয়।
কেভিন

1
@ কেভিন: স্পষ্ট করে বলতে গেলে, প্রতিটি সম্ভাব্য পথের জন্য একবারে নীড়ের সীমা পৌঁছানো যেতে পারে, এটি ত্রুটিটি 2²⁰⁰ বার তৈরি করা উচিত। আসলে প্রতিটি ত্রুটি এছাড়াও ব্যাক-ট্রেস 200 লাইন অন্তর্ভুক্ত মাত্র আউটপুট এমনকি আরও ভার্বোস করে তোলে।
ইলমারি করোনেন

1
হুম। আমি গত শনিবার 1 সিসির 1 টি ত্রুটি পরে জিসিসি জামিন দেওয়ার চেষ্টা করে শপথ করতে পারি, তবে এটি এখন আরও বেশি মুদ্রণ চালাচ্ছে বলে মনে হচ্ছে। আপত্তি প্রত্যাহার। ঘটনাচক্রে, 200 সি স্ট্যান্ডার্ড থেকে?
কেভিন

1
@ কেভিন প্রতি gcc.gnu.org/onlinesocs/gcc-4.8.2/cpp/Implementation-limits.html : " #includeপলাতক পুনরাবৃত্তি এড়াতে আমরা 200 স্তরের একটি স্বেচ্ছাসেবী সীমা চাপিয়ে দিই। মানকটির জন্য কমপক্ষে 15 টি প্রয়োজন মাত্রা। "
zwol

48

সি, 0 টি অক্ষর - স্কোর = (1/0) * 1 = অনন্ত



1 ত্রুটি উত্পন্ন:

/usr/lib/gcc/i686-pc-linux-gnu/4.7.0/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: error: ld returned 1 exit status

দ্রষ্টব্য: http://ideone.com/xdoJyA


49
1/0 অপরিজ্ঞাত, "অনন্ত" নয়।
ফ্রাঙ্ক

3
+1 এমনকি 1/0 অপরিবর্তিত থাকলেও এটি কোনও বৃহত সংখ্যার দ্বারা বিভক্ত একের চেয়েও বড়। 0 কেক লাগে।
jnm2

6
@ jnm2 এটি সম্পর্কে নিশ্চিত নয়। 1/0 অপরিবর্তিত এবং ডান দিকটি যদিও + অসীম হয়, এটি 1/0 মোটেও সংজ্ঞায়িত করে না।
কাওডি

5
যেহেতু ডোমেনটি ইতিবাচক, তাই আমি যা বলেছি তা বোধগম্য। থিওরিটি মজাদার তবে আমি মনে করি আমাদের এখানে কিছু সাধারণ জ্ঞান প্রয়োজন। ন্যূনতম পরিমাণ কোডের জন্য সর্বাধিক সংকলক ত্রুটি, মনে রাখবেন। সীমা সুস্পষ্ট।
jnm2

15
1.0 / 0.0 = + INF, অন্তত আইইইই 754 অনুসারে :) সুতরাং আপনাকে কেবল ভাসমান পয়েন্টে গণনা করতে হবে।
কিথ র্যান্ডাল 21

19

জিসিসি, 5586.6 স্কোর করুন (এবং আরও বেশি প্রয়োজন হলে)

179 অক্ষর, 1000003 সতর্কতা / ত্রুটি (ব্যবহার করে -Wall)

#define E a,a,a,a,a,a,a,a,a,a
#define D E,E,E,E,E,E,E,E,E,E
#define C D,D,D,D,D,D,D,D,D,D
#define B C,C,C,C,C,C,C,C,C,C
#define A B,B,B,B,B,B,B,B,B,B
_(){A,A,A,A,A,A,A,A,A,A}

অবশ্যই এটি নির্বিচারে বাড়ানো যেতে পারে। উদাহরণস্বরূপ, 5 #defineএর পরিবর্তে 10 টি এবং 10 এর পরিবর্তে 20 "কল" দৈর্ঘ্য ব্যবহার করা হলে প্রায় (20 ** 10) / (179 * 4) = 14301675977.65 (এবং চালাতে বেশ কিছুটা সময় লাগবে) ;)


7
ব্যবহার করে #define X(A) A,A,A,A,A,A,Aএবং X(X(X(X(X(X(A))))))আপনি কোডটি আরও দ্রুত নকল করতে পারেন।
উগোরেন

12

দু'বার জিসিসি, 86

22 টি অক্ষর, 1898 ত্রুটি + আমার সিস্টেমে সতর্কতা।
আমি নিশ্চিত যে সংক্ষিপ্ত নাম সহ আরও দীর্ঘ ফাইলগুলি বেছে নিয়ে এই পদ্ধতির উন্নতি করা যায়।

#include</usr/bin/gcc>

3
/usr/bin/gdbউল্লেখযোগ্যভাবে বড় (5.5 এম বনাম 760 কে), তবে /vmlinuz5.6 এম এ আপনার সেরা বাজি হতে পারে।
wchargin

12

এইচকিউ 9 ++, 1 ((এন + 29) / এন এর সীমা)

নিম্নলিখিত Warning: this is not a quineকোডে প্রতিটি কিউ জন্য সতর্কতা প্রকাশ করে।

QQQQQ...Q
Warning: this is not a quine

ছোট ভাল, তাই না? হুম ...


FWIW, এটি একটি রসিকতা। যদি তা সুস্পষ্ট না হত।
বুথবি

10

সি, .727

11 টি অক্ষর, 5 ত্রুটি, 3 সতর্কতা, (1/11) * 8 = .727273

m(;){@,x}2

cc -g -Wall    er.c   -o er
er.c:1: error: expected declaration specifiers or '...' before ';' token
er.c:1: warning: return type defaults to 'int'
er.c: In function 'm':
er.c:1: error: stray '@' in program
er.c:1: error: expected expression before ',' token
er.c:1: error: 'x' undeclared (first use in this function)
er.c:1: error: (Each undeclared identifier is reported only once
er.c:1: error: for each function it appears in.)
er.c:1: warning: left-hand operand of comma expression has no effect
er.c:1: warning: control reaches end of non-void function
er.c: At top level:
er.c:1: error: expected identifier or '(' before numeric constant


আমি 5 টি ত্রুটি, এবং 3 সতর্কতা গণনা করি
কেভিন

আমার ধারণা আপনি ঠিক আছেন আমি "ত্রুটি:" এবং "সতর্কতা:" স্ট্রিংগুলি গণনা করছি।
2:30:30 মিনিটে লুসার ড্রুজ

5
আমি মনে করি আপনি যদি জয়ী হন তবে আমরা কেবলমাত্র বিভিন্ন ত্রুটি / সতর্কতা গণনা করি।
উগোরেন

যদি -অরডারটি কমান্ড লাইনে ব্যবহৃত হয়, সতর্কতাগুলি ত্রুটি হিসাবে প্রচারিত হয়। এবং এছাড়াও, কোন সি সংকলকটি ব্যবহৃত ত্রুটিগুলির সংখ্যাকে প্রভাবিত করবে (বা যদি-ওয়ারার পাওয়া যায় ইত্যাদি) কেউ কেউ যুক্তি দেওয়ার জন্য কমান্ড লাইনের দৈর্ঘ্য "প্রোগ্রাম" দৈর্ঘ্যের অংশ হিসাবে গণ্য হতে পারে তর্ক করতে পারে ... এবং প্রতিটি প্রতিটি প্ল্যাটফর্মের সংকলক সংস্করণ পৃথক বিভাগ। :-)
ডঃ রেবমু

8

এনএএসএম, স্কোর 63/40 * 2 ^ 32 ≈ 2.905 * 10 ^ 19

%rep 1<<32
%rep 1<<32
!
%endrep
%endrep

আউটপুট c.asm:3: error: label or instruction expected at start of line2 ^ 64 বার হবে। আবার এটি সহজেই অনেক বড় আউটপুটগুলির কাছে এক্সটেনসেবল।


2

সি ++ 98 (211 বাইট) জি ++ - 5 (উবুন্টু 5.2.1-23ubuntu1 ~ 12.04) 5.2.1 0151031

আমি প্রিপ্রসেসরটি মোটেও ব্যবহার না করেই সি ++ এ কতটা ভাল করতে পারি তা দেখতে চেয়েছিলাম। এই প্রোগ্রামটি আউটপুট 2,139,390,572 বাইট উত্পাদন করে, যার বেশিরভাগই একক ত্রুটি বার্তা।

template<int i,class S,class T>struct R{typedef R<i,typename R<i-1,S,S>::D,typename R<i-1,S,S>::D>D;};template<class S,class T>struct R<0,S,T>{typedef S D;};void f(){R<27,float,R<24,int*const*,int>::D>::D&E=4;}

me@Basement:~/src/junk$ ls -l a.C
-rw-rw-r-- 1 me me 211 Apr 27 21:44 a.C
me@Basement:~/src/junk$ g++-5 a.C -fmax-errors=1 2>a.C.errors.txt
me@Basement:~/src/junk$ ls -l a.C.errors.txt 
-rw-rw-r-- 1 me me 2139390572 Apr 27 22:01 a.C.errors.txt

Ungolfed:

template <int i, class S, class T>
struct R {
    typedef R<i, typename R<i-1,S,S>::D, typename R<i-1,S,S>::D> D;
};
template <class S, class T>
struct R<0, S, T> {
    typedef S D;
};
void f() {
    R<27, float, R<24, int*const*, int>::D>::D &E = 4;
}

এই প্রোগ্রামটি একটি পুনরাবৃত্ত স্ট্রাকচার টেম্পলেটটি সংজ্ঞায়িত করে কাজ করে যা টাইপডেফ ডি ধারণ করে যার দুটি কপি থাকে। এটির ফলে একটি প্রকারের নাম ঘটে যা তাত্ক্ষণিকভাবে বৃদ্ধি পায় যা ত্রুটি বার্তায় পুরো মুদ্রিত হয়। দুর্ভাগ্যক্রমে, (1 << 31) বাইটের চেয়ে লম্বা ত্রুটি বার্তা প্রিন্ট করার চেষ্টা করার সময় g ++ টি চেপে গেছে। 2,139,390,572 বাইট আমি সীমা ছাড়িয়ে যেতে পারিনি এমন সবচেয়ে কাছের ছিল। আমি আগ্রহী যদি কেউ 27, float, 24, int*const*সীমাটির নিকটবর্তী হওয়ার জন্য পুনরাবৃত্তি সীমা এবং পরামিতি প্রকারগুলি সামঞ্জস্য করতে পারে (বা এমন একটি সংকলক সন্ধান করতে পারে যা আরও দীর্ঘতর ত্রুটির বার্তা মুদ্রণ করতে পারে)।

ত্রুটি বার্তা থেকে উদ্ধৃত অংশ:

a.C: In function ‘void f()’:
a.C:1:208:  error:  invalid  initialization  of non-const reference of type
‘R<27, float, R<24, R<23, R<22, R<21, R<20, R<19, R<18, R<17, R<16, R<15,
R<14,  R<13, R<12, R<11, R<10, R<9, R<8, R<7, R<6, R<5, R<4, R<3, R<2, R<1,
int* const*, int* const*>, R<1, int* const*, int* const*> >, R<2, R<1, int*
const*,  int*  const*>,  R<1, int* const*, int* const*> > >, R<3, R<2, R<1,
int* const*, int* const*>, R<1, int* const*, int* const*> >, R<2, R<1, int*
const*,  int* const*>, R<1, int* const*, int* const*> > > >, R<4, R<3, R<2,
R<1, int* const*, int* const*>, R<1,
...
int*  const*,  int*  const*>  > > > > > > > > > > > > > > > > > > > > > > >
>::D& {aka R<27, R<26, R<25, R<24, R<23,  R<22,  R<21,  R<20,  R<19,  R<18,
R<17,  R<16,  R<15,  R<14, R<13, R<12, R<11, R<10, R<9, R<8, R<7, R<6, R<5,
R<4, R<3, R<2, R<1, float, float>, R<1, float, float> >, R<2,  R<1,  float,
float>,  R<1,  float, float> > >, R<3, R<2, R<1, float, float>, R<1, float,
float> >, R<2, R<1, float, float>, R<1, float, float> > > >, R<4, 
...
, R<1, float, float>, R<1, float, float> > >, R<3, R<2, R<1, float, float>,
R<1, float, float> >, R<2, R<1, float, float>, R<1, float, float> > > > > >
>  >  >  >  >  >  > > > > > > > > > > > > > > >&}’ from an rvalue of type
‘int’
    template<int    i,class   S,class   T>struct   R{typedef   R<i,typename
R<i-1,S,S>::D,typename  R<i-1,S,S>::D>D;};template<class  S,class  T>struct
R<0,S,T>{typedef                         S                         D;};void
f(){R<27,float,R<24,int*const*,int>::D>::D&E=4;}


                                                        ^
compilation terminated due to -fmax-errors=1.

2,139,390,572 বাইট / 211 বাইট = 10,139,291.8


এ কারণেই আমি সর্বদা এসটিএফিল্ট ব্যবহার করি ... পিপিসিজিতে আপনাকে স্বাগতম! এটি একটি দুর্দান্ত প্রথম জমা!
ঐ মেগো

1
দুর্ভাগ্যক্রমে মনে হয় আমি চ্যালেঞ্জকে ভুল বুঝি; দেখে মনে হচ্ছে সাবমিশনগুলি ত্রুটি বার্তাগুলির সংখ্যা দ্বারা স্কোর করা হয়, বাইট গণনা দ্বারা নয়। অবশ্যই আমার 1 ত্রুটির প্রবেশ খুব প্রতিযোগিতামূলক নয়। সম্ভবত আমার উত্তর এখানে
বাদাম

-1

স্মাইলব্যাসিক, 1/1 = 1

A

ত্রুটি উত্পন্ন Syntax Error in 0:1


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