এই কোডটিতে * এটি * এবং * যে * এর ত্রুটি রয়েছে, এটি কি সত্যই লিখিত আছে?


25

আপনি যে ভাষাটি সন্ধান করছেন আমি তা দ্বারা অনুপ্রাণিত হয়েছি!

চ্যালেঞ্জ

দুটি পৃথক প্রোগ্রামিং ভাষা চয়ন করুন এবং একটি প্রোগ্রাম লিখুন যা স্টাডাউট (বা সমমানের) জন্য নিম্নলিখিত লাইনটি মুদ্রণ করে:

This program errors out in <the current language> :P

এবং তারপরে দুটি ভাষার প্রতিটি ক্ষেত্রেই বিভিন্ন ধরণের ত্রুটি তৈরি হয়।

বিধি

কিছু নিয়ম মূল চ্যালেঞ্জ থেকে নেওয়া হয়।

  • আউটপুটে, ভাষার নামগুলি হুবহু অনুসরণ করা উচিত:
    • টিআইও- তে তালিকাভুক্ত নামটি allyচ্ছিকভাবে সংস্করণ নম্বর এবং / বা বাস্তবায়নের নাম বাদ দিয়ে (যেমন আপনি যদি কোনও JavaScript (Node.js)ভাষা ব্যবহার করেন তবে আপনি JavaScriptনিজের ভাষার নামের জন্য ব্যবহার করতে পারেন , JSবা না Javascript))
    • টিআইওতে আপনার পছন্দের ভাষাটি উপলভ্য না হলে অফিসিয়াল ওয়েবসাইটে পুরো নাম (বা গিটহাব রেপো)।
  • কোনও প্রোগ্রামই ব্যবহারকারীর কাছ থেকে কোনও ইনপুট নেবে না।
  • আপনি উভয় ভাষায় মন্তব্য ব্যবহার করতে পারেন।
  • একই ভাষার দুটি ভিন্ন সংস্করণ বিভিন্ন ভাষা হিসাবে গণনা করা হয়।
    • এটি হয়ে গেলে, প্রোগ্রামটির প্রধান সংস্করণ নম্বরটি আউটপুট করা উচিত এবং যদি দুটি ভিন্ন গৌণ সংস্করণে চলতে থাকে তবে ছোটখাটো সংস্করণটিও রিপোর্ট করা উচিত।
    • আপনার প্রাক বিল্ট সংস্করণ ফাংশনগুলি ব্যবহার করা উচিত নয় (এটির মধ্যে চলকগুলি ইতিমধ্যে মূল্যায়ন করা হয়েছে এমন ভেরিয়েবলগুলি অন্তর্ভুক্ত)।
  • পতাকাগুলিতে কোড টুকরা (যেমন সি তে) অন্তর্ভুক্ত না করা হয় ততক্ষণ এই মেটা সম্মতি অনুসারে একই ভাষার দুটি পৃথক কমান্ড লাইন পতাকাও পৃথক ভাষা হিসাবে গণনা করে-Dblahblah...
    • এটি হয়ে গেলে, প্রোগ্রামটি ব্যবহৃত পতাকাটিকে আউটপুটও দেয়।
  • দুটি ত্রুটি পৃথক হিসাবে বিবেচনা করা হয় যদি না উভয় ত্রুটি একই শব্দার্থবিজ্ঞানের দ্বারা উত্পন্ন হয় (যেমন "শূন্য দ্বারা বিভাগ", "বিভাগকরণ ত্রুটি", বা "সূচকের বাইরে")।
    • যদি কোনও ভাষার রানটাইম কোনও ত্রুটির পরে প্রস্থান না করে তবে কোনওভাবে ব্যবহারকারীর কাছে ত্রুটিটি রিপোর্ট করে তবে এটি একটি বৈধ ত্রুটি।
    • যদি কোনও ভাষা ত্রুটি বার্তাগুলিকে বৈষম্য না করে তবে ত্রুটির কারণ হিসাবে পরিচিত কারণগুলির একটি তালিকা রয়েছে, আপনাকে অবশ্যই ত্রুটি বার্তা নয়, কারণটি নির্দিষ্ট করতে হবে।
      একটি উদাহরণ ><>, যা কেবল একটি ত্রুটি বার্তা রয়েছে something smells fishy..., কিন্তু esolangs উইকি পৃষ্ঠায় ত্রুটির কারণগুলির একটি তালিকা রয়েছে।
  • সিন্ট্যাক্স ত্রুটিটি কল eval()বা অনুরূপ দ্বারা উত্পাদিত না হলে অনুমোদিত নয় ।
  • ম্যানুয়ালি ( throwজেএস), raise(পাইথন), die(পার্ল) বা অনুরূপ কিছু নিক্ষেপ করার অনুমতি দেওয়া হয়েছে তবে সেগুলি সমস্তই এক ধরণের ত্রুটি হিসাবে বিবেচিত হয়।
  • 2 ডি বা গল্ফল্যাংগুলিতে অবৈধ আদেশ দ্বারা ত্রুটি অনুমোদিত (এবং এক ধরণের ত্রুটি হিসাবে বিবেচিত)।

উদাহরণ

পাইথন এবং রুবি

  • পাইথন: This program errors out in Python :Pস্টডআউট, তারপরে অপরিজ্ঞাত শনাক্তকারী
  • রুবি: This program errors out in Ruby :Pস্টাডাউট করতে, তারপর সীমা ছাড়িয়ে সূচক index

সি 89 এবং সি 99

  • সি ৮৮: স্টাডাউট This program errors out in C 89 :Pকরতে হবে, তারপরে শূন্যের সাথে ভাগ করুন
  • সি 99: This program errors out in C 99 :Pস্টাডআউট, তারপরে বিভাজন ত্রুটি

নোট করুন সংস্করণ নম্বরটি সর্বদা একটি স্থান দ্বারা ভাষার নাম থেকে পৃথক করা উচিত ।

পাইথন 2.7.9 এবং পাইথন 2.7.10

  • পাইথন ২.7.৯: স্টাডআউটে This program errors out in Python 2.7.9 :P, তারপরে সিচেক্সে ত্রুটি ev
  • পাইথন ২...১০: স্টাডাউট This program errors out in Python 2.7.10 :Pকরতে, তারপরে ডিকের মূল ত্রুটি

পার্ল এবং পার্ল -n

  • পার্ল: This program errors out in Perl :Pস্টডআউট থেকে, তারপরে অবৈধ সময় বিন্যাস
  • পার্ল -n: This program errors out in Perl -n :Pস্টডআউট করতে, তারপরে কোনও ফাইল খোলার চেষ্টা করুন যা অস্তিত্বহীন

জয়ের শর্ত

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী। তবে আপনি সবসময় এমন উত্তর পোস্ট করতে উত্সাহিত হন যা মজাদার বা আকর্ষণীয় এটি খুব কম না হলেও।



ত্রুটিটির কি প্রোগ্রামটি থামানো দরকার?
জো কিং

আমি প্রথম দিকে তাই ভেবেছি। যাইহোক, যদি এমন কিছু ভাষা থাকে যা "শূন্য দ্বারা বিভাগ" এর মতো কিছু পরে কিছুটা অব্যাহত থাকতে পারে (সম্ভবত অপরিজ্ঞাত আচরণের সাথে), প্রোগ্রামটি যে ত্রুটির মুখোমুখি হয়েছে তা স্বীকার করার জন্য, তবে আমি আনন্দের সাথে সেটি অনুমতি দেব।
বুবলার

আমি মনে করি আমি ইতিমধ্যে উত্তরটি জানি, তবে কেবল ক্ষেত্রে: বাক্যটিতে This program errors out in ...কেবল স্থানগুলির পরিবর্তে মিশ্র ট্যাব / স্পেস থাকতে পারে?
কেভিন ক্রুইজসেন

সম্পর্কিত (দুটি ভিন্ন ভাষায় দুটি পৃথক পাঠ্য মুদ্রণ করুন)।
কেভিন ক্রুইজসেন 10 '13

উত্তর:


33

পাইথন 2 / পাইথন 3 , 60 বাইট

print("This program errors out in Python %d :P"%(3/2*2))*1;a
  • পাইথন 2 পেয়েছে NameError: name 'a' is not defined
  • পাইথন 3 পেয়েছে unsupported operand type(s) for *: 'NoneType' and 'int'

পাইথন 2:

  • /পূর্ণসংখ্যা বিভাগ, 3/2 পেয়েছে 1; int (3/2 * 2) হ'ল 2।
  • মুদ্রণ একটি বিবৃতি, সুতরাং প্রথম বিবৃতি হিসাবে পড়া print((...)*1)এখানে, *1মানে একবারে স্ট্রিং পুনরাবৃত্তি।
  • দ্বিতীয় বিবৃতিটি একটি অ-বিদ্যমান ভেরিয়েবলকে রেফার করে, যা ত্রুটির কারণ হয়েছিল।
  • এটি অনলাইন চেষ্টা করুন!

