প্রোগ্রামিংয়ে পুনরাবৃত্তি বা পুনরাবৃত্তি যে কোনও ফর্ম আসলে একটি নির্দিষ্ট পয়েন্ট। উদাহরণস্বরূপ, একটি while
লুপ সমীকরণ দ্বারা চিহ্নিত করা হয়
while b do c done ≡ if b then (c ; while b do c done)
যা বলতে সমীকরণের while b do c done
সমাধানW
W ≡ Φ(W)
যেখানে Φ(x) ≡ if b then (c ; x)
। কিন্তু কি যদি Φ
করেছে অনেক মানবিন্দু? while
লুপের সাথে কোনটি মিলবে? প্রোগ্রামিং শব্দার্থকগুলির প্রাথমিক অন্তর্দৃষ্টিগুলির মধ্যে একটি হ'ল এটি সর্বনিম্ন নির্দিষ্ট পয়েন্ট।
আসুন একটি সহজ উদাহরণ গ্রহণ করুন, এবার পুনরাবৃত্তি। আমি হাস্কেল ব্যবহার করব। পুনরাবৃত্ত ফাংশন f
দ্বারা সংজ্ঞায়িত
f :: a -> a
f x = f x
এটি সর্বত্র অপরিজ্ঞাত ফাংশন, কারণ এটি কেবল চিরকাল চলে runs আমরা এই সংজ্ঞাটিকে আরও অস্বাভাবিক উপায়ে আবার লিখতে পারি (তবে এটি এখনও হাস্কেলের মধ্যে কাজ করে)
f :: a -> a
f = f
সুতরাং f
পরিচয় ফাংশন একটি নির্দিষ্ট বিন্দু হল:
f ≡ id f
কিন্তু যে ফাংশন একটি নির্দিষ্ট বিন্দু id
। সাধারণ ডোমেন-তাত্ত্বিক ক্রম অনুসারে, "অপরিজ্ঞাত" হ'ল ন্যূনতম উপাদান। এবং প্রকৃতপক্ষে, আমাদের ফাংশন f
সর্বত্র অপরিজ্ঞাত ফাংশন।
অনুরোধে যুক্ত করা হয়েছে: মন্তব্যগুলিতে ওপিতে শব্দার্থবিজ্ঞানের while
লুপগুলির জন্য আংশিক আদেশ সম্পর্কে জিজ্ঞাসা করা হয়েছিল (আপনি ধারণা করেছিলেন এটি একটি জাল ছিল তবে এটি হওয়ার দরকার নেই)। আরও সাধারণ প্রশ্ন হ'ল একটি প্রক্রিয়াগত ভাষার ডোমেন-তাত্ত্বিক ব্যাখ্যা কী যা ভেরিয়েবলগুলি পরিচালনা করতে পারে এবং বেসিক নিয়ন্ত্রণ কাঠামো (শর্তসাপেক্ষ এবং লুপস) রয়েছে। এই কাজ করার, ঠিক কি ক্যাপচার করতে চান তার উপর নির্ভর করে বিভিন্ন উপায় আছে, কিন্তু কিছু সহজ রাখা, এর অনুমান করা যে আমরা একটি নির্দিষ্ট সংখ্যক দাও বিশ্বব্যাপী ভেরিয়েবলএনএক্স1, … , এক্সএনযে প্রোগ্রামটি পড়তে এবং আপডেট করতে পারে এবং অন্য কিছুই নয় (কোনও আই / ও বা ব্যতিক্রম নয়, বা নতুন ভেরিয়েবলগুলির বরাদ্দ)। সেক্ষেত্রে কোনও প্রোগ্রামকে ভেরিয়েবলের প্রাথমিক অবস্থার চূড়ান্ত স্থিতিতে রূপান্তর হিসাবে দেখা যায়, বা যদি প্রোগ্রামটি চক্র হয় তবে অপরিজ্ঞাত মান হয়। সুতরাং, যদি প্রতিটি ভেরিয়েবল একটি সেট উপাদান ধরে রাখে তবে একটি প্রোগ্রাম ম্যাপিং মিলিত হবে: প্রতিটি প্রাথমিক কনফিগারেশনের জন্য ভেরিয়েবলগুলির , প্রোগ্রামটি হয় হয় বিভক্ত হবে এবং ফলন করবে ot , অথবা এটি শেষ করে চূড়ান্ত অবস্থা তৈরি করবে, যা এর একটি উপাদান । সমস্ত মানচিত্রের সেট একটি ডোমেন:ভীভীএন→ ভিএন∪ { ⊥ }( v1, … , ভিএন) ∈ ভিএন⊥ভীএনভীএন→ ভিএন∪ { ⊥ }
- আমরা ফ্ল্যাট ক্রম ব্যবহার যা হয়েছে নীচের অংশে এবং সব উপাদান এটা উপরের "ফ্ল্যাট", এবং তারপর point পয়েন্টওয়াইস অর্ডার করা হয়,ভীএন∪ { ⊥ }⊥ভীএনভীএন→ ভিএন∪ { ⊥ }
- সর্বনিম্ন উপাদানটি হ'ল ফাংশন যা সর্বদা মানচিত্র করে প্রোগ্রামের সাথে মিলিত হয় (এবং আরও অনেকে),⊥
while true do skip done
- প্রতিটি ক্রমবর্ধমান ক্রম একটি সুপ্রীম আছে
এই প্রোগ্রামটি কীভাবে বোঝায় এটি কীভাবে কাজ করে তার একটি ধারণা দেওয়ার জন্য
x_1 := e
ফাংশন যা ইনপুট হিসাবে লাগে হবে , মান হিসাব মত প্রকাশের রাজ্যের , এবং আয় ।( v1, … , ভিএন) ∈ ভিএনবনামইe
( v1, … , ভিএন)( vই, ভি2, … , ভিএন)