সব কি সম্পূর্ণ ভাষা বিনিময়যোগ্য


26

দ্রষ্টব্য, আমি কীভাবে প্রোগ্রামিং করতে জানি তার সময় আমি সিএস তত্ত্বের বেশ সূচনাপ্রাপ্ত।

এই উত্তর অনুযায়ী

টুরিং সম্পূর্ণতা গণ্যতা একটি বিমূর্ত ধারণা। যদি কোনও ভাষা টিউরিং সম্পূর্ণ হয় তবে এটি অন্য কোনও টিউরিং সম্পূর্ণ ভাষা করতে পারে এমন কোনও গণনা করতে সক্ষম।

এবং কোনও টিউরিং সম্পূর্ণ ভাষায় লিখিত যে কোনও প্রোগ্রাম অন্যটিতে আবার লেখা যেতে পারে

ঠিক আছে. এইবার বুঝতে পারছি. আমি অ্যাসেম্বলিতে সি (সিগারেট) সি অনুবাদ করতে পারি (এবং আমি এটি প্রতিদিনই করি!), এবং এসেম্বলিকে সিতে অনুবাদ করতে পারি (আপনি সিতে একটি ভার্চুয়াল মেশিন লিখতে পারেন)। এবং এটি অন্য যে কোনও ভাষার ক্ষেত্রেও প্রযোজ্য - আপনি যে কোনও ভাষা সংবিধানে সংকলন করতে পারেন, এবং তারপরে অন্য কোনও ভাষায় লিখিত ভিএম-তে চালাতে পারেন।

তবে টিউরিং সম্পূর্ণ ভাষায় রচিত কোনও প্রোগ্রাম কি আবার অন্য লিখিত হতে পারে?

আমার সমাবেশে যদি একটি হালকা বাটন অপকড থাকে? আমি লাইটব্লব ছাড়াই শারীরিকভাবে কোনও ভাষা কোনও সিস্টেমে (ভাষা) অনুকরণ করতে পারি না।

ঠিক আছে. সুতরাং আপনি বলবেন যেহেতু আমরা কম্পিউটার তত্ত্ব নিয়ে কাজ করছি, আমরা শারীরিক ডিভাইসের সীমাবদ্ধতাগুলি নিয়ে আলোচনা করছি না।

তবে এমন কোনও ডিভাইসটির কী কী গুণ নেই? বিভাগ? আমার জ্ঞানের সর্বাধিক জ্ঞানের কাছে (যদিও এটি গণিতের জন্য প্রশ্ন বেশি) তবে কোনও সংখ্যাকে অনুকরণ করতে এবং বিয়োগ করে [1] দ্বারা অনুকরণ করতে পারে না (এবং অবশ্যই বিভাজন নয়)।

সুতরাং কীভাবে একটি "ট্যুরিং সম্পূর্ণ ভাষা" (যা যুক্ত করতে পারে, বিয়োগ করতে পারে এবং লাফ দিতে পারে) এমন কোনও ভাষা অনুকরণ করতে পারে যা যুক্ত করতে পারে, বিয়োগ করতে পারে, গুণতে পারে এবং লাফাতে পারে?

সম্পাদনা

[1]। যথেচ্ছ আসল সংখ্যাগুলিতে।


33
আসল সংখ্যাগুলি হাইপার-টিউরিং-গণনার ক্ষেত্রের অন্তর্গত। একটি ট্যুরিং মেশিন প্রকৃত সংখ্যাগুলির সাথে ডিল করতে পারে না, তবে তারা টুরিং-সম্পূর্ণতার সাথে অপ্রাসঙ্গিক।
Jörg ডব্লু মিত্তাগ