পাইথন 3:

  • '/' ভাসমান সংখ্যা বিভাগ, 3/2 পেয়েছে 1.5; int (3/2 * 2) হয় 3।
  • মুদ্রণ একটি ফাংশন, তাই প্রথম বিবৃতি হিসাবে পড়া (print(...))*1
  • ফাংশন printরিটার্ন None; গুণগুলি কাজ করে না None x int, সুতরাং এটি "অসমর্থিত অপারেন্ড" প্রতিবেদন করে।
  • এটি অনলাইন চেষ্টা করুন!

15

সি এবং সি ++, 114 101 বাইট

-13 বাইট l4m2 ধন্যবাদ !

#include<stdio.h>
main(){auto d=.5;printf("This program errors out in C%s :P",d?"++":"");2[&d]+=1/d;}

সি ++ এ বিভাজন ত্রুটি, সিতে ফ্লোটিং পয়েন্ট ব্যতিক্রম

autointসি তে ডিফল্ট হয় তাই (int).5হয়ে যায় 0, তাই এর দ্বারা ভাগ করার চেষ্টা মূলত শূন্য দ্বারা ভাগ করা।

সি ++ 1/dতে 2 হয়, এটি ঠিকানার সাথে যুক্ত করে dসেই ঠিকানাটি পরিবর্তন করার চেষ্টা করা হয় 'সেগফল্টটি মান ফেলে।

এটি সি ++ এ চেষ্টা করুন!
সি এ চেষ্টা করুন!


1
নিশ্চিত নন এটা সাহায্য করে, কিন্তু আপনি যদি 2 এবং 0 সি / সি ++ ম্যাপ করতে পারেন, আপনি ব্যবহার করতে পারে যদি "++"+n, যেখানে nহয় 0সি ++ এবং 2সি জন্য
কোনোর ব্রায়েন

2
d?"++":""9 চর, "++"+4*d8 চর। তবে সি / সি ++ পিছন দিকে যায়। দীর্ঘশ্বাস.
ইয়াক

1
int main(){auto d=.5;printf("This program errors out in C%s :P",d?"++":"");2[&d]+=1/d;}(105) যদিও আমি জানি না
l4m2

1
এছাড়াও intবাদ দেওয়া যেতে পারে
l4m2

সুপারিশ L"⬫"+!dপরিবর্তেd?"++":""
ceilingcat

14

জাভাস্ক্রিপ্ট + এইচটিএমএল / এইচটিএমএল + জাভাস্ক্রিপ্ট, 160 বাইট

<!--
document.write`This program errors out in JavaScript + HTML :P`()
--><script>document.write`This program errors out in HTML + JavaScript :P`+X</script>

<!--
document.write`This program errors out in JavaScript + HTML :P`()
--><script>document.write`This program errors out in HTML + JavaScript :P`+X</script>

এটি দুটি ভাষা গণনা করে কিনা তা নিশ্চিত নয় তবে এটি মজার।


সুতরাং, পূর্ববর্তীটি অনির্ধারিত শনাক্তকারী, পরেরটি হ'ল নন-ফাংশন টাইপের ফাংশন কল। প্রযুক্তিগতভাবে আমি প্রাক্তন এইচটিএমএল এবং উত্তরোত্তর জাভাস্ক্রিপ্ট বিবেচনা করব, তবে সত্যিই দুর্দান্ত ধারণা।
বুবলার

<!-- ... -->একক লাইন মন্তব্য চিহ্নিতকারী হিসাবে একটি ভাল ব্যবহার (আমি জানি যে এটি পশ্চাদপটে সামঞ্জস্যতার কারণে রয়েছে)
শিয়েরু আসাকোটো

12

জাভা 8 এবং সি 99, 172 বাইট

//\
interface a{static void main(String[]a){System.out.print("This program errors out in Java 8 :P");a[1]=""/*
main(n){{n=puts("This program errors out in C99 :P")/0/**/;}}

'এবিসি' এবং 'সিবিএ' চ্যালেঞ্জের জন্য আমার উত্তরের ভিত্তিতে ।

জাভা 8 এ এটি ব্যবহার করে দেখুন - অ্যারেআইন্ডেক্সঅউটঅফফাউন্ডস এক্সেক্সেশন: 1 এর ফলে ।
এটি সি তে চেষ্টা করুন - ফলসিং পয়েন্ট ব্যতিক্রমের ফলস্বরূপ : শূন্য দ্বারা বিভাজন নির্ধারিত

ব্যাখ্যা:

//\
interface a{static void main(String[]a){System.out.print("This program errors out in Java 8 :P");a[1]=""/*
main(n){{n=puts("This program errors out in C99 :P")/0/**/;}}

আপনি উপরের জাভা-হাইলাইটেড কোডটিতে দেখতে পাচ্ছেন, প্রথম লাইনটি একটি মন্তব্য হওয়ার কারণে //, এবং সি-কোডের কারণে একটি মন্তব্য /* ... */, যার ফলস্বরূপ:

interface a{static void main(String[]a){System.out.print("This program errors out in Java 8 :P");a[1]="";}}

সুতরাং এটি STDOUT- এ প্রিন্ট করে এবং তারপরে দ্বিতীয় প্রোগ্রাম-যুক্তি (যখন কিছুই দেওয়া হয় না) অ্যাক্সেস করার চেষ্টা করে, সুতরাং এটি অ্যারেআইন্ডেক্সআউটআউটবাউন্ডসেক্সশন তৈরি করে ।


//\
interface a{static void main(String[]a){System.out.print("This program errors out in Java 8 :P");a[1]=""/*
main(n){{n=puts("This program errors out in C99 :P")/0/**/;}}

কীভাবে সি-হাইলাইটিং সঠিকভাবে সক্ষম করবেন তা নিশ্চিত নয়, কারণ lang-cজাভা হিসাবে একই হাইলাইটিংয়ের ফলাফল .. তবে //\পরবর্তী লাইনে মন্তব্য করবে যা জাভা-কোড, যার ফলস্বরূপ:

main(n){{n=puts("This program errors out in C99 :P")/0;}}

সুতরাং এটি STDOUT- এ প্রিন্স করে এবং তারপরে শূন্য ত্রুটির দ্বারা একটি বিভাগ দেয়।


আমি মনে করি এটি সি 98 এবং সি 99 উভয়ের সাথেই কাজ করবে। আমাকে যে ধরে না।
সাইনস্ট্যাকএফএলএফ

//C99 সঙ্গে সি যোগ করা হয়েছিল।
betseg

আপনাদের উভয়ের জন্য ধন্যবাদ, আমি এটিকে পরিবর্তন করেছি C99
কেভিন ক্রুইজসেন

এর a[1]বদলে কেন a[0]?
xehpuk

@xehpuk কোনও বিশেষ কারণ নেই। আমি কোন অঙ্কটি ব্যবহার করি তা বিবেচনাধীন নয় এবং আমি ইতিমধ্যে 1শুরু থেকেই পূরণ করেছি । ব্যবহার করেছেন গেল 0, 9ইত্যাদি হিসাবে ভাল। এই পোস্টটি সম্পর্কে আমার কিছু সম্পাদনা করতে থাকলে আমি একই সাথে এটিতেও পরিবর্তন করব 0
কেভিন ক্রুইজসেন

11

জাভা 8 এবং হোয়াইটস্পেস , 439 431 428 408 বাইট

                         






























 interface a{static void    main(String[]a){System.out.print("This program errors out"+
" in Java 8 :P");a[0]="";}}













জাভা 8 এ এটি ব্যবহার করে দেখুন - অ্যারেআইন্ডেক্সআউটঅফফাউন্ডস এক্সেক্সেশন: 0 এর ফলস্বরূপ ।
হোয়াইটস্পেসে এটি ব্যবহার করে দেখুন - ব্যবহারকারীর ত্রুটির ফলে (ইনফিক্স প্লাস করতে পারে না)

ব্যাখ্যা:

জাভা 8:

interface a{static void main(String[]a){System.out.print("This program errors out"+
" in Java 8 :P");a[0]="";}}

সুতরাং এটি STDOUT- এ প্রিন্ট করে এবং তারপরে প্রথম প্রোগ্রাম-আর্গুমেন্টটি অ্যাক্সেস করার চেষ্টা করে (যখন কিছুই দেওয়া হয় না), সুতরাং এটি অ্যারেআইন্ডেক্সআউটআউটবাউন্ডসেক্সশন তৈরি করে ।


সাদা ব্যবধান:

