এটি একটি খারাপভাবে কথিত প্রশ্ন, সুতরাং আসুন প্রথমে এটি অনুধাবন করা যাক। আমি এটি গণনাযোগ্যতা তত্ত্ব স্টাইল করতে যাচ্ছি। সুতরাং আমি স্ট্রিংয়ের পরিবর্তে সংখ্যাগুলি ব্যবহার করব: সোর্স কোডের একটি টুকরা চিহ্নগুলির চেয়ে স্ট্রিংয়ের চেয়ে একটি সংখ্যা। এটি আসলে কোনও ব্যাপার নয়, আপনি কে s t r i n g দিয়ে প্রতিস্থাপন করতে পারেনNstring নিচে সর্বত্র।
যাক একটি হতে পেয়ারিং ফাংশন⟨m,n⟩ ।
আসুন আমরা বলি যে একটি প্রোগ্রামিং ভাষা নিম্নলিখিত ডেটা দ্বারা দেওয়া হয়েছে:এল = ( পি, ই v )
- একটি নির্ধারণযোগ্য সেট পি। এন"বৈধ প্রোগ্রাম" এর , এবং
- একটি গণনীয় এবং আংশিক ফাংশন ।e v : পি× এন → এন
সত্য যে নির্ধার্য মাধ্যম মোট গণনীয় মানচিত্র নেই বনাম একটি ঠ আমি ঘ : এন → { 0 , 1 } যেমন যে বনাম একটি ঠ আমি ঘ ( এন ) =পিv a l i d: এন → { 0 , 1 } । অনানুষ্ঠানিকভাবে, আমরা বলছি যে প্রদত্ত স্ট্রিংটি কোডের একটি বৈধ টুকরা কিনা তা বলা সম্ভব। E v ফাংশনটিআমাদের ভাষার জন্য একটি দোভাষী প্রয়োজন: e v ( m , n ) ইনপুট এন কোড কোড এম চালায়- ফলাফল অপরিবর্তিত হতে পারে।valid(n)=1⟺n∈Pevev(m,n)mn
আমরা এখন কিছু পরিভাষা চালু করতে পারি:
- একটি ভাষা মোট যদি সমস্ত m for এর জন্য মোট ফাংশন ∈n↦ev(m,n)।m∈P
- একটি ল্যাঙ্গুয়েজ ব্যাখ্যা করে ভাষা এল 2 = ( পি 2 , ই ভি 2 ) অস্তিত্ব আছে যদি তোমার দর্শন লগ করা ∈ পি 1 যেমন যে ই বনাম 1 ( U , ⟨ এন , মি ⟩ ) ≃ ই বনাম 2 ( এন , মি ) সকলের জন্য এন for পিL1=(P1,ev1) L2=(P2,ev2)u∈P1ev1(u,⟨n,m⟩)≃ev2(n,m)n∈P এবং । এখানে তোমার দর্শন লগ করা জন্য কাল্পনিক হয় এল 2 বাস্তবায়িত এল 1 । এছাড়া হিসাবে পরিচিত হয়সার্বজনীন প্রোগ্রামজন্য এল 2 ।m∈NuL2L1L2
" ব্যাখ্যা L 2 " এর অন্যান্য সংজ্ঞাও সম্ভব, তবে আমাকে এখন এটিতে getুকতে দেওয়া উচিত না।L1L2
আমরা বলি যে এবং L 2 একে অপরকে ব্যাখ্যা করলে সমান।L1L2
নেই "সবচেয়ে শক্তিশালী" ভাষা টুরিং মেশিনে যা (যা আপনি "একটি টুরিং মেশিন" পড়ুন) এন ∈ এন একটি টুরিং মেশিন এবং একজন এনকোডিং হয় φ ( এন , মি ) হয় আংশিক গণনাযোগ্য ফাংশন যা " ইনপুট এম- তে এন দ্বারা এনকোডেড টুরিং মেশিন চালায় "। এই ভাষাটি অন্য সমস্ত ভাষাগুলি ইন্টারপেট করতে পারে, স্পষ্টতই যেহেতু আমাদের ই ভি প্রয়োজনে গণনাযোগ্য হবে।T=(N,φ)n∈Nφ(n,m)nmev
প্রোগ্রামিং ভাষার আমাদের সংজ্ঞাটি খুব স্বচ্ছন্দ। নীচের দিক দিয়ে যাওয়ার জন্য আমাদের আরও তিনটি শর্ত প্রয়োজন:
- কার্যকরী উত্তরাধিকারী ফাংশন: নেই s তোমার দর্শন লগ করা গ গ ∈ পি যেমন যে ই বনাম ( গুলি তোমার দর্শন লগ করা গ গ , মি ) = মিLsucc∈P সকলের জন্য মি ∈ এন ,ev(succ,m)=m+1m∈N
- কার্যকরী তির্যক ফাংশন: সেখানে হয় ঘ আমি একটি গ্রাম ∈ পি যেমন যে ই বনাম ( ঘ আমি একটি গ্রাম , মি ) = ⟨ মি , মি ⟩ সবার জন্য মি ∈ এন ,Ldiag∈Pev(diag,m)=⟨m,m⟩m∈N
- ফাংশন রচনা অধীনে বন্ধ করা হয়: যদি এল কার্যকরী চ এবং ছ তারপর এটি কার্যকরী চ ∘ ছ ,LLfgf∘g
একটি ক্লাসিক ফলাফল এটি:
উপপাদ্য: কোনও ভাষা যদি নিজের ব্যাখ্যা করতে পারে তবে তা মোট নয়।
Proof. Suppose u is the universal program for a total langauge L implemented in L, i.e., for all m∈P and n∈N,
ev(u,⟨m,n⟩)≃ev(m,n).
As successor, diagonal, and
ev(u,−) are implemented in
L, so is their composition
k↦ev(u,⟨k,k⟩)+1. There exists
n0∈P such that
ev(n0,k)≃ev(u,⟨k,k⟩)+1, but then
ev(u,⟨n0,n0⟩)≃ev(n0,n0)≃ev(u,⟨n0,n0⟩)+1
As there is no number equal its own successor, it follows that
L is not total or that
L does not interpret itself. QED.
Observe that we could replace the successor map with any other fixpoint-free map.
Here is a little theorem which I think will clean up a misunderstanding.
Theorem: Every total language can be interpreted by another total language.
Proof. Let L be a total language. We get a total L′ which interprets L by adjoining to L its evaluator ev. More precisely, let P′={⟨0,n⟩∣n∈P}∪{⟨1,0⟩} and define ev′ as
ev′(⟨b,n⟩,m)={ev(n,m)ev(m0,m1)if b=0,if b=1 and m=⟨m0,m1⟩
Obviously,
L′ is total because
L is total. To see that
L′ can simulate
L just take
u=⟨1,0⟩, since then
ev′(u,⟨m,n⟩)≃ev(m,n), as required. QED.
Exercise: [added 2014-06-27] The language L′ constructed above is not closed under composition. Fix the proof of the theorem so that L′ satisfies the extra requirements if L does.
In other words, you never need the full power of Turing machines to interpret a total language L – a slightly more powerful total language L′ suffices. The language L′ is strictly more powerful than L because it interprets L, but L does not interpret itself.