ট্রফ টুরিং কি সম্পূর্ণ?


9

ট্রফ ব্যবহার করে .deএবং ব্রাঞ্চিং ব্যবহার করে উভয় ম্যাক্রো সংজ্ঞা সমর্থন করে .if( ট্রফ ব্যবহারকারীর ম্যানুয়ালটির পৃষ্ঠা 5 এবং 6 দেখুন )। এই দুটি ক্ষেত্রে, এটি অনেকটা টেক্সের মতো। যাইহোক, আমি ট্রফ-তে লেখা অত্যন্ত জটিল প্রোগ্রামগুলি সম্পর্কে জানি না (টেক্সের জন্য টিকজেড বলার অপেক্ষা রাখে না)। ট্রফ টুরিং কি সম্পূর্ণ?

উত্তর:


12

ইএসআর এর আর্ট অফ ইউনিক্স প্রোগ্রামিং দাবি করেছে যে এটি:

আমরা ট্রফটি আরও বিশদে 18 অধ্যায়ে পরীক্ষা করব; আপাতত, এটি লক্ষ করার পক্ষে যথেষ্ট যে এটি একটি অত্যাবশ্যক ক্ষুদ্রতম ভাষাটির একটি ভাল উদাহরণ যা একটি পূর্ণাঙ্গ দোভাষী হিসাবে সীমাবদ্ধ (এটি শর্তসাপেক্ষ এবং পুনরাবৃত্তি রয়েছে তবে লুপগুলি নয়; এটি দুর্ঘটনাক্রমে টুরিং-সম্পূর্ণ)।

("দুর্ঘটনাক্রমে" এর বিপরীতে m4, যা "ইচ্ছাকৃতভাবে টুরিং-সম্পূর্ণ" বলা হয়।)


13

হ্যাঁ, ট্রফ টিউরিং-সম্পূর্ণ। এটি নির্বিচারে পুনরাবৃত্তি এবং শর্তসাপেক্ষ শাখাগুলি সমর্থন করে যা যথেষ্ট। এটিতে রেজিস্টার এবং ডেটা সংরক্ষণের বিভিন্ন উপায় রয়েছে যা আপনাকে আবার একটি পথ দেয়।

টুরিংয়ের সম্পূর্ণতার অর্থ এই নয় যে অত্যন্ত জটিল প্রোগ্রামগুলি ব্যবহারিক - কেবলমাত্র তারা তাত্ত্বিকভাবেই সম্ভব, একরকম, অপসারণের কিছু স্তরে - এবং এর অনুপস্থিতিও বোঝায় যে তারা নয়, তাই ট্রফের টুরিং-সম্পূর্ণ বা না জটিল প্রোগ্রামগুলির অনুপস্থিতি সে সম্পর্কে একভাবে বা অন্য কোনও কিছুর পরামর্শ দেয় না।


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

অনেক ভাষায় এবং সিস্টেম প্রসঙ্গক্রমে টুরিং-সম্পূর্ণ হয় কিন্তু যুক্তিসঙ্গতভাবে না প্রযোজ্য যে উপসেট কোনো প্রকৃত প্রোগ্রামিং জন্য (উদাহরণস্বরূপ, Conway এর জীবন বা CSS এর খেলা) এবং কোনো কোনো ভাষা হয় বাস্তব প্রোগ্রামিং জন্য দরকারী টুরিং-সম্পূর্ণ নয় (উদাহরণস্বরূপ, Agda)। সংজ্ঞায়িত বৈশিষ্ট্যগুলি হ'ল আপনি যা করতে পারেন

  • চিরকাল যাব
  • আপনি চান যতটা ডেটা মনে রাখবেন
  • পরবর্তী কিছু করার জন্য, যদি কিছু হয় তা চয়ন করুন

