প্রোগ্রামিংয়ে হোমোপি টাইপ থিয়োরির ব্যবহারিক প্রভাব কী কী?


11

আমি জাভাস্ক্রিপ্ট / রুবি ওয়ার্ল্ডস থেকে আসার পরে হাস্কেল শিখতে শুরু করছি। আমি https://github.com/HoTT এবং হোমোটোপি টাইপ থিওরি বইটি এসেছি, যা আমি পড়তে আগ্রহী।

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

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

ধন্যবাদ, অনেক বেশি বেসিক স্তরে আমার মাথাটি এটির চারপাশে জড়িয়ে ফেলার জন্য প্রত্যাশা করছি।


আমি আশা করি এটি হ'ল, এবং প্রোগ্রামারদের অনুশীলন করার ক্ষেত্রে সর্বদা অনর্থক থাকবে। সর্বোপরি, আমরা দ্রুততর সংকলক বা জাদুকরী কালো বাক্সগুলি পেতে পারি যা গণিত-ফু এর সুবিধা নেয়।
টেলাস্টিন

হাহা এটাই আমি এতক্ষণ ভাবছিলাম। যদিও আমি এখনও ভাবছি, এটি কি এই উত্তর নাকি আপনি যা বলেছেন তার বাইরে কিছু আছে? উদাহরণস্বরূপ, ডাটাবেসগুলি এ থেকে উপকৃত হতে পারে? বা এর মতো কিছু।
ল্যান্স পোলার্ড

1
আমার কোন ধারণা নাই. আমি বিমূর্তটি পড়ি এবং তাত্ক্ষণিকভাবে তা বালতিতে অবিচ্ছিন্ন একাডেমিক মাম্বো-জাম্বোর জন্য ফেলে দেয়।
টেলাস্টিন


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

উত্তর:


15

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

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

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

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

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

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