3
সম্পর্কিত: একটি মাত্র নির্দেশ সহ একটি অ্যাসেম্বলি-ভাষা নির্দেশ-সেট এখনও সর্বজনীন কম্পিউটার তৈরির পক্ষে যথেষ্ট শক্তিশালী: en.wikedia.org/wiki/One_in تعمیر_set_computer । উদাহরণস্বরূপ, "বিয়োগ বা শাখা শূন্যের চেয়ে কম বা সমান হলে" মেমোরি অপারেশনগুলির সাথে। এটি আধুনিক x86 এর সাথে তুলনায় ধীর হবে তবে কোনও প্রোগ্রামের জন্য পারফরম্যান্স অনুপাত সীমাবদ্ধ ite
পিটার কর্ডেস

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

2
@ পিটারকর্ডস: আমি ধরে নিয়েছি যে আপনি যখন বলেন যে অনুপাত সীমাবদ্ধ হয় আপনি সহজভাবে বোঝান যে যে কোনও কাজ যে কোনও একটিতে সসীম সময় পূর্ণ হয় উভয় ক্ষেত্রেই সীমাবদ্ধভাবে কাজ করবে - এটি কোনও নির্দিষ্ট মেশিনের জন্য নয় (ইনপুট সহ নয়) থাকবে কিছু ইনপুটগুলির জন্য অনুপাত কত উচ্চতর পেতে পারে তার সীমাবদ্ধ সীমা। আমি মনে করি যে কেউ ট্যুরিং-সম্পূর্ণ মেশিন তৈরি করতে পারে যার জন্য কেউ ইনপুট নির্বাচন করতে পারে যা অনুপাতকে নির্বিঘ্নে উচ্চ করে তুলবে - সম্ভবত ইনপুট আকারের একটি গণনীয় ফাংশনও নয়।
সুপারক্যাট

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

উত্তর:


55

টিউরিং-সম্পূর্ণতা কেবল একটি জিনিস এবং একটি জিনিস বলে: গণনার একটি মডেল টুরিং-সম্পূর্ণ, যদি কোনও ট্যুরিং মেশিন দ্বারা মডেল করা যায় এমন কোনও গণনাও সেই মডেল দ্বারা মডেল করা যায়।

সুতরাং, একটি ট্যুরিং মেশিন মডেল করতে পারে এমন গণনাগুলি কী কী? ঠিক আছে, প্রথম এবং সর্বাগ্রে, অ্যালান টুরিং এবং তার সহকর্মীদের মধ্যে কেবলমাত্র প্রাকৃতিক সংখ্যায় ফাংশনে আগ্রহী ছিলেন। সুতরাং, ট্যুরিং মেশিন (এবং λ-ক্যালকুলাস, এসকে কম্বিনেটর ক্যালকুলাস, rec-পুনরাবৃত্ত ফাংশন, ...) কেবল প্রাকৃতিক সংখ্যায় ফাংশনগুলির সংযোগযোগ্যতা সম্পর্কে কথা বলে। আপনি যদি প্রাকৃতিক সংখ্যায় কোনও ফাংশন সম্পর্কে কথা বলছেন না, তবে ট্যুরিং-সম্পূর্ণতার ধারণাটিও বোঝায় না, এটি কেবল প্রযোজ্য নয়।

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

এবং, অবশ্যই, প্রাকৃতিক সংখ্যার সমস্ত ফাংশন গণনাযোগ্য নয়। একটি ট্যুরিং মেশিন কেবল প্রাকৃতিক সংখ্যায় কিছু ফাংশন গণনা করতে পারে , λ-ক্যালকুলাস কেবল প্রাকৃতিক সংখ্যায় কিছু ফাংশন গণনা করতে পারে , এসকে সংযুক্তকারী ক্যালকুলাস কেবল প্রাকৃতিক সংখ্যায় কিছু ফাংশন গণনা করতে পারে ,…। আশ্চর্যরূপে (বা না), এটি প্রমাণিত হয়েছে যে গণনার প্রতিটি মডেল (যা আমাদের প্রকৃত মহাবিশ্বে বাস্তবে উপলব্ধিযোগ্য) প্রাকৃতিক সংখ্যায় একই ফাংশন গণনা করতে পারে (কমপক্ষে আমরা এখনও অবধি খুঁজে পাওয়া সমস্ত মডেলের জন্য)। [দ্রষ্টব্য: স্পষ্টতই, গণনার দুর্বল মডেল রয়েছে তবে আমরা এখনও এর চেয়ে শক্তিশালী কোনও খুঁজে পাইনি, আমাদের শারীরিক মহাবিশ্বের সাথে প্রকৃতভাবে বেমানান এমন কিছু বাদে যেমন আসল সংখ্যা বা সময়ের ভ্রমণ ব্যবহার করে মডেল]

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

