“একটি প্রমাণ একটি প্রোগ্রাম; সূত্রটি এটি প্রমাণ করে যে এটি প্রোগ্রামের জন্য এক ধরণের ”


37

এটি একটি দার্শনিক ধরণের প্রশ্ন হতে পারে, তবে আমি বিশ্বাস করি যে এর একটি উদ্দেশ্যমূলক উত্তর রয়েছে।

আপনি যদি হাস্কেল সম্পর্কে উইকিপিডিয়া নিবন্ধটি পড়েন তবে আপনি নিম্নলিখিতগুলি পেতে পারেন:

ভাষাটি হ্যাসেল কারি এবং তার বৌদ্ধিক বংশধরদের পর্যবেক্ষণে নিহিত রয়েছে, "একটি প্রমাণ একটি প্রোগ্রাম; এটি যে সূত্রটি প্রমাণ করে এটি প্রোগ্রামের জন্য এক প্রকার"

এখন, আমি যা জিজ্ঞাসা করছি: এটি কি সত্যিই সমস্ত প্রোগ্রামিং ভাষার ক্ষেত্রে প্রযোজ্য? হাস্কেলের কোন বৈশিষ্ট্য (বা বৈশিষ্ট্যগুলির সেট) এটিকে এই বিবৃতিটির সাথে সামঞ্জস্যপূর্ণ করে তোলে? অন্য কথায়, এই বিবৃতিটি ভাষার নকশাকে প্রভাবিত করার লক্ষণীয় উপায়গুলি কী কী?


4
"বন্ধ" ভোট কেন দয়া করে কেউ ব্যাখ্যা করতে আগ্রহী?

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

2
@ গ্রিগরি: যদি এই প্রশ্নটি একটি আসল সমাধান (কোডে) নিয়ে আসল সমস্যা হত তবে এটি এসওতে থাকতে পারে। প্রোগ্রামারগুলিকে বন্ধ এবং সরানোর পক্ষে ভোট দিয়েছেন।

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

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

উত্তর:


38

প্রয়োজনীয় ধারণাটি কিছু ফ্যাশনে সর্বজনীনভাবে প্রয়োগ হয়, হ্যাঁ, তবে খুব কমই কার্যকর উপায়ে।

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

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

হ্যাস্কেল একধরণের তথ্য সরবরাহ করে এমনটি কতটা প্রত্যাশা করে তা অস্বাভাবিক - বিশেষত, ফাংশনগুলি তার আর্গুমেন্ট হিসাবে নির্দিষ্ট করা ব্যতীত অন্য কোনও মানের উপর নির্ভর করতে পারে না। অন্যদিকে পরিবর্তনীয় গ্লোবাল ভেরিয়েবলগুলির ভাষায়, যে কোনও ফাংশন (সম্ভাব্য) সেই মানগুলি পর্যালোচনা করতে পারে এবং সেই অনুসারে আচরণ পরিবর্তন করতে পারে। তাই টাইপ সঙ্গে একটি Haskell, ফাংশন A -> Bএকটি ক্ষুদ্র প্রোগ্রাম যা প্রমাণ করে যে হিসাবে গণ্য করা যেতে পারে Aবোঝা B; অন্যান্য অনেক ভাষায় একটি সমতুল্য ক্রিয়াকলাপ কেবল তা আমাদের জানাতে পারে Aএবং বিশ্বব্যাপী যে কোনও রাজ্যই একত্রিত হওয়ার সুযোগ দেয় B

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

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

ধারণাটি হাস্কেলের চেয়েও অনেক বেশি নেওয়া যেতে পারে।


উল্লেখ্য যে ব্যতিক্রমগুলি পুরোপুরি কোনও টাইপ সিস্টেমে সংহত করা যায়।
বাগানের মাথা

18

আপনি সঠিক যে কারি-হাওয়ার্ডের চিঠিপত্রটি খুব সাধারণ জিনিস। এটির ইতিহাস সম্পর্কে নিজেকে কিছুটা জানার জন্য এটি মূল্যবান: http://en.wikedia.org/wiki/Curry- হাওয়ার্ড_সাক্ষর

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

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