[S S T  T   T   T   T   T   N
_Push_-31_P][S S T  T   T   S T S T N
_Push_-53_:][S S T  T   S S T   T   T   T   N
_Push_-79_space][S S T  T   S T S N
_Push_-10_e][S S T  T   T   S S N
_Push_-12_c][S S T  T   T   T   S N
_Push_-14_a][S S S T    N
_Push_1_p][S S S T  S S N
_Push_4_s][S S T    T   S T S N
_Push_-10_e][S S S T    S T N
_Push_5_t][S S T    T   T   S N
_Push_-6_i][S S T   T   T   T   N
_Push_-7_h][S S T   T   T   S S S N
_Push_-24_W][S T    S S T   S T S N
_Copy_0-based_10th_(-79_space)][S S T   T   N
_Push_-1_n][S S T   T   T   S N
_Push_-6_i][S T S S T   S N
_Copy_0-based_2nd_(-79_space)][S S S T  S T N
_Push_5_t][S S S T  T   S N
_Push_6_u][S S S N
_Push_0_o][S T  S S T   T   N
_Copy_0-based_3rd_(-79_space)][S S S T  S S N
_Push_4_s][S S S T  T   N
_Push_3_r][S S S N
_Push_0_o][S S S T  T   N
_Push_3_r][S N
S _Duplicate_top_(3_r)][S S T   T   S T S N
_Push_-10_e][S T    S S T   T   S N
_Copy_0-based_6th_(-79_space)][S S T    T   S N
_Push_-2_m][S S T   T   T   T   S N
_Push_-14_a][S S S T    T   N
_Push_3_r][S S T    T   S S S N
_Push_-8_g][S S S S (_Note_the_additional_S_here)N
_Push_0_o][S S S T  T   N
_Push_3_r][S S S T  N
_Push_1_p][S T  S S T   T   T   N
_Copy_0-based_7th_(-79_space)][S S S T  S S N
_Push_4_s][S S T    T   T   S N
_Push_-6_i][S S T   T   T   T   N
_Push_-7_h][S S T   T   T   S T T   N
_Push_-27_T][N
S S N
_Create_Label_LOOP][S S S T T   S T T   T   T   N
_Push_111][T    S S S _Add][T   N
S S _Print_as_character][N
S N
N
_Jump_to_Label_LOOP]

বর্ণ S(স্থান), T(ট্যাব) এবং N(নতুন-লাইন) কেবল হাইলাইট হিসাবে যুক্ত করা হয়েছে।
[..._some_action]শুধুমাত্র ব্যাখ্যা হিসাবে যুক্ত।

এই হাইলাইট করা সংস্করণ চেষ্টা করুন।

হোয়াইটস্পেস হ'ল স্ট্যাক-ভিত্তিক ভাষা যা স্পেস, ট্যাব এবং নতুন লাইনগুলি বাদ দিয়ে সবকিছু উপেক্ষা করে। সিউডো-কোডে এখানে একই প্রোগ্রামটি রয়েছে:

Push all unicode values of "P: ecapsetihW tuo srorre margorp sihT", minus 111
Start LOOP
  Push 111
  Add the top two stack values together
  Print as character
  Go to the next iteration of the LOOP

এটা তোলে যত তাড়াতাড়ি এটা সব মান মুদ্রণ সম্পন্ন ত্রুটি এবং স্ট্যাকের খালি যখন এটা করতে চেষ্টা করে হবে যোগ (TSSS ) , যার জন্য স্ট্যাকের দুটি আইটেমের প্রয়োজন।

আমি এই জাভা প্রোগ্রামটির111 সাথে ধ্রুবক তৈরি করেছি , যা আমি হোয়াইটস্পেসে তৈরি পূর্ববর্তী ASCII- সম্পর্কিত চ্যালেঞ্জগুলির জন্যও ব্যবহার করেছি। এছাড়াও, বাইটগুলি সংরক্ষণ করার জন্য আমি স্পেসগুলির জন্য কিছু অনুলিপি ব্যবহার করেছি।

একটি গুরুত্বপূর্ণ বিষয় লক্ষণীয় হ'ল আমি জাভা প্রোগ্রামটি হোয়াইটস্পেস উত্তরের মধ্যে রেখেছি trick আমাকে কীভাবে একটি নম্বরকে হোয়াইটস্পেসে পুশ করা হয় তা ব্যাখ্যা করে শুরু করুন:

Sশুরুতে: স্ট্যাক ম্যানিপুলেশন সক্ষম করুন;
S: সংখ্যা হিসাবে অনুসরণ করে কি ধাক্কা;
Sবা T: যথাক্রমে ধনাত্মক বা নেতিবাচক;
কিছু Sএবং / বা T, এর পরে একটি N: বাইনারি হিসাবে নম্বর, কোথায় T=1এবংS=0

এখানে কয়েকটি উদাহরণ:

  • মান 1 চাপানো হবে SSSTN;
  • ধাক্কা মান -1 হবে SSTTN;
  • 111 মান পুশ করা হবে SSSTTSTTTTN
  • মান 0 ঠেলে হতে পারে SSSSN, SSTSN, SSSN, SSTN, SSSSSSSSSSSSN, ইত্যাদি (যখন আপনি ব্যবহার SSSN(বা SSTN), আমরা বাইনারি অংশ উল্লেখ করতে, না এটা পরোক্ষভাবে 0 কারণ পরে আমরা তার নিদর্শন বিবৃত করেছি।)

সুতরাং SSSNমানকে ঠেলে দেওয়ার জন্য যথেষ্ট 0( oএই ক্ষেত্রে চিঠির জন্য ব্যবহৃত )। তবে, এই গল্ফযুক্ত হোয়াইটস্পেস প্রোগ্রামে জাভা প্রোগ্রামটি স্থাপন করার জন্য, আমার অতিরিক্ত স্থানের দরকার ছিল, তাই প্রথম দুটি oগুলি ধাক্কা খায় SSSNতবে তৃতীয়টি ধাক্কা দেয় SSSSN, তাই জাভা প্রোগ্রামটির বাক্যটির জন্য আমাদের পর্যাপ্ত জায়গা রয়েছে।


10

সিবিএম বেসিক এবং 6502 মেশিন কোড (সি 64), 142 144 বাইট

সিনট্যাক্স ত্রুটিটি মঞ্জুরিপ্রাপ্ত হওয়ার পরে 2 বাইট যুক্ত করতে হয়েছিল ...


.prgফাইলের হেক্সডাম্প :

01 08 50 08 00 00 8F 5A 49 52 49 41 A9 17 8D 18 D0 A2 30 BD 30 08 20 D2 FF E8
E0 4B D0 F5 A2 30 BD 05 08 20 D2 FF E8 E0 44 D0 F5 A9 0D 20 D2 FF A2 1A 4C 37
A4 22 36 35 30 32 20 4D 41 43 48 49 4E 45 20 43 4F 44 45 20 3A D0 22 20 20 20
20 20 00 8D 08 01 00 97 35 33 32 37 32 2C 32 33 3A 99 22 D4 48 49 53 20 50 52
4F 47 52 41 4D 20 45 52 52 4F 52 53 20 4F 55 54 20 49 4E 20 C3 C2 CD 2D C2 C1
D3 C9 C3 20 3A D0 22 2C 58 AD 50 00 00 00

সিবিএম বেসিক ভিউ , সি 64 এর সম্পাদক হিসাবে তালিকাভুক্ত:

0 remziriastepgosubinput#new0exp0 dim.clrsavekinput#stepnew0exp<white> dim.clrsavedinput#stepstep
 dim.newl7to"6502 machine code :P"
1 poke53272,23:print"This program errors out in CBM-BASIC :P",x/p

মূল তালিকা

দৃষ্টি আকর্ষণ : বেসিক সম্পাদকটিতে এই প্রোগ্রামটি সঠিকভাবে প্রবেশ করা অসম্ভব। বেসিক সম্পাদক এ এই প্রোগ্রামটি সম্পাদনা করার চেষ্টা করবেন না , এটি ক্রাশ হবে। তবুও, এটি একটি চলমান বেসিক প্রোগ্রাম;)


6502 মেশিন কোড ভিউ :

         01 08                          ; load address

.C:0801  50 08       BVC $080B          ; jump to real start of mc

         ; line number (00 00), REM (8F) and "ziria"
.C:0803  00 00 8F 5A 49 52 49 41

.C:080b  A9 17       LDA #$17
.C:080d  8D 18 D0    STA $D018          ; set upper/lower font
.C:0810  A2 30       LDX #$30
.C:0812  BD 30 08    LDA $0830,X
.C:0815  20 D2 FF    JSR $FFD2          ; print "This program errors ..."
.C:0818  E8          INX
.C:0819  E0 4B       CPX #$4B
.C:081b  D0 F5       BNE $0812
.C:081d  A2 30       LDX #$30
.C:081f  BD 05 08    LDA $0805,X
.C:0822  20 D2 FF    JSR $FFD2          ; print "6502 machine code :P"
.C:0825  E8          INX
.C:0826  E0 44       CPX #$44
.C:0828  D0 F5       BNE $081F
.C:082a  A9 0D       LDA #$0D
.C:082c  20 D2 FF    JSR $FFD2          ; print a newline
.C:082f  A2 1A       LDX #$1A           ; error code for "can't continue"
.C:0831  4C 37 A4    JMP $A437          ; jump to error handling routine

.C:0834  22 ; '"'

         ; "6502 machine code :P"
.C:0835  36 35 30 32 20 4D 41 43 48 49 4E 45 20 43 4F 44 45 20 3A D0

         ; '"', some spaces, and next BASIC line