যাইহোক , এর কিছুই সম্পর্কে কিছু বলেনি

  • বিভিন্ন মডেল কতটা দক্ষ
  • তারা ব্যবহার করার জন্য কতটা সুবিধাজনক
  • প্রাকৃতিক সংখ্যায় গণনা ফাংশন ছাড়াও তারা আর কী করতে পারে

এবং এটি হ'ল গণ্যকরণের বিভিন্ন মডেল (এবং প্রোগ্রামিং ভাষা) এর মধ্যে পার্থক্য কার্যকর হয়।

O(sizearray)O(sizearray2)sizearraysizearray

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

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

আপনার নির্দিষ্ট প্রশ্নের উত্তর দিতে:

তবে টিউরিং সম্পূর্ণ ভাষায় রচিত কোনও প্রোগ্রাম কি আবার অন্য লিখিত হতে পারে?

না, যদি প্রোগ্রামটি প্রাকৃতিক সংখ্যায় একটি টিউরিং-গণনাযোগ্য ফাংশন গণনা করে। এবং তারপরেও এর জন্য একটি জটিল এনকোডিং দরকার হতে পারে। উদাহরণস্বরূপ, λ-ক্যালকুলাসে প্রাকৃতিক সংখ্যাও নেই, তাদের ফাংশনগুলি ব্যবহার করে এনকোড করা প্রয়োজন (কারণ ফাংশনগুলি কেবল λ-ক্যালকুলাসের একমাত্র জিনিস)।

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

আমার সমাবেশে যদি একটি হালকা বাটন অপকড থাকে? আমি লাইটব্লব ছাড়াই শারীরিকভাবে কোনও ভাষা কোনও সিস্টেমে (ভাষা) অনুকরণ করতে পারি না।

একটি লাইটবালব প্রাকৃতিক সংখ্যায় একটি টুরিং-গণনাযোগ্য ফাংশন নয়। সত্যই, একটি লাইটবুলব না একটি ফাংশন বা একটি গণনা হয়। লাইটব্লাব চালু এবং বন্ধ করা আই / ও পার্শ্ব-প্রতিক্রিয়া। ট্যুরিং মেশিনগুলি I / O এর পার্শ্ব প্রতিক্রিয়াগুলিকে মডেল করে না এবং টুরিং-সম্পূর্ণগুলি তাদের সাথে প্রাসঙ্গিক নয়।

যথেচ্ছ আসল সংখ্যাগুলিতে।

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