প্রায়শই এই বৈশিষ্ট্যগুলি - বিশেষত অবসন্নকরণ - প্রকৃতপক্ষে অযাচিত হয়, সম্ভবত ট্রফ সহ including তাত্ত্বিক কম্পিউটার বিজ্ঞান এবং ভাষা নকশার বাইরে, টুরিং সম্পূর্ণতা আকর্ষণীয় হওয়া সত্ত্বেও সময়ের পক্ষে ভার্চুয়াল আকর্ষণীয় সম্পত্তি নয়।


হ্যাঁ অবশ্যই, এটি নিজে থেকে খুব দরকারী জিনিস নয় তবে এটি এখনও আকর্ষণীয় - যেমন এমনকি মুভ নির্দেশটিও টুরিং সম্পূর্ণ।
কাটকুলাস

4
@ থাইন্ডিগামার - এক্স 86 এর movনির্দেশ টিউরিং -সম্পূর্ণ। (মোডগুলি সম্বোধনের কারণে যা আপনাকে অনুসন্ধানের টেবিলগুলি ব্যবহার করতে দেয় এবং একই স্মৃতিবিজ্ঞানটি লোড, স্টোর এবং রেজিস্ট্রেশনের জন্য মুভি-তাত্ক্ষণিকর জন্য ব্যবহৃত হয় that) অন্য অনেক আইএসএ-তে যে movনির্দেশনা রয়েছে (যেমন এআরএম) এটি কেবল একটি রেজি-রেজি পদক্ষেপ এবং টিউরিং-সম্পূর্ণ নয়। (যদিও এআরএম এ এটি শিফট / ঘোরাতে পারে)) এছাড়াও, আপনার নির্দেশিকাগুলির jmpব্লকের চারপাশে একটি লুপ তৈরি করার দরকার আছে mov, আপনি যদি 16-বিট মোডে না থাকেন যেখানে নির্দেশিকা পয়েন্টারটি 64 কে কোড সেগমেন্টে চারপাশে মোড়ানো করতে পারে অন্তর্নিহিত লুপ।
পিটার কর্ডেস

6
@ স্পেসবিসন অবশ্যই রয়েছে :-) github.com/Battelle/movfuscator
ড্যানিয়েল

2
@ পিটারকার্ডস: আহ; পুরানো দিনগুলিতে এমওভির আর্কিটেকচারগুলি ছিল যে মেমরি ALL গুলি ম্যাপ করেছিল এবং আইপি হ'ল অন্য একটি রেজিস্টার তাই জেএমপি ছিল আরেকটি এমওভি।
জোশুয়া

1
@ জোশুয়া: মজাদার ঘটনা: ৩২-বিট এআরএম পিসিটিকে সাধারণ-উদ্দেশ্যমূলক পূর্ণসংখ্যার 16 টির মধ্যে একটি হিসাবে প্রকাশ করেছে। push {r4, lr}/ pop {r4,pc}ফাংশনগুলির মধ্যে সাধারণ যা একটি কল-সংরক্ষিত রেজিস্ট্রার সংরক্ষণ / পুনরুদ্ধার করা এবং স্ট্যাকটি সারিবদ্ধ রাখা দরকার: তারা লিঙ্কটি রেজিও সংরক্ষণ করে এবং প্রোগ্রামটি কাউন্টারে ফিরে আসার জন্য এটি পপ করে। (32-বিট এআরএম-এর স্টোর / লোড-একাধিক নির্দেশাবলী বিটফিল্ডটি ব্যবহার করে কোনটি কীভাবে সংরক্ষণ / লোড করতে হবে তা নির্দেশ করে) এবং হ্যাঁ, আপনি কোনও movবা কোনও নির্দেশের গন্তব্য হিসাবে পিসি ব্যবহার করতে পারেন । যদিও আমি জানতাম না যে অতীতে সাধারণ ছিল। তবে পরিবহন-ট্রিগার হওয়া আইএসএর কথা শুনেছি।
পিটার কর্ডেস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.