.C:0849  22 20 20 20 20 20 00 8D 08 01 00 97 35 33 32 37 32 2C 32 33 3A 99 22

         ; "This program errors out in CBM-BASIC :P"
.C:0860  D4 48 49 53 20 50 52 4F 47 52 41 4D 20 45 52 52 4F 52 53 20 4F 55 54
.C:0877  20 49 4E 20 C3 C2 CD 2D C2 C1 D3 C9 C3 20 3A D0

.C:0887  22 2C 58 AD 50 00 00 00

অনলাইন ডেমো ,runবেসিকsys 2049কোড হিসাবেচালিতটাইপ করুন,বেসিককোড হিসাবে চালিত করতে মেশিন কোড হিসাবেচালনা করতে, টাইপ করুনlist

বেসিক হিসাবে division by zero error in 1চলমান একটি উত্পাদন করে , মেশিন কোড হিসাবে চলমানcan't continue error

স্ক্রিনশট


ব্যাখ্যা:

কোনও .prgফাইলের প্রথম দুটি বাইট হ'ল সামান্য এডিয়ানতে লোড ঠিকানা, এটি এখানে $0801(দশমিক 2049), যা সি 64 এ বেসিক প্রোগ্রামগুলির সূচনা ঠিকানা। runবেসিক ইন্টারপ্রেটারে এই প্রোগ্রামটি শুরু করা হয়, যখন sys 2049ঠিকানায় একটি মেশিন কোড প্রোগ্রাম চালনার আদেশ command2049

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

একটি মৌলিক প্রোগ্রামের একটি লাইনের প্রথম দুটি বাইট হ'ল এখানে, পরবর্তী লাইনে একটি পয়েন্টার $0850। এটি সতর্কতার সাথে বেছে নেওয়া হয়েছে কারণ 50 08ওভারফ্লো পতাকা সেট না করা অবস্থায় পরবর্তী 8 বাইটের উপরেও একটি 6502 শাখার নির্দেশ রয়েছে - এটি মেশিন কোড হিসাবে কার্যকর করার সময় এই "মন্তব্য" লাইনের মাঝখানে কোথাও লাফানোর জন্য ব্যবহৃত হয়। 50, এখানে ব্যবহৃত opcode তাই দ্বিতীয় লাইনে শুরু হয়েছে 0850কাজ কৌতুক জন্য। এজন্য 20আপনি পূরণ করতে 5 বাইট (স্পেস অক্ষর) এর ক্রম দেখতে পাচ্ছেন । "চালিয়ে যেতে পারে না" ত্রুটি দেওয়ার জন্য মেশিন কোডটি সক্রিয়ভাবে রম ত্রুটি পরিচালনার রুটিনে ঝাঁপিয়ে পড়ে।

বেসিক কোডটি বেশ সোজা; "মুদ্রণ" এর দ্বিতীয় যুক্তি হিসাবে, দুটি অবিচ্ছিন্ন ভেরিয়েবল ( 0সিবিএম বেসিকের মান থাকা ) বিভক্ত, "বিভাগটি শূন্য দ্বারা" ত্রুটিটি ট্রিগার করে।


2
আপনি স্যার, একজন বাস্তব প্রোগ্রামার। আপনি কিভাবে এই নিয়ে এসেছেন? আতারি প্রোগ্রামিং?
ওরিওন

@ ওরিওন ধন্যবাদ :) মূলত, আমি দ্বিতীয় বেসটি সাধারণ বেসিক হিসাবে প্রবেশ করানো দিয়ে শুরু করেছিলাম, ভাইস (এমুলেটর) দ্বারা নির্মিত মেশিন কোড মনিটরের সাহায্যে এটিকে সরিয়ে দিয়েছি, মেশিন কোডটি সরাসরি র্যামে একত্রিত করেছি এবং ম্যানুয়ালি লাইন পয়েন্টারগুলির মেরামত করেছি বেসিক প্রোগ্রাম ...
ফেলিক্স Palmen

9

> <> এবং ফু , 42 বাইট

#o<"This code errors in "p"Foo"'><>'" :P"/

এটি <>> এ চেষ্টা করে দেখুন!

ফু এ চেষ্টা করুন!

ফু সবকিছুতে প্রিন্ট করে ", যেমনটি নথিভুক্ত রয়েছে, এবং শেষে শূন্য দ্বারা ভাগ করার চেষ্টা করে। এটি উপেক্ষা করে '><>'

><>"ফু" স্ট্যাকের দিকে ঠেলে দেয় তবে এটি ব্যবহার করে অবিলম্বে পপ করে p। এটি স্ট্যাকের সাথে সমস্ত #o<কিছু ছাপার পরে যখন স্ট্যাকটি খালি খালি থাকে তখন এটি কেবল জানা ত্রুটি বার্তাটি জানায়,something smells fishy...


ত্রুটির কারণ গুরুত্বপূর্ণ, ত্রুটি বার্তা নয়। এওসোলং পৃষ্ঠায় ><>ত্রুটির কারণগুলির একটি তালিকা রয়েছে, সুতরাং আমি বিশ্বাস করি যে আপনার মধ্যে একটি নির্দিষ্ট করা উচিত, তা নয় something smells fishy...
বুবলার

2
@ বুবলার একটি ত্রুটি খালি স্ট্যাক থেকে পপিংয়ের কারণে ঘটে।
ইওসোলিং ফলগুলি

3
pপপ ব্যবহার Fooখুব চালাক!
ইওসোলিং ফলগুলি

6

সি এবং পাইথন, 126 116 বাইট

-10 বাইটস @ বুবলারকে ধন্যবাদ!

#1/*
-print("This program errors out in Python :P")
'''*/
main(c){c=puts("This program errors out in C :P")/0;}//'''

পাইথন প্রিন্টে () কোনওটি নয়, সুতরাং এটির নেতিবাচক হওয়ার চেষ্টা করার অর্থ বোঝা যায় না, তাই পাইথন একটি ত্রুটি ছুড়ে ফেলে।

সি প্রিন্টেফ () এ কোন প্রকার প্রদান করে, সুতরাং এটি শূন্য দ্বারা ভাগ করা একটি ভাসমান পয়েন্ট ব্যতিক্রম দেয়।

সি এ চেষ্টা করুন!
পাইথনে চেষ্টা করুন!


1
আপনি পাইথনে -print(...)একটি বাড়াতে ব্যবহার করতে পারেন TypeErrorএবং তারপরে আপনি সি তে ফ্লোটিং পয়েন্ট ত্রুটি (শূন্য দ্বারা বিভাজন) তৈরি করতে মুক্ত হন কিছু অপ্রয়োজনীয় নিউলাইনগুলির সাথে একত্রিত, এখানে 116 বাইট ( পাইথন , সি ) রয়েছে।
বুদ্বুদ

5

অ্যাটাচি + ওল্ফ্রাম ভাষা (ম্যাথমেটিকা) , 82 বাইট

s:="Attache"
s=" Mathematica "
Throw[Print["This program errors out in",s,":P"]-0]

অনলাইনে সংযুক্তি চেষ্টা করুন! অনলাইনে গণিত চেষ্টা করুন!

এই =দুটি ভাষার অপারেটরের অর্থকে বোঝায় । অ্যাটাচে, এটি সাম্যের জন্য তুলনা করে, তবে ম্যাথেমেটিকাতে এটি পরিবর্তনশীল কার্য সম্পাদন করে। :=উভয় ভাষায় পরিবর্তনশীল অ্যাসাইনমেন্ট করে।

এখন, সংযুক্তিতে, Printমুদ্রিত স্ট্রিংগুলির একটি অ্যারের ফিরিয়ে দেয় এবং স্ট্রিং এবং পূর্ণসংখ্যার (যথা, 0) দিয়ে বিয়োগ সম্ভব নয় । সুতরাং, একটি টাইপ ত্রুটি নিক্ষেপ করা হয়। ম্যাথামেটিকায়, Printরিটার্ন দেয় Nullএবং ম্যাথমেটিকা 0সেখান থেকে ঠিক বিয়োগফল হয়। তবে, আমরা Throwএকটি nocatchত্রুটি দিয়ে ম্যানুয়ালি সেই নালটি ফেলে দিই ।


দ্রষ্টব্য: এটি কোনও বাগের কারণে সংযুক্তির বর্তমান সংস্করণগুলির জন্য কাজ করে না। আমি শীঘ্রই এটি ঠিক করার চেষ্টা করব
কনর ওব্রায়ান

5

পাইথন (2) এবং কিউবি 64 , 82 বাইট

1#DEFSTR S
s="QB64"
'';s="Python"
print"This program errors out in "+s+" :P"
CLS-1

পাইথন সংস্করণ পরীক্ষা করতে, আপনি এটি অনলাইনে চেষ্টা করতে পারেন ! কিউবি 64 সংস্করণটি পরীক্ষা করতে, আপনাকে কিউবি 64 ডাউনলোড করতে হবে।

পাইথন যা দেখে