আপনার মত প্রশ্ন দুটি কারণে আসে যখন টিউরিং-সম্পূর্ণতা কেবল খুব আকর্ষণীয় হয় না:

  1. এটি খুব বেশি বাধা নয়। আপনার প্রয়োজন হয় IF, GOTO, WHILE, এবং একটি একক পূর্ণসংখ্যা পরিবর্তনশীল (পরিবর্তনশীল অভিমানী ইচ্ছামত বড় পূর্ণসংখ্যার ধরে রাখতে পারেন)। বা, পুনরাবৃত্তি। প্রচুর পরিমাণে এবং প্রচুর স্টাফ টুরিং-সম্পূর্ণ। কার্ড গেম ম্যাজিক: জমায়েত টুরিং-সম্পূর্ণ। সিএসএস 3 টিউরিং-সম্পূর্ণ। sendmailকনফিগারেশন ফাইল টুরিং-সম্পূর্ণ। ইন্টেল x86 এমএমইউ টিউরিং-সম্পূর্ণ। ইন্টেল x86 MOVনির্দেশ টিউরিং-সম্পূর্ণ। পাওয়ারপয়েন্ট অ্যানিমেশনগুলি টুরিং-সম্পূর্ণ। এক্সেল (স্ক্রিপ্টিং ছাড়াই, শুধুমাত্র সূত্র ব্যবহার করে) টিউরিং-সম্পূর্ণ। বিজিপি রাউটিং প্রোটোকল টিউরিং-সম্পূর্ণ। sedটুরিং-সম্পূর্ণ। অ্যাপাচি mod_rewriteবিধি টুরিং-সম্পূর্ণ। গুগলের জন্য " (দুর্ঘটনাক্রমে বা আশ্চর্যজনকভাবে) টুরিং সম্পূর্ণ"আরও কিছু আকর্ষণীয় উদাহরণ সন্ধান করতে almost যদি প্রায় সব কিছু টুরিং-সম্পূর্ণ হয় তবে টুরিং-সম্পূর্ণ হওয়া একটি আকর্ষণীয় সম্পত্তি হয়ে যায়।
  2. এটি আসলে কার্যকর হওয়ার দরকার নেই। দরকারী উপাদান প্রচুর হয় না টুরিং-সম্পূর্ণ। সংস্করণ 3 সামনে সিএসএস টুরিং-সম্পূর্ণ (এবং সত্য যে সিএসএস 3 নয় হয় আসলে যে কেউ ব্যবহার করা হয় না)। 1999 এর আগে এসকিউএল টিউরিং-সম্পূর্ণ ছিল না, তবুও এটি তীব্রভাবে কার্যকর ছিল। অতিরিক্ত লাইব্রেরি ছাড়া সি প্রোগ্রামিংয়ের ভাষা টিউরিং-সম্পূর্ণ বলে মনে হয় না । নির্ভরযোগ্যভাবে টাইপ করা ভাষাগুলি সংজ্ঞা অনুসারে কমবেশি, টুরিং-সম্পূর্ণ নয়, তবুও আপনি সেগুলিতে অপারেটিং সিস্টেম, ওয়েব সার্ভার এবং গেমগুলি লিখতে পারেন।

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


আপনি যে প্রশ্নটি আকর্ষণীয়ভাবে সংযুক্ত করেছেন তার উত্তরটি আপনি খুঁজে পেতে পারেন , যা কিছু ভিন্ন ভিন্ন প্রশ্নের উত্তর সত্ত্বেও একই পয়েন্টগুলিতে স্পর্শ করে।


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

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

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

এটি স্পষ্টতই একটি দুর্দান্ত উত্তর তবে আমি ভয় করি যে এটি ওপি'র বোঝার বাইরে। ওপি ইতিমধ্যে সংখ্যার (সীমাবদ্ধ উপসর্গ) বাস্তব সংখ্যা সম্পর্কে বাস্তবায়নের সম্পর্কে বিভ্রান্ত। এই দেওয়া, আপনার উত্তর পরোক্ষভাবে যে টুরিং-সম্পূর্ণ প্রোগ্রামিং ভাষা না, আসলে, খাঁটি গণনার উদ্দেশ্যে বিনিময়যোগ্য যখন বাস্তবে তা হয় বলে মনে হয় (কারণ সবকিছু আধুনিক CPU- র না - না শুধু কিছু জিনিষ - প্রাকৃতিক যেমন এনকোড করা যেতে পারে নম্বর)।
কনরাড রুডল্ফ

