.
Ajax,.
Ford,.
Act I:.
Scene I:.
[Enter Ajax and Ford]
Scene II:.
Ford:
Open your mind.Is sky nicer than you?If so, let us return to scene IV.
Ajax:
Open your mind.You is sum you and sum big big big big big big pig and big big big big cat!
Scene III:.
Ford:
Speak thy mind.
Ajax:
You is sum you and pig!Is you as big as zero?If so, let us return to scene II.Let us return to scene III.
Scene IV:.
[Exeunt]
অবরুদ্ধ সংস্করণ:
The Decoding of the Lengths of Veronan Runs - A Drama of PPCG.
Romeo, quite a character.
Juliet, Romeo's lover and multiplicand.
Act I: In which the lengths of runs are decoded.
Scene I: A silent entrance.
[Enter Romeo and Juliet]
Scene II: In which neither Romeo nor Juliet believes the other open-minded.
Juliet:
Open your mind. Is my mother jollier than thou? If so,
we must proceed to scene IV.
Romeo:
Open your mind. Thou art the sum of thyself and the sum of my good aunt and
the difference between nothing and the quotient of the square of twice the sum
of thy foul fat-kidneyed goat and thy death and thy evil variable!
Scene III: In which Romeo snaps and brutally insults Juliet.
Juliet:
Speak thy mind.
Romeo:
Thou art the sum of thyself and a hog! Art thou as rotten as nothing? If so,
let us return to scene II. Let us return to scene III.
Scene IV: Finale.
[Exeunt]
আমি drsam94 এর পাইথন এসপিএল সংকলক ব্যবহার করছি , যার কয়েকটি বাগ রয়েছে (যার কারণ হিসাবে, আমি এর Open your mind
পরিবর্তে ব্যবহার করিOpen thy mind
গল্ফ সংস্করণের )।
এই প্রোগ্রামটি চালাতে, ব্যবহার করুন:
$ python splc.py rld.spl > rld.c
$ gcc rld.c -o rld.exe
$ echo -n ":144,1'1" | ./rld
:4444,'
কিভাবে এটা কাজ করে
এসপিএল একটি প্রগা es় প্রোগ্রামিং ভাষা যা প্রোগ্রামগুলি শেক্সপিয়ার নাটকের মতো দেখতে তৈরি করার জন্য ডিজাইন করা হয়েছে। এটি ভ্যারিয়েবল হিসাবে অক্ষর ব্যবহার করে এটি করে এবং অক্ষর একে অপরকে কিছু বলে রাখার মাধ্যমে প্রক্রিয়াজাত করা হয়।
The Decoding of the Lengths of Veronan Runs - A Drama of PPCG.
এটি নাটকের শিরোনাম; এটি সংকলক দ্বারা উপেক্ষা করা হয়।
Romeo, quite a character.
Juliet, Romeo's lover and multiplicand.
এখানে আমরা প্রোগ্রামের বাকী অংশে ব্যবহৃত ভেরিয়েবলগুলি ঘোষণা করছি। সবকিছু বেটওয়ান ,
এবং.
কম্পাইলার দ্বারা উপেক্ষা করা হয়। এই ক্ষেত্রে, আমরা ঘোষণা করি Romeo
, অক্ষরটি ডিকোড হচ্ছে এমনটিকে Juliet
ধরে রাখার জন্য ব্যবহৃত হয়েছিল, এবং অক্ষরটির দৈর্ঘ্য দৈর্ঘ্য ধরে রাখে।
Act I: In which the lengths of runs are decoded.
এখানে আমরা প্রোগ্রামটিতে প্রথম এবং একমাত্র অভিনয় ঘোষণা করি। ক্রিয়াকলাপ এবং দৃশ্যগুলি লেবেলের মতো; এগুলি যে কোনও সময় ব্যবহার করে লাফিয়ে উঠতে পারেlet us return to scene II
বা এর কোনও বৈকল্পিকের । আমরা কেবল একটি আইন ব্যবহার করি কারণ এটি আমাদের প্রয়োজনের জন্য যথেষ্ট। আবার এর মধ্যে :
এবং এর মধ্যে যে কোনও কিছুই .
সংকলক উপেক্ষা করে।
Scene I: A silent entrance.
এখানে আমরা প্রথম দৃশ্যটি ঘোষণা করি। রোমান সংখ্যায় দৃশ্যগুলি সংখ্যাযুক্ত: প্রথমটিScene I
, দ্বিতীয় Scene II
এবং আরও অনেক কিছু।
[Enter Romeo and Juliet]
এটি একটি মঞ্চের দিক; এটিতে, আমরা বলিRomeo
এবং Juliet
"পর্যায়" সম্মুখের আসা ভেরিয়েবল। "মঞ্চ" এ একবারে দুটি মাত্র ভেরিয়েবল থাকতে পারে; মঞ্চটি ব্যবহার করা হয় যাতে কম্পাইলারটি নির্ধারণ করতে পারে যে তারা যখন কথা বলছেন তখন কোন ভেরিয়েবল সম্বোধন করছে। কারণ আমাদের কেবল দুটি পরিবর্তনশীল, রোমিও এবং জুলিয়েট প্রোগ্রামটির দৈর্ঘ্যের জন্য স্টেজে থাকবে।
Scene II: In which neither Romeo nor Juliet believes the other open-minded.
আর একটি দৃশ্যের ঘোষণা। দ্বিতীয় রান-লেংথটি ডিকোড করার জন্য দৃশ্য দ্বিতীয়টি লাফিয়ে উঠবে।
Juliet:
এই ঘোষণার ফর্মটির অর্থ জুলিয়েট কথা বলতে শুরু করবে। পরের দিন পর্যন্ত সবকিছুRomeo:
, পর্যায়ের দিকনির্দেশ, বা দৃশ্য / অভিনয় ঘোষণার জুলিয়েটের বক্তৃতাযুক্ত একটি লাইন হবে এবং এভাবে "আমি" জুলিয়েটকে "আপনি" / "তুমি" রোমিওতে উল্লেখ করবে ইত্যাদি।
Open your mind.
এই কমান্ডটি STDIN ইন থেকে একক অক্ষরের অর্ডিনাল মান সঞ্চয় করে Romeo
।
Is my mother jollier than thou?
এসপিএলে, বিশেষ্যগুলি ইতিবাচক বা নেতিবাচক কিনা তার উপর নির্ভর করে 1 বা 1-তে অনুবাদ করে। এক্ষেত্রে,my mother
১ টি অনুবাদ করে 1. বিশেষণ (ধনাত্মক বা negativeণাত্মক) তাদের বিশেষ্যটিকে 2 দ্বারা গুণান।
এটি একটি প্রশ্ন; এতে জুলিয়েট জিজ্ঞাসা করেছে যে my mother
( একে একে 1) রোমিওর চেয়ে "জোলিয়ার" কিনা। তুলনামূলক হয় হয় অনুবাদ less than
(যদি তারা নেতিবাচক, মত worse
) বা greater than
(যদি তারা ইতিবাচক হয়, যেমন)jollier
)। অতএব, এই প্রশ্নে উত্থিত হয় Is 1 greater than you?
।
আমরা এই প্রশ্নটি করার কারণটি হ'ল ইনপুটটির শেষটি সনাক্ত করা। যেহেতু এর মানEOF
প্ল্যাটফর্ম পরিবর্তিত হয় তবে সাধারণত এটি 1 এর চেয়ে কম হয়, আমরা এটি সনাক্ত করতে এটি ব্যবহার করি।
If so, we must proceed to scene IV.
পূর্ববর্তী প্রশ্নটি যদি মূল্যায়ন করা হয় true
আমরা চতুর্থ দৃশ্যে ঝাঁপ দাও — যা কেবল প্রোগ্রামটির শেষ। সংক্ষেপে, আমরা যদি একটি ইওএফ সনাক্ত করি তবে আমরা প্রোগ্রামটি শেষ করি।
Romeo:
এটি এখন রোমিওর লাইন: যথাক্রমে রোমিও এবং জুলিয়েটকে "আমি" এবং "আপনি" উল্লেখ করেছেন।
Open your mind.
আবার, এই বিবৃতিটি এসডিডিআইএন থেকে একক চরিত্রের অর্ডিনাল মান জুলিয়েটের মধ্যে রাখে, যা এই ক্ষেত্রে সঞ্চিত অক্ষরের রান-দৈর্ঘ্য Romeo
।
Thou art the sum of thyself and the sum of my good aunt and the difference
between nothing and the quotient of the square of twice the sum of thy foul
fat-kidneyed goat and thy death and thy evil variable!
এটির বিশদ বিবরণটি দেখতে খুব বেশি দীর্ঘ, তবে কেবলমাত্র আমার উপর বিশ্বাস করুন যে এটি অনুবাদ করে Juliet -= 48
। আমরা এটি করি কারণ জুলিয়েট একটি সংখ্যার ASCII মান রাখে এবং ord('0') == 48
; 48 বিয়োগের ক্ষেত্রে, আমরা একটি সংখ্যার ASCII মান থেকে সংখ্যায় অনুবাদ করি।
Scene III: In which Romeo snaps and brutally insults Juliet.
আর একটি দৃশ্যের ঘোষণা। এটি লুপের জন্য যা আমরা বারবার অক্ষরের মান মুদ্রণ করি Romeo
,Juliet
বার।
Juliet:
Speak thy mind.
এই বক্তব্যটি রোমিওকে একটি চরিত্র হিসাবে তার মান মুদ্রণ করে; এটি হ'ল, রোমিওতে পূর্বে যা কিছু চরিত্রের মান সংরক্ষণ করা হয়েছিল তা এখন আউটপুট।
Romeo:
Thou art the sum of thyself and a hog!
একটি হগ একটি নেতিবাচক বিশেষ্য, সুতরাং a hog
-1 এ অনুবাদ; সুতরাং, এই বিবৃতি মূল্যায়ন Juliet -= 1
।
Art thou as rotten as nothing?
রোমিও এখানে জিজ্ঞাসা করেছে জুলিয়েট কি "পচা" তত সমান বা 0 এর সমান?
If so, let us return to scene II.
জুলিয়েটের মান যদি 0 হয় তবে আমরা অন্য চরিত্রের রান-লেংথটি ডিকোড করতে দ্বিতীয় দৃশ্যে ফিরে আসি।
Let us return to scene III.
অন্যথায়, আমরা পুনরায় রোমিওর চরিত্রটি আউটপুট করতে তৃতীয় দৃশ্যে ফিরে এসেছি।
Scene IV: Finale.
[Exeunt]
এই চূড়ান্ত দৃশ্যের ঘোষণাটি প্রোগ্রামের শেষের জন্য কেবল একটি চিহ্নিতকারী। [Exeunt]
মঞ্চ নির্দেশনা কম্পাইলার পেতে আসলে চূড়ান্ত দৃশ্য উৎপন্ন প্রয়োজন।