1#DEFSTR S
s="QB64"
'';s="Python"
print"This program errors out in "+s+" :P"
CLS-1

প্রথম লাইনটি কেবল খালি প্রকাশ 1(একটি অপ-বিকল্প) এর পরে একটি মন্তব্য by

দ্বিতীয় লাইন সেট s স্ট্রিংয়ে করে "QB64"তবে তৃতীয় লাইনটি তত্ক্ষণাত এটিকে এতে পরিবর্তন করে "Python"। চতুর্থ লাইনটি সেই অনুযায়ী বার্তাটি প্রিন্ট করে।

পঞ্চম লাইনটি অন্য খালি অভিব্যক্তি, তবে এটি অপরিবর্তিত NameErrorনামের কারণে উত্থাপন করে CLS

কিউবি 64 যা দেখে

1#DEFSTR S
s="QB64"
'';s="Python"
print"This program errors out in "+s+" :P"
CLS-1

প্রথম লাইন, নম্বরযুক্ত 1# প্রতিটি ভেরিয়েবলকে সংজ্ঞায়িত করে যার নাম দিয়ে শুরু হয় S(কেস-সংবেদনশীল) স্ট্রিং ভেরিয়েবল হিসাবে। এর অর্থ আমাদের ব্যবহার করতে হবে না s$, যা পাইথনে সিনট্যাক্স ত্রুটি হবে।

দ্বিতীয় লাইন সেট s স্ট্রিংয়ে করে "QB64"'QB64 এ একটি মন্তব্য শুরু করে, তাই তৃতীয় লাইনটি কিছুই করে না। চতুর্থ লাইনটি সেই অনুযায়ী বার্তাটি প্রিন্ট করে।

পঞ্চম লাইন CLSএকটি আর্গুমেন্টের সাথে (পরিষ্কার পর্দা) চেষ্টা করে -1। কিন্তু যেহেতু CLSশুধুমাত্র অফ আর্গুমেন্ট গ্রহণ 0, 1অথবা 2, এই ত্রুটি উৎপন্ন Illegal function call। ত্রুটিটি একটি ডায়ালগ বাক্স তৈরি করে যা ব্যবহারকারীকে জিজ্ঞাসা করে তারা কার্যকর করা চালিয়ে যেতে চায় বা বাতিল করতে চায়। প্রযুক্তিগতভাবে, এর অর্থ ত্রুটিটি মারাত্মক নয় (এই ক্ষেত্রে, আপনি "চালিয়ে যাওয়া চালিয়ে যেতে পারেন" এবং আরও সমস্যা ছাড়াই প্রোগ্রামটি শেষ হয়ে যায়); তবে ওপি স্পষ্টভাবে ভাষাগুলিকে মঞ্জুরি দিয়েছে যা ত্রুটির পরেও চলতে পারে, তাই কিউবি 64 এর আচরণটি ঠিক হওয়া উচিত।


3

পার্ল 5 এবং জাভাস্ক্রিপ্ট (নোড.জেএস) , 96 বাইট

eval("printf=console.log");printf("This program errors out in %s :P",("Perl","JavaScript"));$//0

এটি এই সত্যটি ব্যবহার করে (...) পার্লের এমন একটি তালিকাকে printfব্যবহার করে যা এর বামতম উপাদানটি ব্যবহার করবে এবং এটি জাভাস্ক্রিপ্টে কমা অপারেটর, যা ডানদিকের যুক্তি ফিরিয়ে দেবে।

পার্লে শূন্য ত্রুটি দ্বারা একটি বিভাজন ঘটায় এবং একটি রেফারেন্স এরিয়ার কারণ $ জাভাস্ক্রিপ্টে সংজ্ঞায়িত করা হয়নি।

অনলাইন পার্ল চেষ্টা করুন!

অনলাইনে জাভাস্ক্রিপ্ট চেষ্টা করে দেখুন!


3

অক্টাভা এবং ম্যাটল্যাব, 67 বাইট

v=ver;disp(['This program errors out in ' v(1).Name ' :P']);v(--pi)

এটি অনলাইন চেষ্টা করুন!

নোটস: কোডটি ধরে নিয়েছে যে ম্যাটল্যাব কোনও সরঞ্জামবাক্স ছাড়াই ইনস্টল করা আছে (বা ইনস্টল হওয়া কোনও সরঞ্জামবক্সের নাম A থেকে M অক্ষর দিয়ে শুরু হয় না)।

কিভাবে এটা কাজ করে:

কোডটি ইন্টারপ্রেটার এবং টুলবক্স ব্যবহার করে সংস্করণ ডেটা পায় ver। চলমান v(1).Nameপ্রথম পণ্যের নাম নিষ্কাশন করে, এটি হয় ফিরে আসবে Octaveবা MATLABউপরের নোটটি সত্য বলে ধরে নিবে ।

প্রোগ্রামটি তখন প্রয়োজনীয় স্ট্রিংটি প্রদর্শন করে, এর সাথে Octaveবা সম্পূর্ণ করে completeMATLAB প্রয়োজনীয় হিসাবে ।

শেষ পর্যন্ত আমরা করি v(--pi)

অক্টাভেতে --হ'ল প্রাক হ্রাস অপারেটর। এর ফলে এটি প্রাক-হ্রাসের চেষ্টা করে যা ভেরিয়েবলের piঅস্তিত্ব না হওয়ায় ব্যর্থ হয় ( piআসলে ফাংশন হয়, ভেরিয়েবল নয়)।

This program errors out in Octave :P
error: in x-- or --x, x must be defined first

ম্যাটল্যাবে প্রাক-হ্রাস অপারেটরটির অস্তিত্ব নেই। যেমন বিবৃতিটি ব্যাখ্যা করা হয় v(-(-pi))যা ন্যায়বিচারের সমান v(pi)। তবে piকোনও পূর্ণসংখ্যা নয়, তাই vত্রুটি দিয়ে অ্যারেতে সূচি তৈরি করতে ব্যবহার করা যাবে না ।

This program errors out in MATLAB :P
Subscript indices must either be real positive integers or logicals.

3

সি ++ 14 (জিসিসি) / সি ++ 17 (জিসিসি) , 107 105 বাইট

#include<cstdio>
int*p,c=*"??/0"/20;int
main(){*p=printf("This program errors out in C++ 1%d :P",4+c)/c;}

এটি অনলাইন চেষ্টা করুন! (সি ++ 14)

এটি অনলাইন চেষ্টা করুন! (সি ++ 17)


ধরে নেওয়া হয় যে গ্লোবাল নেমস্পেসে <cstdio>ঘোষণা করা printfহয়েছে (পাশাপাশি)std ) এবং মৌলিক এক্সিকিউশন অক্ষর সেটটি ASCII মান ব্যবহার করে, যা উভয়ই লিনাক্সে g ++ ব্যবহার করে সত্য।

এখানে বেসিক ক্যাচটি হ'ল ভাষাটি থেকে সি ++ 17 ট্রাইগ্রাফগুলি মুছে ফেলা হয়েছে।

সি ++ ১৪ এ "??/0"একটি ট্রিগ্রাফ রয়েছে এবং এর সমতুল্য "\0"। সুতরাং *"??/0"শূন্য, এবং cশূন্য সেট করা হয়। 4 নম্বরটি যুক্তি হিসাবে পাস করা হয় printf, তারপরে বিভাজন cঅনির্ধারিত আচরণের কারণ হয়। লিনাক্স-এ, *pছবিতে আসার আগে এটি ঘটে এবং প্রোগ্রামটি একটি হয় SIGFPE

সি ++ 17 এ, "??/0"দৈর্ঘ্য 4 স্ট্রিংয়ের মতো দেখা যায়। সুতরাং *"??/0"হয় '?'বা 63, এবং c3. 7 নম্বর একটি আর্গুমেন্ট হিসাবে পাস করা হয়েছে সেট করা হয় printf, এবং এই সময় দ্বারা বিভাজন cবৈধ। যেহেতু pএকটি নেমস্পেস সদস্য, এটি প্রোগ্রামের শুরুতে শূন্য-সূচনা হয় এবং একটি নাল পয়েন্টার মান থাকে, তাই অপরিবর্তিত *pআচরণ is লিনাক্স উপর, কারণ প্রোগ্রাম প্রচেষ্টা ঠিকানা শূন্য এ মেমরির সংশোধন করতে, প্রোগ্রাম একটি পায় SIGSEGV


mainএর রিটার্ন টাইপ বাদ দেওয়া যেতে পারে, তাই -3 বাইট।
ম্যাক্স ইয়েখলাভ

2

পার্ল 5 এবং পার্ল 6 , 55 বাইট

say('This program errors out in Perl ',5-~-1,' :P').a/0

পার্ল 5 অনলাইন চেষ্টা করুন! (শূন্য দ্বারা অবৈধ বিভাগ)

পার্ল 6 অনলাইন চেষ্টা করুন! (এ জাতীয় কোনও পদ্ধতি নেই)