9
@ থিডোর নরভেল প্রাকৃতিক সংখ্যার সাথে প্রকৃত সংখ্যাগুলি এনকোডিংয়ের বিষয়ে। আসলে, প্রায় সমস্ত আসল সংখ্যা প্রাকৃতিক সংখ্যা দ্বারা এনকোড করা যায় না। প্রকৃত সংখ্যাগুলির সেট যা প্রাকৃতিক সংখ্যার দ্বারা এনকোড করা যায়, প্রাকৃতিক সংখ্যার দ্বারা এনকোড হওয়ার কারণে, সর্বাধিক অগণিত। এবং এটি কেবল অগণিত অসীম, সেটের পরিমাপ শূন্য। এটা বলতে কিছুটা বেআইনীভাবে বলা যায় যে আমরা প্রাকৃতিক সংখ্যার সাথে সাধারণভাবে প্রকৃত সংখ্যার প্রতিনিধিত্ব করতে পারি যেহেতু আমরা কেবলমাত্র তাদের একটি অসীম ভগ্নাংশের প্রতিনিধিত্ব করতে পারি, বা আরও স্পষ্টভাবে বলতে পারি: 0%।
সাফল্যের সময়

9

অবশ্যই আপনি সংযোজন এবং বিয়োগের মাধ্যমে গুণ প্রয়োগ করতে পারেন:

/* Assume b is positive for simplicity */
int multiply(int a, int b) {
  int res = 0;
  while (b > 0) { res += a; b -= 1; }
  return res;
}

আপনি সম্ভবত এটি না করতেন এমন সত্যটি এটি কম সম্ভব করে না।

বিভাগটি খুব বেশি কঠিন:

/* Assume a and b are positive for simplicity */
int divide(int a, int b) {
  int res = 0;
  while (a >= b) { res += 1; a -= b; }
  return res;
}

এবং আপনি কীভাবে ভাবেন যে গুণ এবং বিভাগটি আসলে সিপিইউর সার্কিটরি দ্বারা সম্পাদিত হয়? ইঙ্গিত: এটি একটি বিশাল চেহারা সারণী নয়। এটি উপরের তুলনায় আরও দক্ষ, যেহেতু বিট শিফটিংটিও ব্যবহৃত হয়, তবে এটি সংযোজন এবং বিয়োগের ক্ষেত্রে মৌলিকভাবে প্রয়োগ করা হয়।


4
2precision

7
@ ট্যুরিং: আপনি জানেন, ভাসমান পয়েন্ট কপ্রেসেসরগুলি থাকার আগে ভাসমান পয়েন্ট গণিত ছিল।
ধনী

6

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

এটি এ থেকে অনুসরণ করে যে দুটি অ্যাবস্ট্রাক্ট মেশিন সমতুল্য কিনা তার ইতিবাচক উত্তর আপনাকে সেই মেশিনগুলির দুটি শারীরিক অনুমান সমান কিনা এই প্রশ্নের উত্তর দিতে আপনাকে সহায়তা করে না।

অতএব (উদাহরণস্বরূপ) দুটি ভাষার বিমূর্ত মডেলের ট্যুরিং সমতুল্যতার অর্থ এই নয় যে প্রতিটি অনুশীলনে অন্যরা যে সমস্ত কিছু গণনা করতে পারে তার প্রতিটি গণনা করতে পারে। একজন অন্যের আগে শারীরিক সীমাবদ্ধতার বিরুদ্ধে দৌড়াতে পারে।


কিন্তু ভাষা সম্পর্কে প্রশ্ন জিজ্ঞাসা করা হয়েছিল। এটি নির্দিষ্ট মেশিনগুলির উল্লেখ করেছে, তবে কেবলমাত্র সে বুঝতে পারে না যে কার্যত কোনও আসল মেশিনই আসল সংখ্যায় কাজ করে না।
3'18 এলোমেলো

3

nm=n+n(m1)m/n=1+(mn)/n

