দক্ষ গণনার জন্য প্রোগ্রামিং ভাষা


32

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

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

আমার প্রশ্ন: এমন কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে যেগুলি অল্প-তুচ্ছ উপায়ে কম্পিউটেবল ফাংশনগুলির (যেমন সমস্ত দক্ষতার সাথে গণ্যযোগ্য ফাংশন) উপসেটগুলি ক্যাপচার করে? যদি না থাকে তবে এর কোনও কারণ আছে কি?


7
প্রোগ্রামিং ল্যাঙ্গুয়েজের কয়েকটি সাধারণ উদাহরণ যা গণনাযোগ্য ফাংশনের সাবটাকে ক্যাপচার করে: নিয়মিত প্রকাশ এবং প্রসঙ্গমুক্ত ব্যাকরণ।
জুলকা সুমেলা 14

2
আসলে যে ভাষাগুলি পি ভি এর মতো জটিলতা ক্লাস ক্যাপচার করে (যেগুলি আবদ্ধ পুনরাবৃত্তির দ্বারা আবর্তিত পুনরাবৃত্তির সাথে আদিম পুনরাবৃত্ত ফাংশনগুলির সাথে একইভাবে সংজ্ঞায়িত করা হয়) বেশ আকর্ষণীয় (কমপক্ষে তাত্ত্বিক দিক থেকে)। :)PPV
কাভেহ

লিনিয়ার এবং ইন্টিজার প্রোগ্রামিং কম্পিউটিংযোগ্য ফাংশনগুলির আকর্ষণীয় সাবসেটগুলি ক্যাপচার করে।
দিয়েগো ডি এস্ট্রাদ

ডাটাবেসগুলি কেবল বহু বহু সময়ের আলগোরিদিমগুলি প্রকাশ করতে পারে, তবে আমি জানি না এটি সমস্ত বহুবর্ষীয় সময়ের অ্যালগরিদমগুলি প্রকাশ করতে পারে কিনা I
জুলাই

সুপরিচিত কাগজ "টোটাল ফাংশনাল প্রোগ্রামিং" যুক্তিটি তৈরি করে যে এমন প্রোগ্রামিং ভাষাগুলি যেগুলি অনস্বীকার্যভাবে থামানোর সমস্যা নেই সেগুলি আসলে ব্যবহারিক এবং দরকারী। jucs.org/jucs_10_7/ মোট_ফাংশনাল_প্রক্রামিং
কোনটি

উত্তর:


32

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

অন্যান্য কাজ নির্ভরযোগ্য প্রকারগুলি বা টাইপযুক্ত সমাবেশ ভাষা ব্যবহার করে প্রোগ্রামটি নির্দিষ্ট পরিমাণ সংস্থান ব্যবহার করে যাচাইয়ের পদ্ধতিকে গ্রহণ করে ।

তবুও অন্যান্য পদ্ধতিগুলি পরিসীমা দ্বারা সীমাবদ্ধ আনুষ্ঠানিক ক্যালকুলির উপর ভিত্তি করে , যেমন পরিবেষ্টিত ক্যালকুলাসের রূপগুলি।

এই পদ্ধতির মধ্যে এমন সম্পত্তি রয়েছে যা ভাল-টাইপ করা প্রোগ্রামগুলি কিছু প্রাক-নির্দিষ্ট সংস্থান সীমাবদ্ধ করে। সংস্থান করা সংস্থানটি সময় বা স্থান হতে পারে এবং সাধারণত ইনপুটগুলির আকারের উপর নির্ভর করতে পারে।

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

প্রোগ্রামিং ল্যাঙ্গুয়েজ চ্যারিটি হ'ল একটি বেশ অভিব্যক্তিপূর্ণ ফাংশনাল ভাষা যা সমস্ত ইনপুটগুলিতে থামে on আমি জানি না যে এটি কী জটিলতার শ্রেণিটি প্রকাশ করতে পারে তবে আকারম্যান ফাংশনটি চ্যারিটিতে লেখা যেতে পারে।


এখানে 'কমপক্ষে' বলতে কী বোঝ?
nphonecop

'কমপক্ষে' এর অর্থ 'কিছু'। আমি আমার উত্তরটি আরও কিছুটা সুনির্দিষ্ট করার জন্য পরিবর্তন করব।
ডেভ ক্লার্ক

আমি নিশ্চিত যে সিস্টেম এফ-এ নির্ধারিত ফাংশনগুলির জটিলতা হ'ল ফাংশনগুলির শ্রেণি যা সময়ে "ইনপুটটির ২ য় অর্ডার গাণিতিকের কয়েকটি কার্যকর ফাংশন" সমাপ্ত হয় termin নেই একটি খুব প্রচলিত জটিলতা বর্গ, কিন্তু এখনও ...
কোডি

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

10

গিলিয়াম বোনফ্যান্ট পেপারটিতে একবার নজর দিন যিনি লোগস্পেসের জন্য দুটি বৈশিষ্ট্য এবং প্রোগ্রামিং ভাষা ব্যবহার করে বহুপদী সময় প্রস্তাব করেছিলেন।

গিলিয়াম বোনফ্যান্ট, লগস্পেস এবং পিটাইমের জন্য কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ, এমএএসএটি 2006, এলএনসিএস 4019, পৃষ্ঠা 66-80, 2006


8

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

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


5

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


1
এটি সমস্ত ফাংশনের যথাযথ সাবক্লাস, তবে এটিকে "দক্ষ" ফাংশনগুলির শ্রেণি বলা কিছুটা প্রসারিত হতে পারে।
রাফেল

PP

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

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