উপসর্গ ~উপরে প্রোগ্রামে পার্ল 6 stringification এবং মূলত একটি নো অপ হয়। পার্ল 5-তে, এটি সামান্য দিকের নয়, -1 কে 0 এ রূপান্তর করছে।

. পার্ল 6 এ মেথড কল সিনট্যাক্স এবং পার্ল 5 এ কনটেক্সটেশন।


2

সি (জিসিসি) / স্ট্যাক্স , 109 বাইট

AA=~1;
	char* s;main(){*(int*)(printf("%s C :P",s))=0;}char* s=
"This program errors out in";;;/*dp`UGYC\`Q*/

এটি অনলাইন চেষ্টা করুন! (সি (জিসিসি))

এটি অনলাইন চেষ্টা করুন! (Stax) বা রান করুন এবং এটি ডিবাগ করুন! (Stax)

সিতে সেগফল্ট স্ট্যাক্সে অবৈধ অপারেশন। আমি পছন্দ করি যে কোনও মন্তব্য নয় এমন সমস্ত কিছুই আসলে স্ট্যাক্সে ব্যবহৃত হয় used

সি

সি এটি এইভাবে দেখে। প্রথম লাইনটি কোনও অপশন নয়। দ্বিতীয় লাইনটি বার্তার সাথে মুদ্রণ করে printfএবং তারপরে সেগফাল্টগুলির কারণে =0

AA=~1;
	char* s;main(){*(int*)(printf("%s C :P\n",s))=0;}char* s=
"This program errors out in";;;/*dp`UGYC\`Q*/

Stax

স্ট্যাক প্রোগ্রামটি যখনই পপ করার চেষ্টা করে বা খালি স্ট্যাক থেকে উঁকি দেওয়ার চেষ্টা করে তখন স্ট্যাক্স প্রোগ্রামটি সমাপ্ত হয়। এটি এটিকে কিছুটা জটিল করে তোলে এবং খালি নয় এমন একটি স্ট্যাক প্রস্তুত করতে হবে। AA=~1;সিটিতে একটি বৈধ বিবৃতি থাকা অবস্থায় এটি করে

AA=~1;
AA=       10=10, returns a 1
   ~      Put it on the input stack
    1     Pushes a 1 to main stack (*)
     ;    Peek from the input stack (**)

যা সত্যিই দরকারী তা হ'ল ~, এটি একটি খালি খালি ইনপুট স্ট্যাক প্রস্তুত করে যাতে ;প্রোগ্রামটি না বেরিয়েই কার্যকর করা যায়। যাইহোক, দুই1 মূল স্ট্যাকের পরে ব্যবহার করা হয়।

দ্বিতীয় লাইনটি একটি ট্যাব দিয়ে শুরু হয় এবং স্ট্যাক্সে একটি লাইন মন্তব্য শুরু করে।

"...";;;/*dp`UGYC\`Q*/
"..."                     "This program errors out in"
     ;;;                  Peek the stack three times so that we have enough operands for the next two operations
        /                 Divide, this consumes one element of the main stack
         *                Multiply, this consumes another element
          d               Discard the result, now the TOS is the string
           p              Pop and print without newline
            `UGYC\`       Compressed string literal for " Stax :P"
                   Q      Print and keep the string as TOS
                    *     Duplicate string specific times
                          Since the element under the top of stack is `1` that was prepared in (**), this does nothing
                     /    Invalid operation error

অবৈধ ক্রিয়াকলাপটি /টিওএস (২ য় অপারেন্ড) এবং নম্বর হিসাবে স্ট্রিংয়ের জন্য অপারেশন করার চেষ্টা করছে1 (*) থেকে প্রথম অপারেন্ড হিসাবে যা অবৈধ।

দুটি অপারেন্ড অদলবদল করা হলে এটি স্ট্যাক্সে একটি বৈধ অপারেশন হবে।


2

জেলি এবং এম , 39 বাইট

İ=`ị“¢³ƥ“Ȥ¹»;“ :P”“¢ḅñ⁵ẹḞŀẊịñṙȧṄɱ»;ȮṠṛƓ

জেলি এটি চেষ্টা করুন!

এম এ চেষ্টা করুন!

দুটি ভাষাই বিপরীতভাবে প্রয়োগ İকরে 0যার ফলস্বরূপ infজেলি এবং zooএম এর জন্য ফলাফল হয় কেন আমি জানি নাzoo ডেনিসকে অনন্তর প্রতিনিধিত্ব করে

গুরুত্বপূর্ণ পার্থক্যটি হ'ল জেলের অসীমতা নিজের সমান এবং এম এর অনন্ততা নেই। সুতরাং জেলি এবং এম থেকে "নিজের সমান সমান" মনড =`ফলন এখান থেকে:10

İ=`ị“¢³ƥ“Ȥ¹»;“ :P”“¢ḅñ⁵ẹḞŀẊịñṙȧṄɱ»;ȮṠṛƓ
İ=`                                      0 in M, 1 in Jelly
    “¢³ƥ“Ȥ¹»                             Pair of compressed strings: [' M',' Jelly']
   ị                                     Index into this list with 0 or 1
            ;“ :P”                       Concatenate with the string ' :P'
                  “¢ḅñ⁵ẹḞŀẊịñṙȧṄɱ»       Compressed string: 'This program errors in'
                                  ;      Prepend this to ' Jelly/M :P'
                                   Ȯ     Print the string and return it
                                    Ṡ    Sign. M errors with a string as input and terminates
                                         Jelly returns a list of Nones
                                     ṛ   Right argument. This prevents the list of Nones from being printed
                                      Ɠ  Read a single line from input. Since input is not allowed, this produces an EOFError

জেলি এর ত্রুটি EOFError: EOF when reading a line

এম এর ত্রুটি TypeError: '>' not supported between instances of 'str' and 'int'


1
কীভাবে আপনি দুটি এসোলেংগুলিতে এটি করতে শুরু করেন?
ম্যাজিক অক্টোপাস উরন

2

ফু / সিজেম , 51 50 বাইট

"This program errors out in ""Foo"/'C'J'a'm" :P"Li

এটি ফু-র মধ্যে বিভক্ত-শূন্য ত্রুটির সাথে প্রস্থান করে এবং ক NumberFormatException এবং সিজেএম-এ প্রস্থান করে।

সিজেমে টু:

  • একটি স্ট্রিং আক্ষরিক (উদ্ধৃতিগুলির মধ্যে) নিজেকে স্ট্যাকের দিকে ঠেলে দেয়। প্রোগ্রামটি শেষ হয়ে গেলে স্ট্যাক থেকে আইটেমগুলি স্বয়ংক্রিয়ভাবে বিভাজক ছাড়া মুদ্রিত হয়।
  • /স্ট্রিং বিভক্ত করার চেষ্টা করে This program errors out in সাবস্ট্রিং উপর Foo। যেহেতু স্ট্রিংটিতে সাবস্ট্রিং থাকে না তাই এটি মূল স্ট্রিং যুক্ত একটি সিঙ্গলটন অ্যারে দেয়, যা ঠিক একইভাবে প্রদর্শিত হয়।
  • 'xএর জন্য একটি অক্ষর আক্ষরিক x, যা এক-বর্ণের স্ট্রিংয়ের মতো একইভাবে মুদ্রিত হয়। এইভাবে, আমরা সিজেমের জন্য ডেটা ঠেলাতে পারি যা ফু দ্বারা উপেক্ষা করা হয় (আমি কীভাবে লুপটি ফু-তে কার্যকর না করব তা কীভাবে নির্ধারণ করতে পারি না)।
  • Liখালি স্ট্রিংটিকে একটি পূর্ণসংখ্যার কাছে ফেলে দেওয়ার চেষ্টা করে যা ব্যর্থ হয়। স্ট্যাক থেকে সবকিছু মুদ্রিত হয়।

Foo করতে:

  • একটি স্ট্রিং আক্ষরিক (উদ্ধৃতিগুলির মধ্যে) নিজেই মুদ্রণ করে।
  • / শীর্ষ স্ট্যাক উপাদান (যা একটি অন্তর্নিহিত) দ্বারা বর্তমান কক্ষকে ভাগ করার চেষ্টা করে 0 ) । কোনও কারণে, ফু-এ-বিভক্ত 0 টি ত্রুটিগুলি ফু-তে মারাত্মক নয়, সুতরাং এটি কেবল বার্তাটি মুদ্রণ করে
    Only Chuck Norris can divide by zero.
    STDERR এ যান এবং চালিয়ে যান।
  • অজ্ঞাত অক্ষর ( 'C'J'a'mএবং Li) উপেক্ষা করা হয়।

2
পরেরটি 50 বাইট না?
বুদ্বুদ

@ বুবলার এটি সম্পাদনা করতে ভুলে গেছেন, দুঃখিত।
14 12:12

7
আমি মনে করি ফু দোভাষীতে একটি বাগ আছে। এটি স্পষ্টতই Only Jon Skeet can divide by zero. মেটা.স্ট্যাকেক্সেঞ্জাওয়ে

2

