কোন গবেষণা ভাষায় হাস্কেলের চেয়ে শক্তিশালী টাইপসিস্টেম রয়েছে এবং কেন?


14

এখানে আমি এটি পড়েছি:

হাস্কেলের স্পষ্টতই সর্বাধিক উন্নত প্রকারের সিস্টেম নেই (এমনকি আপনি গবেষণা ভাষাগুলি গণনা করলেও কাছাকাছি নয়) তবে প্রকৃতপক্ষে উত্পাদনে ব্যবহৃত সমস্ত ভাষার মধ্যে হাস্কেল সম্ভবত শীর্ষে রয়েছে।

সুতরাং আমি দুটি জিনিস জিজ্ঞাসা করছি:

  1. যেসব গবেষণামূলক ভাষাগুলিতে হাস্কেলের চেয়ে আরও শক্তিশালী টাইপ সিস্টেম রয়েছে;
  2. তারা কি উন্নতি করে।

আমি কেবল একজন প্রোগ্রামার, তাই টাইপ থিওরিতে ব্যবহৃত অনেক গাণিতিক অবজেক্ট আমি জানি না, দয়া করে পারলে মৃদু ব্যাখ্যা দিন provide


3
"আরও ভাল" কি?
ডেভিড রিচার্বি

2
@ ডেভিডরিচারি আমার ধারণা, এর অর্থ আরও শক্তিশালী টাইপ সিস্টেম
Олегович

2
একবার আপনি প্রমাণ করেছেন যে কোনও টাইপ সিস্টেম টিউরিং-সম্পূর্ণ , এটি কি আসলেই গুরুত্বপূর্ণ? ;-)
দেবসোলার

7
ট্যুরিং মেশিনগুলি টুরিং-সম্পূর্ণ, আপনি কেন এটি আপনার প্রতিদিনের প্রোগ্রামিং কাজের জন্য ব্যবহার করেন না?
গ্যালাই

4
মনে রাখবেন যে মূল পাঠ্যটিতে আরও উন্নত প্রকারের সিস্টেমগুলির সাথে ভাষার উল্লেখ রয়েছে এবং কোনও প্রকারের সিস্টেমের জন্য আরও 'উন্নত' বাতর বা আরও খারাপ কোনও দাবি করা যায় না।
পিটারিস

উত্তর:


25

প্রশ্নটি কিছুটা সমস্যাযুক্ত, যেহেতু এটি "আরও ভাল" এর একটি বিষয়গত সংজ্ঞায় নির্ভর করে।

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

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

তাহলে এই ভাষাগুলি কি হাস্কেলের চেয়ে "ভাল"? তারা আপনার কোডের জন্য নির্ভুলতার উন্নত প্রমাণগুলি পরীক্ষা করতে পারে, তবে তারা হ্যাসেল যেভাবে পারে সেভাবে আপনার কোড সম্পর্কিত বৈশিষ্ট্যগুলি স্বয়ংক্রিয়ভাবে প্রমাণ করতে পারে না।

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

পরিশোধন প্রকারের সাহায্যে আপনি বৈশিষ্ট্য সহ ধরণের পরিশোধন করতে পারবেন। উদাহরণস্বরূপ, একটি থাকার পরিবর্তে Int, আপনি {i : Int | i > 0}সমস্ত ধনাত্মক পূর্ণসংখ্যার প্রকারটি প্রদান করে নির্দিষ্ট করতে পারেন । পরিশোধন প্রকারের সাথে প্রকারের অনুমিতি নির্ধারণযোগ্য, তবে নির্ভরযোগ্য প্রকারের সাথে আপনি যতটা নির্ভুলতার বৈশিষ্ট্যগুলি প্রমাণ করতে পারবেন না।

এখানে অন্যান্য পরিশোধন প্রকারের সিস্টেম রয়েছে, তবে আমি তাদের কোনওটির সাথে ভয়ঙ্করভাবে পরিচিত নই।


ধন্যবাদ! হাস্কেল টাইপ সিস্টেমটি সবচেয়ে শক্তিশালী যে এটি এখনও টাইপ অনুক্রমের অনুমতি দেয় তা প্রমাণ করা সম্ভব?
Олегович

3
হাস্কেলের স্পষ্টতই শক্তিশালী নয় যা টাইপ অনুক্রমের অনুমতি দেয়। আমি যে সংশোধনকারী ধরণের উল্লেখ করেছি তা টাইপ অনুমানের জন্য অনুমতি দেয় এবং অনেক জিএইচসি এক্সটেনশন হাস্কেলের সাথে যুক্ত করা হচ্ছে যা কিছুটা শক্তিশালী টাইপ সিস্টেমের জন্য অনুমতি দেয়।
jmite