সুতরাং এক অর্থে প্রশ্ন উঠছে যে হাস্কেল এত সোজাভাবে এসটিএলসিতে "দেশুয়ার্স" কেন? দুটি বিষয় মাথায় আসে:

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

এছাড়াও একটি গুরুত্বপূর্ণ উপায় রয়েছে যাতে বেশিরভাগ ভাষার মতো হাসেলও কারি-হাওয়ার্ডের চিঠিপত্রের সরাসরি প্রয়োগের ক্ষেত্রে ব্যর্থ হয়। হাস্কেল, একটি ট্যুরিজিং-সম্পূর্ণ ভাষা হিসাবে, সীমাহীন পুনরাবৃত্তি হওয়ার সম্ভাবনা রয়েছে এবং তাই এটি সমাপ্ত নয়। STLC, একটি fixpoint অপারেটর আছে না টুরিং-সম্পূর্ণ নয়, এবং হয় জোরালোভাবে স্বাভাবিক - যা বলতে চাই যে STLC একটি মেয়াদের কোন হ্রাস বিনষ্ট করতে ব্যর্থ হবে। পুনরাবৃত্তির সম্ভাবনার অর্থ কারি-হাওয়ার্ডকে কেউ "প্রতারণা" করতে পারে। উদাহরণস্বরূপ, let x = x in xটাইপ আছেforall a. a- যেমন, যেহেতু এটি কখনই ফিরে আসে না, আমি ভান করতে পারি যে এটি আমাকে কিছু দেয়! যেহেতু আমরা সবসময় হাস্কেলে এটি করতে পারি, তার অর্থ হ'ল আমরা হ্যাস্কেল প্রোগ্রামের সাথে সম্পর্কিত যে কোনও প্রমাণে পুরোপুরি "বিশ্বাস" করতে পারি না যদি না আমাদের কাছে প্রোগ্রামটি নিজেই সমাপ্ত হচ্ছে এমন একটি পৃথক প্রমাণ না থাকে।

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


1
জোর দেওয়া ভাল হবে যে অবিচ্ছিন্নতা প্রমাণকে কিছু উপায়ে ক্ষুন্ন করে যে স্পষ্টতই একটি যৌক্তিক দৃষ্টিকোণ থেকে বিপর্যয়ী হলেও অন্যান্য অনেক সম্পত্তি সংরক্ষণ করে। বিশেষত, একটি ফাংশন A -> B, একটি দেওয়া Aহয়, হয় হয় Bনা বা কিছু উত্পাদন করে । এটি কখনই কোনও উত্পাদন করতে পারে না Cএবং এটি কোন ধরণের মান প্রদান Bকরে বা এটি যদি ডাইভারেজ হয় Aতবে এখনও সরবরাহের উপর নির্ভর করে depend

@ ক্যাম্যাক্যান - কিছুটা নিটপিকি, তবে আমি নীচে এবং "কিছুই নয়" এর মধ্যে পার্থক্য করব, যা আরও বেশি পছন্দ Void, না? অলসতা এটিকে উভয়ই কম জটিল করে তোলে। আমি বলব যে কোনও ফাংশন A -> B সর্বদা একটি ধরণের মান উত্পন্ন করে Bতবে এই মানটির প্রত্যাশার চেয়ে কম তথ্য থাকতে পারে।
sclv

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

12