পাইথন এবং লুয়া , 111 110 102 98 95 85 বাইট

x="This program errors out in ",#[[
print(x[0]+"Python :P")
a#]]z=#print(x.."Lua :P")

ত্রুটিগুলি: পাইথন 3:

Traceback (most recent call last):
  File ".code.tio", line 3, in <module>
    a#]]z=#print(x.."Lua :P")
NameError: name 'a' is not defined

অ্যাপ্লিকেশন Lua:

lua: .code.tio:3: attempt to get length of a nil value
stack traceback:
    .code.tio:3: in main chunk
    [C]: in ?

স্পষ্টত স্বতন্ত্র।

একাধিক পার্থক্য আপত্তি:

  • <var>=<a>,<b>,... পাইথনে একটি টুপল তৈরি করে তবে লুয়ায় এটি একটি যুক্তি তালিকা তৈরি করে, যা থেকে কেবল প্রথম সদস্য নেওয়া হয়।
  • #পাইথনে একটি মন্তব্য শুরু করে তবে এটি লুয়ার দৈর্ঘ্য অপারেটর। টিপলসকে কমাতে শেষ করার অনুমতি দেওয়ার জন্য পাইথনের কাছে অতিরিক্ত প্রপস।
  • [[...]]লুয়ার মাল্টিলাইন স্ট্রিং সিনট্যাক্স, এর অর্থ এটি পাইথনের মুদ্রণ ফাংশনটি দেখতে পায় না; লুয়া ..স্ট্রিং কনটেনটেশনের জন্য ব্যবহার করার কারণে এটি প্রয়োজনীয় এবং না+
  • পাইথনের ত্রুটিগুলি দেখার পরে a, একটি অনির্ধারিত পরিবর্তনশীল; লুয়া পরে z=#print(x.."Lua :P")। ঠিক ব্যবহার করা হচ্ছে#print(x.."Lua :P") লুয়ার জন্য হয় না, কারণ কোডটি কার্যকর করার আগেও এটি একটি ত্রুটি উত্থাপন করে।

সম্পাদনা:

  • ব্যবহার করার দরকার নেই "".joinপাইথন, -১ বাইট
  • মেক xভাষা এবং স্থান উভয় ক্ষেত্রে একটি স্ট্রিংPython মুদ্রণ ফাংশনে স্ট্রিং আক্ষরিক, -8 বাইটে রাখুন
  • ব্যবহার #[[]]তুলনায় খাটো#"" এবং--[[]] , -4 বাইট
  • ব্যবহার করার দরকার নেই #1টেবিল কী, -৩ বাইট হিসাবে
  • জো কিং করেছিলেন এই , -9 বাইট
  • print(x.."Lua :P")স্পষ্টতই কাজের ফিরতি মূল্যের দৈর্ঘ্য গ্রহণ ; -1 বাইট


2

জাভা এবং সি # 242 235

/**\u002f/*/using System;/**/class G{public static void/**\u002fmain/*/Main/**/(String[]a){String s="This program errors out in ";/**\u002fSystem.out.print(s+"Java :P");/*/Console.Write(s+"C# :P")/**/;s=/**\u002f(1/0)+""/*/a[-1]/**/;}}

জাভা এবং সি # এর মধ্যে বিভিন্ন এস্কেপ হ্যান্ডলিংয়ের অপব্যবহার করা (ইউনিকোড পলায়ন কোড জাভাতে পার্স করার আগে পার্স করা হয় এবং সি # তে নয়) এক প্রকার প্রিপ্রোসেসর হিসাবে, যাদুটির কাজকে বাদ দেয় \u0027, বাকি কিছু "টগল-মন্তব্য" হয়

সম্পাদনা: @ কেভিন ক্রুজসেনের একটি পয়েন্টারকে ধন্যবাদ 8 বাইট বন্ধ

সম্পাদনা: নিয়ম ডার্প স্থির


আপনি উভয় Stringএ পরিবর্তন করে 6 বাইট গল্ফ করতে পারেন var(জাভা 10 এটি সমর্থন করে)। (অথবা 5 পরিবর্তন করে String s="...";করতে String s="...",x;এবং অপসারণ Stringসামনে x=জাভা 9 বা পূর্বে)।
কেভিন ক্রুইজসেন

1
এস-স্ট্রিংয়ের পুনরায় ব্যবহার করা জাভা 99 এবং এর আগেও works @
কেভিন

2

AutoHotKey / সি #, 155 133 128 122 বাইট

সিনট্যাক্স হাইলাইটিং এটি আমার চেয়ে আরও ভাল ব্যাখ্যা করেছে:

সি # রানটাইমবাইন্ডার এক্সসেপশন: 'অ-প্রতিনিধি প্রকারের জন্য আবেদন করা যায় না'

;dynamic
i="This program errors out in " ;Console.Write(i+"c# :P");i();/*
i:=SubStr(i,2,27)
send %i%AutoHotkey :P
Throw */

অটোহটকি ত্রুটি: একটি ব্যতিক্রম ছুঁড়েছিল

;dynamic
i="This program errors out in " ;Console.Write(i+"c# :P");i();/*
i:=SubStr(i,2,27)
send %i%AutoHotkey :P
Throw */

সম্পাদনা:

  1. একটি ভার সরানো
  2. -5 বাইট দুধের জন্য ধন্যবাদ

2
সি # তে নিক্ষেপ করার জন্য এখানে কিছুটা ছোট ব্যতিক্রম i+=i[-1]। System.IndexOutOfRangeException: 'সূচকের বিন্যাসের বাইরে ছিল' '
দুধ

2
মাইক্রোসফ্ট.সিএসআরপি.রুনটাইমবাইন্ডার.রুনটাইম বাইন্ডার এক্সসেপশন: এর dynamicপরিবর্তে কিছুটা ছোট করে এখনও ব্যবহার করা varযায় না এবং এর সাথে 'একটি অ-প্রতিনিধি প্রকারের আবেদন করা যায় না' i()
দুধ

2

পিএইচপি 7+ / জাভাস্ক্রিপ্ট, 90 89 বাইট

এটি উভয় ভাষায় এই কোডটি লেখার অনুমতি দেয়, খুব অনুরূপ সিনট্যাক্স সহ 2 টি ভাষা ব্যবহার করে।

জাভা স্ক্রিপ্টে উপস্থিত নেই এমন একটি সম্পত্তি দ্বারা ভাষা []বিভাজনটি করা হয় : পিএইচপি জাভাস্ক্রিপ্টে সত্যবাদী হওয়ার সময় (খালি অ্যারে) একটি মিথ্যা মান হিসাবে বিবেচনা করে (কারণ এটি একটি বস্তু এবং অবজেক্টগুলি সর্বদা সত্য হয়, এমনকি new Boolean(false))।

$X='This program errors out in %s :P';([]?console.log($X,'JavaScript'):printf($X,PHP))();


এক্সেকিউশন:

কোডের নিম্নলিখিত টুকরা উপর ফোকাস করা হবে: ([]?console.log($X,'JavaScript'):printf($X,PHP))();

স্ট্রিং অ্যাট্রিবিউশন উভয় ভাষায় একই কাজ করে।

এই কোডটি "টার্নারি অপারেটর" ( জাভাস্ক্রিপ্ট , পিএইচপি) ব্যবহার করে ) ব্যবহার করে, যা উভয় ভাষায় বেশিরভাগ ক্ষেত্রে একইভাবে কাজ করে।

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

জাভাস্ক্রিপ্ট console.log($X,'JavaScript')টুকরা চালাবে , যা ফিরে আসে undefined

পরে, যখন আপনি মৃত্যুদন্ড কার্যকর করার চেষ্টা করেন (...)(), আপনি একটি Uncaught TypeError: (intermediate value)(intermediate value)(intermediate value) is not a function(গুগল ক্রোমে) পাবেন।

পিএইচপি

পিএইচপি printf($X,PHP)টুকরা কার্যকর করা হবে ।

পিএইচপি-তে, printfফাংশনটি আউটপুটটির দৈর্ঘ্য দেয়

পিএইচপি-র একটি আকর্ষণীয় কার্যকারিতা রয়েছে: এটি এমন কোনও ফাংশন সম্পাদন করতে পারে যার নাম একটি পরিবর্তনশীল (বা পিএইচপি 7 সাল থেকে একটি এক্সপ্রেশনের ফলাফল হিসাবে) সংরক্ষণ করা থাকে যা একটি সিনট্যাক্স ত্রুটি প্রতিরোধ করে preven

পিএইচপি তার পরে ফাংশনটি চালানোর চেষ্টা করবে কে নামটি প্রকাশের ফলাফল []? ... :printf($X,PHP)(যা সংখ্যাটি 33)।
তবে সেই আকর্ষণীয় কার্যকারিতাটিতে একটি সতর্কতা রয়েছে: কেবল স্ট্রিং গ্রহণ করে (দুহ!)।

এটি একটি Fatal error: Function name must be a stringকারণ, কারণ 33একটি int


আমাকে 1 বাইট বাঁচানোর জন্য শিয়েরু আসাকোটোর ধন্যবাদ !


