এটি আপনার প্রশ্নের সাধারণ উত্তর নয়, তবে কাঠামোগত প্রোগ্রামিং উপপাদ্য অনুসারে যা যা প্রয়োজন তা হল নির্বাচন করার দক্ষতা (যেমন, if
সি / সি ++ তে) এবং পুনরাবৃত্তি (যেমন, while
সি / সি ++ তে)। সম্পাদনা করুন: মন্তব্যগুলিতে ডেভ ক্লার্কের নির্দেশ অনুসারে, কাঠামোগত প্রোগ্রামিং উপপাদ্যেরও ক্রম প্রয়োজন। আমি প্রাথমিকভাবে এটি তালিকাবদ্ধ করিনি যেহেতু আমি পাঠককে মঞ্জুর করার জন্য গ্রহণ করেছি তা বুঝতে পারে যে অন্যান্য নির্দেশাবলীর বুনিয়াদি ব্লকগুলি যেমন মেমোরি স্টোর থেকে পড়ার জন্য এবং পরে লেখার জন্য পরে বর্ণিত, ইত্যাদিও প্রয়োজনীয় ছিল)। এটি অবশ্যই স্পষ্ট করে বলা ভাল; আপনারও এই জিনিসগুলি করতে সক্ষম হবেন।
যেহেতু উভয়কে শর্তসাপেক্ষ জাম্প নির্দেশ ব্যবহার করে প্রয়োগ করা যেতে পারে (উদাহরণস্বরূপ, JNZ
x86 এ), এটিও ট্যুরিং-সমতুল্যতার পক্ষে যথেষ্ট।
নোট করুন যে অন্যান্য জিনিসগুলি প্রয়োজন, অর্থাত্, কিছু প্রকারের বাহ্যিক মেমরি স্টোরগুলিতে একটি সীমাহীন সংকেত (উদাহরণস্বরূপ, বিট ... 0 বা 1) লেখার ক্ষমতা। সেই অর্থে, প্রকৃত কম্পিউটারগুলি টুরিং সমতুল্য নয়, যেহেতু তাদের কারও কাছেই অসীম পরিমাণে সঞ্চয়স্থান নেই। ট্যুরিং মডেলটি এখনও কার্যকর, যেহেতু মেমরির পরিমাণটি সাধারণত প্রচুর পরিমাণে বিশাল এবং এমনকি কোনও বাস্তব কম্পিউটার সমাধান করতে পারে এমন কোনও সমস্যা একটি ডিটারমিনিস্টিক সসীম অটোমেটনের মাধ্যমে সমাধান করা যায়, সেই মডেলটি গণনা বিশেষভাবে কার্যকর নয় (যেহেতু রাজ্যের সংখ্যা নিখরচায় বিশাল হবে)।
দ্রষ্টব্য যে এটি অগত্যা sepp2k এর উত্তরের সাথে মতবিরোধ নয়; এটি একই প্রশ্নটি সম্পর্কে চিন্তা করার এক অন্যরকম উপায়।
সম্পাদনা করুন:
এছাড়াও লক্ষ করুন যে আপনার সত্যিকারের if
এবং while
সি / সি ++ উভয়ই দরকার নেই । আপনি নিম্নলিখিত if
ব্যবহার করে অনুকরণ করতে পারেন while
:
bool C;
// some code that sets C
if(C) { /* some other code /* }
// rest of the program
নিম্নলিখিত কোডটি সর্বদা সমতুল্য:
bool C;
// some code that sets C
bool C2 = C;
while(C2) { /* some other code /* C2 = false; }
// rest of the program
ঠিক আছে ... নির্মাণ কাজ করা উচিত এবং যদি আপনি যত্নবান হন তবে তা সম্ভব। এটিও নোট করুন যে আপনার যদি পুনরাবৃত্ত ফাংশনগুলি থাকে তবে আপনার শেষ পর্যন্ত নির্বাচনেরও দরকার হয়; যেহেতু নির্বাচন ছাড়াই রিকার্সিভ ফাংশনগুলি সত্যই বেসের কেসগুলি বাস্তবায়িত করতে পারে না, সুতরাং যে কোনও পুনরাবৃত্ত ফাংশন ফলস্বরূপ অসীম পুনরাবৃত্তি হতে পারে।
সম্পাদনা করুন:
এছাড়াও, আপনার প্রশ্নটি সম্পর্কে যে প্রোগ্রামটি থামছে না তা লেখার ক্ষমতাটি টুরিং সমতুল্যের পক্ষে যথেষ্ট কিনা, উত্তরটি নেই; এটি প্রয়োজনীয়, তবে পর্যাপ্ত নয়। আমরা এমন ভাষায় লিখিত প্রোগ্রামগুলির থামার সমস্যার সমাধান করতে পারি যা থামাতে ব্যর্থ এমন প্রোগ্রামগুলিকে প্রকাশ করতে পারে না; উত্তরটি হ'ল সমস্ত প্রোগ্রামের জন্য "প্রোগ্রামটি থামবে"। তবে, আমরা এমন একটি ভাষা নির্ধারণ করতে পারি যেখানে কেবলমাত্র নির্দেশনা মেশিনকে একটি অসীম লুপে প্রবেশ করে ... এই জাতীয় ভাষা টুরিং-সমতুল্য নয়।