প্রোগ্রামিং ভাষার তত্ত্বটি উত্তর দেওয়ার চেষ্টা করছে এমন "প্রশ্ন" কী?


10

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

উইকিপিডিয়া এটিকে বর্ণনা করে:

প্রোগ্রামিং ল্যাঙ্গুয়েজ থিয়োরি (পিএলটি) কম্পিউটার বিজ্ঞানের একটি শাখা যা প্রোগ্রামিং ভাষার নকশা, বাস্তবায়ন, বিশ্লেষণ, চরিত্রায়ন এবং শ্রেণিবদ্ধকরণ এবং তাদের স্বতন্ত্র বৈশিষ্ট্যগুলির সাথে সম্পর্কিত।

এটি "সবকিছু" বলার মতো যা সত্যই নির্দিষ্ট নয়।

বিষয়গুলির সাধারণ অগ্রগতি সাধারণত এমন হয়:

সংযুক্ত যুক্তি> ল্যাম্বদা ক্যালকুলাস> মার্টিন লফ টাইপ থিওরি> টাইপড ল্যাম্বদা ক্যালকুলাস> (এখানে কিছু ঘটে)> প্রোগ্রামিং ভাষার বিকাশ হয়েছে - যার সিএল / ল্যাম্বদার সাথে খুব কম সংযোগ রয়েছেλ

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

নোট: আমি এটি ব্যবহার পর্যন্ত পেতে পারি undecidability প্রমাণাদি জন্য -calc। তবে "গণনাযোগ্যতা" এর প্রয়োগযোগ্যতার বাইরে আমি কেবল এটি পাই না এবং এই সংকীর্ণ পিওভের কাছ থেকে পিএলটি-তে গবেষণার প্রয়োজনীয়তা বোঝার জন্যও আমি খুব কঠিন সময় কাটাচ্ছি। কোনও বিদ্যমান বই, উল্লেখ যা পিএলটি-র "বড় ছবি" আলো ফেলতে পারে?λ


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

আপনি 100% সঠিক। অতএব আমি আমার "সরু পিওভি" ডাকলাম। আমি এখানে প্রায় পড়ার পরে এবং "সিপিলান / পিওপিএল কার্যবিধির পরীক্ষা করে" অন্যান্য বিষয়গুলির সাথে পরিচিত। আমি এখনও একটি "সামগ্রিক রেফারেন্স / বই" খুঁজে পাইনি যা আপনার উল্লিখিত বিষয়গুলি অন্তর্ভুক্ত করে পিএলটি-এর একটি বিস্তৃত ব্রাশের ওভারভিউ দেয় । টাইপ-থিওরি বিটটি শুধুমাত্র প্রোগ্রামিং ল্যাঙ্গুয়েজের "আমার" পিওভি থেকে। আপনার কি এমন কিছু পয়েন্টার রয়েছে যা PLTto- র বিভিন্ন অঞ্চলে উচ্চ-স্তরের পরিচিতি সরবরাহ করতে পারে একটি বড় চিত্র ওভারভিউ পেতে? আমি জানতে আগ্রহী যে তারা "মডেলগুলি" কীভাবে ব্যবহার করে এবং কীভাবে?λ সর্বত্র?
পিএইচডি

2
@ পিএইচডি আপনার পছন্দসই পিএলটি-র বিভিন্ন ক্ষেত্রে কোনও উচ্চ-স্তরের পরিচয় নেই, সি'এস্ট লা ভি ! হতে পারে একদিন এই পরিবর্তন হবে। তবে দম ধরবেন না। ক্ষেত্রটি দ্রুত বিকশিত হচ্ছে এবং সাবফিল্ডগুলিতে নিজেকে আলাদা করছে। অন্যান্য জনপ্রিয় সরল মডেলের অন্তর্ভুক্তπ-ক্যালকুলাস, স্ট্রাকচারাল অপারেশনাল সিম্যানটিকস, সাধারণ অত্যাবশ্যক ক্যালকুলি (WHILE ভাষার মতো) এবং আরও অনেকগুলি। কারও অ্যাপ্লিকেশন ডোমেন অনুসারে কেউ খেলনা ক্যালকুলাস আবিষ্কার করে।
মার্টিন বার্গার

উত্তর:


13

পিএলটি-এর সামগ্রিক উদ্দেশ্য সর্বাধিক গুরুত্বপূর্ণ সরঞ্জাম (প্রোগ্রামিং ল্যাঙ্গুয়েজ) এবং সম্পর্কিত টুলিং ইকোসিস্টেমকে অনুকূলকরণের মাধ্যমে শিল্প সফটওয়্যার ইঞ্জিনিয়ারিংকে (সাধারণ অর্থে) কমদামে (সাধারণ অর্থে) তৈরি করা।

গণিত জড়িত থাকার কয়েকটি কারণ:

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

  • পিএলটি-তে উপযুক্ত অভিজ্ঞতামূলক পদ্ধতির অভাব রয়েছে যা ভাল / ভাল লাগবে, সুতরাং গণিতের বিকল্প হিসাবে করা হয়।

  • গণিতগুলি সুন্দর এবং গভীর।

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

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

 Every successful programming language ends up being ML! Either because 
 it was designed by a PL theorist as ML from the start, or because a 
 decade of painful evolution removes all the obvious flaws, leaving ML. ;-)

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


1
@ মার্টিনবার্গার: কমপ্যাক্ট একটি বাস্তব-বিশ্ব প্রোগ্রামিং ভাষা "তাত্ত্বিকভাবে" পরিচালনা করতে সক্ষম হওয়ার উদাহরণ হিসাবে গণ্য হয়েছে? যদি তা না হয় তবে আপনি কতটা উচ্চতর বারটি সেট করছেন, কারণ কমপ্যাক্ট বেশ চিত্তাকর্ষক।
আন্দ্রেজ বাউয়ার 13

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

5
@ পিএইচডি: টাইপ তত্ত্বের চেয়ে পিএলটি-তে আরও অনেক কিছু আছে। এটি কেবলমাত্র সেই ধরণের তত্ত্বটিই আপনি প্রথমে লক্ষ্য করেন যা এটি পিএলটি-র অন্যতম প্রধান সরঞ্জাম tools
আন্দ্রেজ বাউর

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

2
@ পিএইচডি> নন-পিএলটি সি / সি ++, জাভা, সি # "এর চেয়ে" "মূলত আরও উত্পাদনশীল" সম্পর্কে, দয়া করে মনে রাখবেন যে আপনি যদি সেই ভাষাগুলি, আরও বিশেষত, সময়ের সাথে তাদের বিবর্তনটি লক্ষ্য করেন তবে তারা প্রায়শই সমস্ত কিছু অর্জন করেছেন যা তারা অর্জন করেছেন? সময়, যেমন ল্যাম্বডাস, মনডস (লিনকুই), প্যাটার্ন ম্যাচিং, আংশিক ধরণের অনুমান পিএলটি থেকে আসে। সি # টিমের পিএলটি পিএইচডি রয়েছে। সত্যই তারা কোনও সময় আমাকে নিয়োগ দেওয়ার চেষ্টা করেছিল। কাজের সাক্ষাত্কারটি আমি আন্ডার হিজলসবার্গকে বোঝানোর চেষ্টা করছিলাম যে সি # জেনেরিকের প্রয়োজন, যা সে সময় পছন্দ করেন না ...
মার্টিন বার্গার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.