প্রথম অর্ডারটির প্রায় অনুমানের জন্য, বেশিরভাগ অন্যান্য (দুর্বল এবং / অথবা ইউনি-টাইপ করা) ভাষাগুলি একটির মধ্যে কঠোর ভাষা-স্তরের বর্ণনাকে সমর্থন করে না

  • প্রস্তাব (যেমন একটি প্রকার)
  • একটি প্রমাণ (যেমন একটি প্রোগ্রাম যা আমরা আদিম এবং / অথবা অন্যান্য উচ্চতর আদেশের নির্মাণের সেট থেকে প্রস্তাবটি তৈরি করতে পারি তা দেখায় )

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

  • ইনপুটটিতে সীমিত প্রতিবন্ধকতা দেওয়া হয়েছে, সেই সাথে পরিবেশে যা কিছু ঘটেছিল সেই সাথে আমরা সীমিত প্রতিবন্ধকতা সহ একটি মান তৈরি করতে পারি। (traditionalতিহ্যবাহী স্ট্যাটিক প্রকার, সিএফ সি / জাভা)
  • প্রতিটি কনস্ট্রাক্ট একই ধরণের (গতিশীল প্রকার, সিএফ রুবি / পাইথন)

নোট করুন যে প্রকারভেদে , আমরা একটি প্রস্তাবকে উল্লেখ করি এবং অতএব আরও কিছু তথ্য বর্ণনা করে এমন কিছু তখন কেবল ইনট বা বুল । হাস্কেলে, কোনও ক্রিয়াকলাপের এক বিস্মৃত সংস্কৃতি কেবল এটির যুক্তি দ্বারা প্রভাবিত হয় - কোনও ব্যতিক্রম নেই *।

আরও কিছুটা কঠোর হওয়ার জন্য, সাধারণ ধারণাটি হ'ল (প্রায়) সমস্ত প্রোগ্রামের কনস্ট্রাক্টগুলিতে (যেমন আমরা কেবল এটি নির্মাণ করতে পারি যা প্রমাণ করতে পারি) একটি কঠোর অন্তর্দৃষ্টিবাদী পদ্ধতির প্রয়োগ করে, এবং এ জাতীয় প্রারম্ভিক কাঠামোর সেটকে সীমাবদ্ধ করে a আমাদের যেভাবে

  • সমস্ত ভাষা আদিমদের জন্য কঠোর প্রস্তাব
  • এমন একটি প্রক্রিয়াজাতের সীমাবদ্ধ স্যুট যার মাধ্যমে আদিমদের একত্রিত করা যেতে পারে

হাস্কেল নির্মাণগুলি তাদের আচরণ সম্পর্কে যুক্তি দিয়ে নিজেকে খুব ভাল ধার দেয়। যদি আমরা কোনও প্রমাণ (পড়ুন: ফাংশন) তৈরি করতে পারি যা প্রমাণ করে যে এটি Aবোঝায় B, এটিতে খুব দরকারী বৈশিষ্ট্য রয়েছে:

  • এটি সর্বদা ধরে রাখে (যতক্ষণ না আমাদের একটি রয়েছে A, আমরা এটি তৈরি করতে পারি B)
  • এই জড়িততা শুধুমাত্র উপর নির্ভর করে A, এবং কিছুই না।

এইভাবে আমাদের কার্যকরভাবে স্থানীয় / বৈশ্বিক আক্রমণকারীদের সম্পর্কে যুক্তি প্রদর্শন করতে দেয়। মূল প্রশ্নে ফিরে যেতে; হাস্কেলের ভাষার বৈশিষ্ট্য যা এই মানসিকতাকে সর্বোত্তমভাবে মুগ্ধ করে:

  • বিশুদ্ধতা / সুস্পষ্ট কাঠামোর মধ্যে প্রভাব বিভাজন (প্রভাব উভয় হিসাবে গণ্য হয় এবং টাইপ করা হয়!)
  • হাস্কেল সংকলকগুলিতে ইনফারেন্স / চেকিং টাইপ করুন
  • কোনও প্রোগ্রাম প্রস্তাব এবং প্রকারের মধ্যে নিয়ন্ত্রণ এবং / অথবা ডেটা ফ্লো ইনগ্রেন্টদের এম্বেড করার ক্ষমতা প্রমাণ করার জন্য নির্ধারণ করছে: (পলিমারফিজম, টাইপ ফ্যামিলি, জিএডিটি ইত্যাদির সাথে)
  • উল্লেখ সততা

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

