সবচেয়ে শক্তিশালী পরিচিত টাইপ সিস্টেমগুলি কীসের জন্য অনুমিতি নির্ধারণযোগ্য?


22

এটি সুপরিচিত যে হিন্দি-মিলনার ধরণের অনুমিতি ( সরল - টাইপযুক্ত ক্যালকুলাস সহ বহুবিজ্ঞানযুক্ত) নির্ধারিত ধরণের অনুমিতি রয়েছে: আপনি কোনও টিকা ছাড়াই যে কোনও প্রোগ্রামের জন্য নীতিগত প্রকারগুলি পুনর্গঠন করতে পারেন।λ

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

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

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

সম্পাদনা: এখানে কোনও "শক্তিশালী" সিস্টেম নেই বলে আমি একটি উত্তর গ্রহণ করব যা এমন উল্লেখযোগ্য সিস্টেমগুলির রূপরেখারেখায় যা হিন্দি মিলনারকে নির্ধারণযোগ্য ইনফারেন্স সহ প্রসারিত করে। উদাহরণগুলি তরল প্রকার, র‌্যাঙ্ক -2 ইত্যাদি হতে পারে


4
@jmite আমি এখানে অন্যদের সাথে একমত। সত্যিকারের কোনও ক্লিয়ারকাট সীমানা নেই। আমি সন্দেহ থাকতে পারে। ডিক্রিডিবিলিটি টাইপের অনুমিতিগুলি সমস্ত ভাষার বৈশিষ্ট্যের উপর নির্ভর করে, উদাহরণস্বরূপ আপনি কি সাবটাইপিং পেয়েছেন বা না পেয়েছেন। একটি ক্লিয়ারকুট সীমানা এইচএমের এক্সটেনশনে উচ্চ-র‌্যাঙ্কড প্রকারের সাথে আমরা জানতে পারি যেখানে পাওয়া যাবে: K> 2 র‌্যাঙ্কের জন্য, টাইপ-ইনফারেন্সটি অনস্বীকার্য, অন্যথায় এটি সিদ্ধান্ত গ্রহণযোগ্য।
মার্টিন বার্গার

@ মার্টিন বার্গার আমি স্বীকার করি যে এর চেয়ে শক্তিশালী আর কোনও নেই, তবে আমি মনে করি যে র্যাঙ্ক -২ এর মতো উল্লেখযোগ্য উল্লেখযোগ্য উত্তরগুলির উল্লেখ করার মতো এখনও একটি ভাল উত্তর পাওয়া উচিত।
jmite

1
@ jmite টাইপ-ইনফারেন্সের জন্য ডেসিডেবলিলেটির সংমিশ্রণটি রাখা দুর্দান্ত হবে। এরকম কোনও জিনিস নেই, হায়রে এগুলি সবই প্রায় শত শত কাগজ বিতরণ করা হয়েছে। হতে পারে আপনি একটি লিখতে পারেন, এটি সম্প্রদায়ের জন্য একটি দুর্দান্ত পরিষেবা হবে।
মার্টিন বার্গার

আমার কাছে মনে হয়েছে যে প্রশ্নের উত্তর লেখা কঠিন হতে পারে তবে ডিডিয়ার রমির (সাম্প্রতিক উল্লেখগুলি) সাম্প্রতিক প্রকারের অনুমানের কাজটি প্রশ্নকারীর পক্ষে আগ্রহী হতে পারে।
এজগ্লেগো

উত্তর:


2

[সম্পাদনা করুন: প্রতিটি উপর কয়েকটি শব্দ Voilà]

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

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

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

এইচএম প্রসারণের আরেকটি উপায় হ'ল সীমাবদ্ধ ডোমেনের পরিবর্তনের মাধ্যমে।

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

  • হ্যাস্কেলের ধরণের ক্লাসগুলিও ফর্মের পূর্বাভাস MyClass(MyType)(যেমন মাইটাইপ টাইপের জন্য মাইক্লাসের একটি উদাহরণ উপস্থিত রয়েছে) যোগ করে সীমাবদ্ধ ডোমেনের এক ধরণের প্রসার।
    প্রকারের ক্লাসগুলি প্রকারের অনুকরণ সংরক্ষণ করে কারণ তারা মূলত একটি (প্রায়) অ र्थোগোনাল ধারণা যা তারা অ্যাডহক পলিমারফিজম প্রয়োগ করে
    উদাহরণস্বরূপ, একটি প্রতীক নিতে valধরনের val :: MyClass a => aআপনি দৃষ্টান্ত থাকতে পারে, যার জন্য MyClass A, MyClass Bইত্যাদি যখন আপনি আপনার কোডে এই চিহ্নের পড়ুন, এটি একটি প্রকৃত কারণ টাইপ অনুমান ইতিমধ্যে সঞ্চালিত হয় যে কম্পাইলার ব্যবহার যা ক্লাসের নিদর্শনের সঙ্গে অনুমান করতে পারেন। এর অর্থ হল যে প্রকারটি valএটি ব্যবহৃত হয় সেই প্রসঙ্গে নির্ভর করে। এই কারণেই একটি একক valবিবৃতি চালানো একটি বাড়েambiguous type error : সংকলক প্রসঙ্গের ভিত্তিতে কোনও প্রকার অনুমান করতে পারে না।

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

প্রকৃত জটিলতার একটি উদাহরণ দেওয়ার জন্য আসুন তালিকার নির্ভরশীল প্রকারটি বিবেচনা করা যাক: তালিকার অবজেক্টগুলির ধরণ NList a nকোথায় aএবং nএর দৈর্ঘ্য।
সংযোজন ফাংশনের টাইপ হবে append :: NList a n -> NList a m -> NList a (n + m)এবং জিপ ফাংশন হবে zip :: NList a n -> NList b n -> NList (a, b) n
ভাবুন এখন আমাদের ল্যাম্বডা আছে \a: NList t n, b: NList t m -> zip (append a b) (append b a)। এখানে জিপের প্রথম যুক্তি টাইপ NList t (n + m)এবং দ্বিতীয় ধরণের NList t (m + n)
প্রায় একই, তবে যতক্ষণ না টাইপ চেকার জেনে থাকে যে প্রাকৃতিক সংখ্যায় "+" কমিট হয়, ততক্ষণ অবশ্যই এটি ফাংশনটি প্রত্যাখ্যান করতে হবে কারণ (এন + এম) আক্ষরিক (মি + এন) নয়। এটি আর টাইপ অনুমান / টাইপ চেকিং সম্পর্কে নয়, এটি উপপাদ্য প্রমাণ করার বিষয়ে।

তরল প্রকারগুলি মনে হয় কিছু নির্ভরশীল ধরণের অনুমিতি করছে। তবে আমি এটি বুঝতে পেরেছি যে এটি সত্যিকারের নির্ভরশীল ধরণের নয়, স্বাভাবিক এইচএম টাইপের মতো আরও কিছু যা স্থির সীমার গণনা করতে অতিরিক্ত অনুমান করা হয়।

আশা করি এটা কাজে লাগবে.

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