প্রকৃতপক্ষে, অপারেশনগুলি "যোগ করুন 1", "বিয়োগ 1" এবং "শর্তযুক্ত জাম্প যদি নির্দিষ্ট রেজিস্টার শূন্য হয়" একটি গণনামূলক মডেল টুরিং-সম্পূর্ণ করার জন্য যথেষ্ট (2-কাউন্টার মেশিনটি একটি রেফারেন্স হিসাবে দেখুন খুব ন্যূনতম টুরিং-সম্পূর্ণ গণনা মডেল)।

22n=n+n2m×2n=2m×nm×(2n+1)=m+2m×n


3

tl; dr - টুরিং মেশিনগুলি একটি সাধারণ লজিকাল সিস্টেমের ক্রিয়াকলাপের জন্য কেবলমাত্র একটি প্রাথমিক যৌক্তিক বিবরণ। বিশেষায়িত ওপকোডগুলি কল করা এবং গাণিতিক ক্রিয়াকলাপ সহ আমরা বর্ণনা করতে পারি এমন বেশিরভাগ জিনিস তারা করতে পারে।


আমার সমাবেশে যদি একটি হালকা বাটন অপকড থাকে? আমি লাইটব্লব ছাড়াই শারীরিকভাবে কোনও ভাষা কোনও সিস্টেমে (ভাষা) অনুকরণ করতে পারি না।

টুরিং মডেলটিতে, LIGHTBUTTONটিউরিং কম্পিউটার যেভাবে বর্ণমালা ব্যবহার করে তাতে একটি অপকোডের মতো চিহ্নগুলি কেবল স্ট্রিং থাকে।

সুতরাং, ট্যুরিং মেশিন স্ট্রিং উত্পাদন করার জন্য দায়বদ্ধ হবে "LIGHTBUTTON"বা কিছু সংখ্যার মান যা সেই অপকোডের সাথে মিলে যায়; কোনও বাহ্যিক সত্তা এতে কাজ করে বা না তা টুরিং কম্পিউটারের ব্যবসা নয়।

সি প্রোগ্রামগুলির একই সীমাবদ্ধতা রয়েছে। এটি, একটি সি প্রোগ্রাম কেবলমাত্র অপকোডের জন্য কল করতে পারে LIGHTBUTTON, তবে সিপিইউ আসলে সেই অপকোডের সাথে সম্পর্কিত কোনও অপারেশন সম্পাদন করে কিনা তা সিপিইউ পর্যন্ত।


তবে এমন কোনও ডিভাইসটির কী কী গুণ নেই? বিভাগ? আমার জ্ঞানের সর্বাধিক জ্ঞানের কাছে (যদিও এটি গণিতের ক্ষেত্রে আরও প্রশ্ন), কোনও ব্যক্তি গুণ এবং (বিভাজন নয়) যোগ করতে এবং বিয়োগ করে [স্বেচ্ছাচারিত আসল সংখ্যায়] অনুকরণ করতে পারে না।

হ্যাঁ, একটি ট্যুরিং মেশিন এই সমস্ত কিছু এমনকি সত্যিকারের সংখ্যায়ও করতে পারে, কোনও মানুষের বর্ণনামূলক যুক্তি যে পরিমাণে পারে। টুরিং মেশিনটি 110 রুল সেলুলার অটোমেশনের মতো সহজ হতে পারে ।

কৌশলটি মেশিনে প্রাকৃতিকভাবে যা কিছু পদার্থবিজ্ঞান রয়েছে সেগুলি থেকে একটি লজিক সিস্টেম তৈরি করা। উদাহরণস্বরূপ, মূলধারার সিপিইউগুলি গুণ এবং বিভাগ করতে পারে কারণ তাদের গাণিতিক যুক্তি ইউনিট (এএলইউ) রয়েছে । তবে আ’লীগের যাদু নয়; তারা নিজেরাই কেবল সাধারণ যুক্তিযুক্ত গেট । এবং সেই লজিক গেটগুলি ট্রানজিস্টর তৈরি করা হয় । এবং সেই ট্রানজিস্টরগুলি ডোপ-আপ বালির তৈরি