এই প্রশ্নটি যথেষ্ট গভীর উত্তরের যোগ্য, এবং আমি সম্ভবত এই প্রসঙ্গে এটি ন্যায়বিচার করতে পারিনি। আমি উইকিপিডিয়া / সাহিত্যে আরও পড়ার পরামর্শ দেব:

* এনবি: আমি হাস্কেলের অমেধ্য (ব্যতিক্রম, অবসানহীনতা ইত্যাদি) এর কিছু কৌতুকপূর্ণ দিকগুলি উপেক্ষা / উপেক্ষা করছি যা কেবল যুক্তিটিকে জটিল করে তুলবে।


4

কি বৈশিষ্ট্য? টাইপ সিস্টেম (স্থিতিশীল, খাঁটি, বহুকোষী)। একটি ভাল সূচনা পয়েন্ট হ'ল ওয়েডলারের "বিনামূল্যে জন্য উপপাদ্য"। ভাষার নকশায় লক্ষণীয় প্রভাব? আইও টাইপ, টাইপ ক্লাস।


0

Kleene শ্রেণীক্রম আমাদের দেখায় যে প্রমাণাদি প্রোগ্রাম নয়।

প্রথম পুনরাবৃত্ত সম্পর্ক হয়:

R1( Program , Iteration )  Program halts at Iteration.
R2( Theorem , Proof ) Proof proves a Theorem.

প্রথম পুনরাবৃত্তিমূলকভাবে গণনাযোগ্য সম্পর্কগুলি হ'ল:

(exists x) R1( Program , x )  Program Halts.
(exists x) R2( Theorem , x)   Theorem is provable.

যাতে একটি প্রোগ্রাম একটি উপপাদ্য এবং পুনরাবৃত্তি যা বিদ্যমান থাকে যেখানে প্রোগ্রামটি থেমে থাকে সেই প্রমাণের মতো যা উপপাদ্য প্রমাণ করে exists

Program = Theorem
Iteration = Proof

যখন কোনও প্রোগ্রাম কোনও স্পেসিফিকেশন থেকে সঠিকভাবে উত্পাদিত হয়, আমাদের অবশ্যই এটি প্রমাণ করতে সক্ষম হতে হবে যে এটি স্পেসিফিকেশনটিকে সন্তুষ্ট করে এবং যদি আমরা কোনও প্রোগ্রাম প্রমাণ করতে পারি যে কোনও স্পেসিফিকেশনকে সন্তুষ্ট করে তবে তা সঠিক প্রোগ্রাম সংশ্লেষ। সুতরাং আমরা প্রোগ্রাম সংশ্লেষ সম্পাদন করি যদি আমরা প্রমাণ করি যে প্রোগ্রামটি নির্দিষ্টকরণটিকে সন্তুষ্ট করে। প্রোগ্রামটি যে উপপাদ্যটি নির্দিষ্টকরণকে সন্তুষ্ট করে তা হ'ল প্রোগ্রামটি যে উপপাদ্যটি সংশ্লেষিত প্রোগ্রামটিকে বোঝায়।

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


2
এই প্রশ্নের উত্তরে কীভাবে এই প্রশ্নটি করা হয়েছিল, "এই বিবৃতিটি ভাষার নকশাকে প্রভাবিত করার লক্ষণীয় উপায়গুলি কী?"
gnat

1
@ জাগান - এই উত্তরটি মূল প্রশ্নের মধ্যে একটি অন্তর্নিহিত অনুমানকে সম্বোধন করে, যথা: " doesn't this really apply to pretty much all the programming languages?" এই উত্তরটি দাবি করে / দেখায় যে অনুমানটি অবৈধ বলে প্রমাণিত হয়েছে, তাই অন্য প্রশ্নগুলির ত্রুটিযুক্ত ভিত্তির উপর ভিত্তি করে বাকী প্রশ্নগুলি সম্বোধন করা বোধগম্য নয় doesn't ।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.