1
[]এর চেয়ে কম '0'এবং জেএস এবং পিএইচপি-তেও আলাদাভাবে মূল্যায়ন করা হয়, তাই সম্ভবত এখানে -1 বাইট?
শিয়েরু আসাকোটো

আমি যে সমস্যা, যেখানে সঙ্গে প্রশ্ন প্রচুর আছে []পরিবর্তে ব্যবহার করা হবে চাহিদা '0', '\0', '\0'=="0", এবং যে ব্যবহৃত []আগে হিসাবে ভাল। তবে এই প্রশ্নটি চিহ্নিত করার জন্য আপনাকে ধন্যবাদ।
ইসমাইল মিগুয়েল

1

পার্ল 5 এবং সি, 95 বাইট

//;$_='
main(){puts(puts("This program errors out in C :P"));}//';/T.*n /;print$&,"perl :P";die

//; পার্ল মূলত একটি এনওপি, এবং এটি সি-তে একটি মন্তব্য is

সুতরাং সি প্রোগ্রাম কার্যকরভাবে:

main(){puts(puts("This program errors out in C :P"));}

যা প্রয়োজনীয় স্ট্রিং প্রিন্ট করে, তারপরে চালানোর চেষ্টা করে puts(32)। এটি সি তে প্রযুক্তিগতভাবে অপরিজ্ঞাত আচরণ, তবে এটি টিআইও এবং আমার যে সমস্ত সিস্টেমে অ্যাক্সেস করে রয়েছে তার উপর সেগমেন্টেশন ত্রুটি ঘটায়।

পার্ল প্রোগ্রাম পুরো সি প্রোগ্রামকে স্ট্রিং হিসাবে বিবেচনা করে, /T.*n /ম্যাচ করার জন্য রেজেক্স ব্যবহার করে This program errors out inএবং তারপরে এবং এটি মুদ্রণ করে perl :Pdieপ্রোগ্রামটি ত্রুটির সাথে ক্র্যাশ করে তোলে Died at script_name line 2

আপনি যদি এটি ত্রুটি হিসাবে পছন্দ না করেন 1/0তবে একই দৈর্ঘ্য এবং একটি Illegal division by zeroত্রুটির সাথে ক্র্যাশ । আমি ঠিক dieআরও পছন্দ করি ;)

এটি অনলাইন চেষ্টা করুন! (গ)

এটি অনলাইন চেষ্টা করুন! (পার্ল)


1

ভিবিএস স্ক্রিপ্ট, জেএসক্রিপ্ট, 72 বাইট

x="VB"
'';x='J'
WScript.echo("This program errors out in "+x+"Script")
y

ভিবিএস স্ক্রিপ্ট "মাইক্রোসফ্ট ভিবিএস স্ক্রিপ্ট রানটাইম ত্রুটি প্রিন্ট করবে: টাইপ মেলেনি: 'y'"
জেএসক্রিপ্ট মুদ্রণ করবে "মাইক্রোসফ্ট জেএসক্রিপ্ট রানটাইম ত্রুটি: 'y' অপরিবর্তিত


1

জাভাস্ক্রিপ্ট এবং পাইথন 3, 105 91 বাইট

NameError: name 'console' is not definedপাইথন 3 দ্বারা ত্রুটিগুলি

a="This program errors out in %s :P"
1//2;print(a%"Python 3")
console.log(a,"JavaScript")()

এটি অনলাইন চেষ্টা করুন!

... এবং TypeError: console.log(...) is not a functionজাভাস্ক্রিপ্ট দ্বারা ।

a="This program errors out in %s :P"
1//2;print(a%"Python 3")
console.log(a,"JavaScript")()

এটি অনলাইন চেষ্টা করুন!


1

জাভা (জেডিকে) / জাভাস্ক্রিপ্ট (নোড.জেএস), 154 বাইট

class P{P(){var s="This program errors out in ";try{System.out.printf("%sJava :P",s);}finally{if(1!='1'){var a=0/0;}throw new Error(s+"JavaScript :P");}}}

এটি অনলাইন চেষ্টা করুন! (জাভা)

এটি অনলাইন চেষ্টা করুন! (জাভাস্ক্রিপ্ট)

জাভা আউটপুট:

This program errors out in Java :P
Exception in thread "main" java.lang.ArithmeticException: / by zero
    at P.(Main.java:1)

জাভাস্ক্রিপ্ট আউটপুট (stderr থেকে):

Error: This program errors out in JavaScript :P
    at P (/home/runner/.code.tio:1:185)

এই জাভাস্ক্রিপ্ট এর দুর্বল টাইপিং (সুবিধা নেয় 1=='1'ভাষা সনাক্ত করতে), এবং জাভা এবং জাভাস্ক্রিপ্ট (একই কিওয়ার্ড var, class), এবং অনুরূপ ত্রুটি কনস্ট্রাকটর ( new Error()) বহুভাষিক করা।


1

পাওয়ারশেল ভি 6 এবং পাওয়ারশেল ভি 2, 73 বাইট

"This errors out in PowerShell v$($PSVersionTable.PSVersion) :P"
1-shl1/0

এটি অনলাইন চেষ্টা করুন!

এটি ভি 2-তে পার্সিং ত্রুটি ফেলে দেবে কারণ -shlv3- তে চালু হয়েছিল। v3 + এর পরে 0 দ্বারা ভাগ করার চেষ্টা করার আগে মানটি সঠিকভাবে স্থানান্তর করতে সক্ষম হবে, সুবিধামত একটি বিভাগ-বাই শূন্য ত্রুটি ছুঁড়ে ফেলা হবে। উভয় সংস্করণে $ PSVersionTable হ্যাশম্যাপ রয়েছে যা PSVersionক্ষেত্রটি ধারণ করে


0

লিনাক্সে সি (জিসিসি) / সি (জিসিসি) ম্যাকের (160)

#include <sys/utsname.h>
main(){struct utsname n;float g;uname(&n);printf("This program errors out in C(gcc) on %s :P\n",n.sysname);g=1/(int)gamma(1);abort();}

ম্যাকের সাথে অনির্ধারিত; মূলত, জন কুক নির্দেশ করেছেন ( তার ব্লগে ) যে পসিক্স গামা সংজ্ঞা দেয় না; লিনাক্স গামা ফাংশনের লগ ব্যবহার করে (লগ (গামা (1)) 0 ফিরে আসবে যা ভাসমান পয়েন্ট ব্যতিক্রমকে ট্রিগার করবে); ওএসএক্স "ট্রু" গামা ফাংশন ব্যবহার করে, (যা অফিসিয়ালি পিওএসআইএক্স প্রতি tgamma বলা হয়); এটি 1 প্রত্যাবর্তন করে যা পরিত্যক্ত বিবৃতিতে আঘাত করবে; আমি এটি একটি ভিন্ন ভাসমান পয়েন্ট ত্রুটি ছুঁড়ে ফেলার চেষ্টা করেছি (উদাঃ sqrt (-1) তবে আমি ভুলে যাচ্ছি যে কীভাবে একটি ত্রুটি ছুঁড়ে বনাম ঠিক শূন্য ফিরে আসে)


0

পার্ল, বাশ (78 বাইট)

printf "This program errors out in ";eval 'echo Bash :P'||print"Perl :P
";
a()

পার্লে আউটপুট:

This program errors out in Perl :P
Undefined subroutine &main::a called at /tmp/perlbash line 3.

বাশে আউটপুট:

This program errors out in Bash :P
/tmp/perlbash: line 4: syntax error: unexpected end of file

(দ্রষ্টব্য যে বাশ সত্যই line 4ত্রুটি প্রদর্শন করছে , তবুও লাইন 3 লাইন ফিডের সাথে শেষ হবে না ...)



0

সি (জিসিসি) এবং হাস্কেল , 135 বাইট

char/*x=0-- */*
s="This program errors out in ";
int main(){--s;*s=printf("%sC :P",s+1);}//-}=0;main=mapM print[s++"Haskell :P",tail""]

এটি অনলাইনে চেষ্টা করুন (С)! এটি অনলাইনে চেষ্টা করুন (হাস্কেল)!

মন্তব্যগুলি অন্তর্নিবেশ করে ফলাফল অর্জন করা হয়, সি সংস্করণটি মূলত এটি হ'ল:

char * s = "This program errors out in ";
int main ()
{
   --s;
   *s = printf ("%sC :P", s + 1);
}

(স্ট্রিং শুরুর আগে লেখার মাধ্যমে ব্যর্থতা অর্জন করা হয়)।

অন্যদিকে, হাস্কেল সংস্করণটি নিম্নলিখিতটিতে হ্রাস করে:

char /* x = 0 -- a useless operator (/*) taking two arguments
s = "This program errors out in ";
int main () = 0 -- a useless function int taking two arguments
main = mapM print [s ++ "Haskell :P", tail ""]

(একটি ফাঁকা তালিকার লেজ নিয়ে ব্যর্থতা অর্জন করা হয়)

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