সুতরাং, গণিত করতে একটি টুরিং-সম্পূর্ণ ডিভাইস পেতে, কেবল সেভাবেই এটি প্রোগ্রাম করা উচিত।

ππ=0ππππ=0


3

তবে টিউরিং সম্পূর্ণ ভাষায় রচিত কোনও প্রোগ্রাম কি আবার অন্য লিখিত হতে পারে?

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

দুটি টিউরিং-সম্পূর্ণ ভাষাগুলি বিনিময়যোগ্য নয় এমন ব্যবহারিক বিবেচনার মধ্যে রয়েছে:

  • তারা বিভিন্ন ধরণের ইনপুট এবং আউটপুট সমর্থন করে (যেমন এসকিউএল ডাটাবেস অ্যাক্সেস)

  • তাদের বিভিন্ন উপাত্তের লাইব্রেরি রয়েছে (যেমন ইউনিকোড স্ট্রিংয়ের জন্য সমর্থন)

  • তারা বিভিন্ন কর্মের জন্য অনুকূলিতকরণের জন্য বিভিন্ন প্রোগ্রামিং প্যারাডিম সরবরাহ করে (যেমন বস্তু, থ্রেড, কর্টাইনস, প্রথম শ্রেণির ফাংশন)

  • তারা বিভিন্ন ফাংশন লাইব্রেরি সরবরাহ করে (যেমন এক্সএমএল পার্সিং এবং সিরিয়ালাইজেশন)


1

না। টিউরিং-সম্পূর্ণতার প্রোগ্রামগুলির সাথে কোনও সম্পর্ক নেই , এটি গাণিতিক ফাংশন (বা অ্যালগরিদম ) সম্পর্কে। যে কোনও অ্যালগরিদম - যে কোনও গণনা - আপনি সি তে করতে পারেন, আপনি অন্য কোনও টিউরিং-সম্পূর্ণ ভাষায় করতে পারেন (এটি স্পষ্ট হওয়া উচিত)। তবে টিউরিং-সম্পূর্ণতা আসলে বলে না যে আপনি I / O করতে পারেন - মোটেও। এটি হার্ডওয়ার সম্পর্কে মোটেই কথা বলে না। শুধু গণনা।

আপনি যে কোনও হার্ডওয়ার অপারেশন চান তা দিয়ে ট্যুরিং-সম্পূর্ণ ভাষা প্রসারিত করতে পারেন (প্রযুক্তিগতভাবে, এটি সি তে fputcএবং এভাবে fgetcকাজ করে)। আপনি যদি দুটি টিউরিং-সম্পূর্ণ ভাষা নেন এবং এগুলি অভিন্ন হার্ডওয়্যার-নির্দিষ্ট ক্রিয়াকলাপ দিয়ে প্রসারিত করেন , তবে সেগুলি বিনিময়যোগ্য থেকে যায়। সুতরাং LIGHTBULBঅপারেশন সহ আপনার সমাবেশের ভাষা টিউরিং-সম্পূর্ণের চেয়ে আরও শক্তিশালী ; আপনি বলতে পারেন এটি টুরিং-সম্পূর্ণ শেষLIGHTBULB । অন্য যে কোনও ভাষা এর সাথে অভিন্ন করার জন্য, এটিও ট্যুরিং-সম্পূর্ণ হওয়া দরকার LIGHTBULB; এটি করার সহজতম উপায় হ'ল LIGHTBULBএটিতে আদিম / নির্দেশনা / ফাংশন / ইত্যাদি যুক্ত করা।

এ কারণেই সি প্রয়োগকারীরা সাধারণত হয় ইনলাইন এসেম্ব্লারকে সমর্থন করে, বা এসেম্বেলারে লেখা ফাংশনগুলিকে কল করার জন্য একটি উপায় দলিল করে, এবং অন্যান্য ভাষার প্রয়োগগুলি সাধারণত সিতে লিখিত ফাংশনগুলিকে কল করার উপায় সরবরাহ করে why

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