কল-সাইট ভিত্তিক প্রকার অনুকরণের উপর গবেষণা?


9

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

যাইহোক, আমি এই পদ্ধতির উপর কোনও গবেষণা খুঁজে পাওয়ার খুব ভাগ্য পাইনি, সম্ভবত কারণ আমি কী সম্পর্কে বলছি তা বর্ণনা করার জন্য সঠিক পরিভাষা জানি না। কোন পয়েন্টার?


আপনি যেটি বর্ণনা করছেন তাতে দ্বিদ্বৈত প্রকারের অনুক্রমের ইঙ্গিত রয়েছে, যদি না আমার ভুল হয়। আপনি কী করতে চাইছেন তা বর্ণনা করা তবে তা স্পষ্ট হতে পারে।
ডমিনিক মুলিগান

পলিমারফিক ফাংশন বিশেষায়িত করার উপায় অনুসন্ধান করার কারণে আপনি কি জিজ্ঞাসা করছেন?
nphonecop

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

উত্তর:


11

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

আপনি কেবল "টাইপ ইনফারেন্স" হিসাবে যা খুঁজছেন তা বর্ণনা করব এবং সম্ভবত "হ্যান্ডলি-মিলনার" সিস্টেম হিসাবে পরিচিত যা খুঁজে পাওয়া উচিত you উইকিপিডিয়া পৃষ্ঠাটি একটি যুক্তিসঙ্গত ভূমিকা দেয় এবং মূল কাগজপত্রগুলিকে নির্দেশ করে।

লোকাল টাইপ ইনফারেন্সের জন্য শুরু করার জায়গাটি হল পিয়ার্স এবং টার্নারের মূল কাগজ, টপলাস 2000 সংস্করণে সেরা পঠিত ( এসিএম , পিডিএফ )।


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

আমি কোনও ন্যূনতম বাস্তবায়ন জানি না। টাইপড র‌্যাকেটে একটি, এবং স্কালায় একটি রয়েছে তবে উভয়ই যথেষ্ট জটিল অ্যালগোরিদম প্রয়োগ করে।
স্যাম টোবিন-হচস্টাড্ট

0

চৌরাস্তা প্রকারের জন্য টাইপ সিস্টেমগুলিতে একবার নজর দিতে পারেন যা আপনাকে এর মতো কিছু দিতে পারে a :: Int -> Int | Bool -> Bool, তাই আপনি জানেন যে দুটি বিশেষায়নের জন্য Intএবং Boolযথেষ্ট or বা সাধারণ প্রকারের অনুমানের জন্য একটি সাধারণ ধরণের অনুক্রম ব্যবহার করে যথাযথ সংগ্রহের জন্য নিয়ন্ত্রণ প্রবাহ বিশ্লেষণ অনুসরণ করা হয় যুক্তি টাইপ করুন। আসলে হাইব্রিড পন্থা রয়েছে (সিএফএ একটি টাইপ সিস্টেম হিসাবে প্রকাশিত এবং বিপরীতে)।

গবেষণাগুলি সর্বাধিক সাধারণ ধরণের পরিবর্তে নিম্নমানের সাধারণ ধরণের অনুমানগুলি নিয়ে কাজ করে তবে আমি তাদের সম্পর্কে অসচেতন।

পলিমারফিজম বাস্তবায়নের কৌশলগুলির জন্য, দুটি সমাধান বিদ্যমান: 1) বিশেষীকরণ (সি ++ টেমপ্লেটগুলির কথা ভাবেন) 2) অভিন্ন প্রতিনিধিত্ব অনুমান (শূন্য * সহ সি-স্টাইলের সংগ্রহগুলি ভাবেন)।

2 এর জন্য টাইপচেকিংয়ের সময় আপনার কল-সাইট থেকে টাইপের দরকার নেই এবং আপনি আরও সহজে পৃথক সংকলন সমর্থন করতে পারেন।

নোট করুন যে আমরা এখানে প্যারামেট্রিক পলিমারফিজম নিয়ে কথা বলছি এবং ওও ভার্চুয়াল মেথড কলগুলি একেবারে আলাদা জিনিস যা সাব টাইপ পলিমারফিজম বলে। নোট করুন যে সি ++ টেমপ্লেটগুলি প্যারামেট্রিক পলিমারফিজম এবং হাঁসের টাইপিংয়ের মতো উভয়কেই সমর্থন করে যা পলিমারফিজমের আরও একটি রূপ।


1
"ও ও ভার্চুয়াল মেথড কলগুলি অ্যাড-হক পলিমারফিজম বলে একেবারে আলাদা জিনিস" অ্যাড-হক পলিমॉर्फিজম ওভারলোডিংয়ের অপর নাম। আপনি এটিকে সাব টাইপ পলিমারফিজমে বিভ্রান্ত বলে মনে করছেন।
রাদু গ্রেগোর

তবে সাবক্ল্যাসগুলি অগত্যা সাব টাইপ নয়, তাই না? যেমন সাব টাইপগুলির জন্য এলএসপি রাখার কথা hold
nphonecop

1
সত্য, তবে বিন্দু পাশে। "সাব টাইপ পলিমারফিজম" হ'ল স্ট্যান্ডার্ড শব্দ। বিশদ জানতে en.wikedia.org/wiki/Subtype_polymorphism দেখুন ।
রাদু গ্রেগোর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.