আমরা যদি বইটি (বা যদি আপনি পছন্দ করেন তবে ভাষার স্পেসিফিকেশনের অন্য কোনও সংস্করণ) দিয়ে যাই , একটি সি বাস্তবায়নের কতটা গণনার শক্তি থাকতে পারে?
নোট করুন যে "সি বাস্তবায়ন" এর একটি প্রযুক্তিগত অর্থ রয়েছে: এটি সি প্রোগ্রামিং ভাষার স্পেসিফিকেশনের একটি নির্দিষ্ট ইনস্ট্যান্টেশন যেখানে বাস্তবায়ন-সংজ্ঞায়িত আচরণ নথিভুক্ত করা হয়। এসি বাস্তবায়নকে প্রকৃত কম্পিউটারে চালাতে সক্ষম হতে হবে না। এটিতে বিট-স্ট্রিং প্রতিনিধিত্বকারী প্রতিটি বস্তু এবং একটি প্রয়োগ-সংজ্ঞায়িত আকারযুক্ত প্রকারগুলি সহ পুরো ভাষাটি প্রয়োগ করতে হবে।
এই প্রশ্নের প্রয়োজনে, কোনও বাহ্যিক স্টোরেজ নেই। আপনি সম্পাদন করতে পারেন কেবলমাত্র ইনপুট / আউটপুট getchar
(প্রোগ্রাম ইনপুট পড়ার জন্য) এবং putchar
(প্রোগ্রাম আউটপুট লিখতে)। এছাড়াও যে কোনও প্রোগ্রাম যা অপরিজ্ঞাত আচরণের জন্য প্রার্থনা করে তা অবৈধ: একটি বৈধ প্রোগ্রামের অবশ্যই তার আচরণগত বৈশিষ্ট্য অবশ্যই সি স্পেসিফিকেশন প্লাস প্রয়োগের বর্ণনামূলক সংজ্ঞা ব্যবহারের পরিশিষ্টের সাথে পরিশিষ্ট জে (সি 99 এর জন্য) তালিকাভুক্ত করা উচিত। নোট করুন যে লাইব্রেরির ফাংশনগুলিকে মান হিসাবে উল্লেখ করা হয়নি যা অপরিজ্ঞাত আচরণ।
আমার প্রাথমিক প্রতিক্রিয়াটি হ'ল একটি সি বাস্তবায়ন সীমাবদ্ধ অটোমেটোন ছাড়া আর কিছুই নয়, কারণ এটি ঠিক করার যোগ্য মেমোরির পরিমাণের সীমাবদ্ধতা রয়েছে (আপনি sizeof(char*) * CHAR_BIT
স্টোরেজের বিটগুলির চেয়ে বেশি সম্বোধন করতে পারবেন না , কারণ সংরক্ষণ করার সময় স্বতন্ত্র মেমরি ঠিকানার আলাদা বিট প্যাটার্ন থাকতে হবে) একটি বাইট পয়েন্টারে)।
তবে আমি মনে করি একটি বাস্তবায়ন এর চেয়ে আরও বেশি কিছু করতে পারে। আমি যতদূর বলতে পারি, মানটি পুনরাবৃত্তির গভীরতার কোনও সীমাবদ্ধতা আরোপ করে না। সুতরাং আপনি নিজের পছন্দ মতো যতগুলি পুনরাবৃত্ত ফাংশন কল করতে পারেন, কেবলমাত্র সীমাবদ্ধ সংখ্যার কলগুলিতে অ-ঠিকানাযোগ্য ( register
) যুক্তি ব্যবহার করা উচিত । সুতরাং একটি সি বাস্তবায়ন যা নির্বিচারে পুনরাবৃত্তির অনুমতি দেয় এবং register
অবজেক্টের সংখ্যার কোনও সীমা থাকে না তা ডিটারমিনিস্টিক পুশডাউন অটোমেটা এনকোড করতে পারে।
এটা কি সঠিক? আপনি কি আরও কার্যকর সি প্রয়োগ করতে পারেন? একটি টুরিং-সম্পূর্ণ সি বাস্তবায়ন কি বিদ্যমান?