টাইপ-চেকিং অ্যালগোরিদম


19

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

আমি বিশেষত জটিল টাইপ-চেকিং অ্যালগরিদমগুলিতে আগ্রহী যা ব্যাপকভাবে পরিচিত দৃ strongly় স্থিত টাইপযুক্ত ভাষায় যেমন উদাহরণস্বরূপ, সি ++, জাভা 5+, স্কালা বা অন্যান্যগুলিতে প্রয়োগ করা হয়েছিল। আইই, টাইপ-চেকিং অ্যালগরিদমগুলি যা অন্তর্নিহিত ভাষার খুব সাধারণ টাইপিংয়ের কারণে খুব সহজ নয় (যেমন জাভা ১.৪ এবং নীচে)।

আমি কোনও নির্দিষ্ট ভাষার এক্স, ওয়াই বা জেডের প্রতি আগ্রহী নই। আমি যে ভাষাকে লক্ষ্য করে তা নির্বিশেষে টাইপ-চেকিং অ্যালগরিদমগুলিতে আগ্রহী। যদি আপনি এমন কোনও উত্তর সরবরাহ করেন যা "ভাষা এল যা আপনি কখনও শুনেন নি যার সম্পর্কে দৃ strongly়রূপে টাইপ করা হয় এবং টাইপিং জটিল হয় তাতে টাইপ-চেকিং অ্যালগরিদম থাকে যা A, B এবং C করে অ্যালগরিদম জেড ব্যবহার করে X এবং Y পরীক্ষা করে", বা " কৌশল স্কোরের জন্য এক্স এবং ওয়াই ব্যবহার করা হয় এবং সি # এর জন্য ব্যবহৃত এ এর ​​একটি ভেরিয়েন্ট জেড দুর্দান্ত কারণ আর, এস এবং টি বৈশিষ্ট্যগুলি যে সেইভাবে কাজ করে ", তারপরে উত্তরগুলি দুর্দান্ত।


3
একটি নির্দিষ্ট ভাষার জন্য টাইপ চেকিং জিজ্ঞাসা করার জন্য আপনার এই প্রশ্নটি সম্পাদনা করা উচিত। মুক্ত-সমাপ্ত, তালিকা-শৈলীর প্রশ্নগুলি সাধারণত এসইতে নিরুৎসাহিত করা হয় (যদিও এই নির্দিষ্ট সাইটের এখনও এটি সম্পর্কিত কোনও নীতি নেই)। এছাড়াও: <টাইপ-সিস্টেম-ইলিটিস্ট> জাভার ধরণের সিস্টেম জটিল নয় </ টাইপ-সিস্টেম-ইলিটিস্ট>।
sepp2k

3
সম্ভবত প্রশ্নটি আরও সুনির্দিষ্ট বলে পুনর্বিবেচনা করা যেতে পারে, তবে আমি মনে করি এটি বন্ধ করা উচিত নয়।
ডেভ ক্লার্ক

1
@ sepp2k: আমি জানি যে এটি কিছুটা বিস্তৃত, তবে এইভাবে শেষ হয়েছে কারণ আমি উত্তরগুলির কার্যকারিতা সীমাবদ্ধ করতে চাই না। বিটিডাব্লু, আপনি "<টাইপ-সিস্টেম সিস্টেম-বেল্টিস্ট> জাভা টাইপ সিস্টেমটি জটিল নয় </ টাইপ-সিস্টেম সিস্টেম- বেনিস্টিস্ট>" দিয়ে কী বলতে চান তা আমি বুঝতে পারি নি। জাভাটির ১.৪ এবং নীচে টাইপ সিস্টেমটি সহজ ছিল, তবে জাভা ৫-এ হোয়াইট জেনেরিকগুলি এটি অনেক জটিল হয়ে উঠল।
ভিক্টর স্টাফুসা

2
একটি নির্দিষ্ট ভাষার জন্য জিজ্ঞাসা প্রশ্ন এই সাইটের জন্য আরও অসমর্থিত, ইমো। প্রশ্নটি সম্ভবত সাধারণ কৌশলগুলির জন্য জিজ্ঞাসা করা উচিত।
রাফেল

1
@ উইক্টর একটি প্রাথমিক সরঞ্জাম হ'ল অ্যাট্রিবিউট ব্যাকরণ । আপনি তাদের সাথে কল্পনা করতে পারেন এমন প্রতিটি মন্দ কাজ আপনি করতে পারবেন না তবে তারা একটি ভাল সূচনা পয়েন্ট।
রাফেল

উত্তর:


13

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

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

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


আফাইক, স্কালার টাইপ সিস্টেম গবেষণা প্রকল্পগুলিতে তৈরি করা হয়েছে এবং এভাবে প্রকাশিত হয়। সংকলকটিও উন্মুক্ত-উত্সাহিত। যদিও হয় নি।
রাফেল

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

2

একটি প্রাথমিক সরঞ্জাম হ'ল অ্যাট্রিবিউট ব্যাকরণ । আপনি তাদের সাথে কল্পনা করতে পারেন এমন প্রতিটি মন্দ কাজ আপনি করতে পারবেন না তবে এগুলি একটি ভাল সূচনার পয়েন্ট।

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

এখানে স্লাইডগুলিতে কিছু ব্যাখ্যা এবং উদাহরণ সন্ধান করুন (অধ্যায় 5)


কারও কি আরও ভাল রেফারেন্স আছে? আমার ধারণা আমি আজকের দিনের একটি ড্রাগনবুক বা উইলহেলম / মুরার কিনতে হবে ...
রাফেল

1
টুল JastAdd রেফারেন্স অ্যাট্রিবিউট ব্যাকরণ উপর ভিত্তি করে একটি চমৎকার আধুনিক কম্পাইলার কম্পাইলার সিস্টেম। আমরা এটি বেশ কয়েকটি প্রকল্পে ব্যবহার করেছি।
ডেভ ক্লার্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.