4
এর শীর্ষে, অনেক ধরণের সিস্টেম রয়েছে এবং অনেকগুলি অতুলনীয়: এগুলি কিছু উপায়ে হাস্কেলের চেয়ে শক্তিশালী হবে তবে অন্যের মধ্যে হাস্কেলের চেয়ে দুর্বল। শক্তিশালী থেকে দুর্বলতম ধরণের সিস্টেমের রৈখিক ক্রম নেই।
jmite

5
এখন আমি প্রমাণ করতে চাই যে শক্তিশালী কোনও টাইপ সিস্টেম নেই যা টাইপ অনুক্রমের অনুমতি দেয়। অকেজো সত্য প্রমাণ করতে প্রতিরোধ করতে হবে।
আন্দ্রেজ বাউর

1
ঘটনাটি আমার কাছে অকেজো বলে মনে হচ্ছে না। প্রকারের অনুক্রম সহ একটি শক্তিশালী টাইপ সিস্টেম রয়েছে এমন জ্ঞান খুব আগ্রহী হবে, বিশেষত যদি এটি প্রয়োগ করা সম্ভব হয়।
যৌক্তিক

10

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

  1. বহুমুখী রূপগুলি
  2. গভীরতা সাব টাইপিং এবং ক্লাস সহ অবজেক্টস
  3. ফান্টেক্টর , যা মডিউলগুলির মধ্যে মানচিত্র (হাস্কেলের মডিউল রয়েছে) এবং এমনকি প্রথম-শ্রেণীর মডিউল রয়েছে

এবং দয়া করে, এটিকে এমএল-হাস্কেল শ্যুটআউটে পরিণত করার দরকার নেই, না হলে আমি বব হার্পারের ব্লগ পোস্টগুলিতে লিঙ্ক শুরু করব ;-)


9

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

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


3
কোনওভাবে "প্রকাশিত" এবং "গবেষণা বিরোধী" একসাথে ভাল যায় না।
আন্দ্রেজ বাউর

1
স্বতন্ত্রতা অবশ্যই একটি আকর্ষণীয় ধারণা, তবে আইএমও এটি শব্দার্থবিজ্ঞানের বিষয়ে আরও বেশি, যেমন কোনও টাইপ সিস্টেম বৈশিষ্ট্য। আর এই সত্যিই কঠোরভাবে টাইপ সিস্টেম করতে না ভাল ? হাস্কেল তার টাইপ সিস্টেম, উচ্চ-র‌্যাঙ্ক পলিমারফিজম ইত্যাদিতে আরও নতুন স্টাফ যুক্ত করেছে তা কি সাফ করতে পারে - টাইপ সিস্টেমটির ইতিমধ্যে স্বতন্ত্রতার সাথে মোকাবিলা করার প্রয়োজন হলে এর মধ্যে এমন কিছু কি সম্ভব?
12:58 এ বাম দিকের বাইরে

1
@ বামফেরদৌত আপনি স্বতন্ত্রতা ধরন বা লিনিয়ার যুক্তি সম্পর্কে কতটা পরিচিত? যদি x এর একটি অনন্য প্রকার থাকে তবে উদাহরণস্বরূপ f (x, x) ভাল টাইপ করা হয়নি। স্বতন্ত্রতার ধরণগুলি সমর্থন করার জন্য হাস্কেলকে প্রসারিত করা সম্ভব হতে পারে। সি ++ তে সরানো শব্দার্থবিজ্ঞানগুলি কোনও বিদ্যমান টাইপ সিস্টেমের উপরে স্বতন্ত্র প্রকারের জন্য সমর্থনকে উন্নত করার হিসাবেও দেখা যেতে পারে।
টমাস ক্লিম্পেল

আমি সি ++ মুভ শব্দার্থবিজ্ঞানের সাথে পরিচিত, সম্ভবত সে কারণেই আমার স্বতন্ত্রতার ছাপটি "টাইপ-সিস্টেমের জিনিস হিসাবে বেশি নয়" is আমি যা আকর্ষণীয় মনে করব তা হল, সম্পূর্ণ বাহ্যিক-প্রচারিত স্বতন্ত্রতা প্রকারগুলি উন্নত প্রকারের সিস্টেমের অন্যান্য বৈশিষ্ট্যগুলিকে বাধা দেয়?
14 ই

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