রৈখিক প্রকার সহ প্রোগ্রামিং ভাষায় ডেটা স্ট্রাকচার


15

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

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

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

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

উত্তর:


20

রৈখিকতা কোনও অনন্য রাষ্ট্রীয় উপস্থাপনা পিন করার পক্ষে সীমাবদ্ধতা নয় এবং তাই আপনার প্রশ্নের উত্তর নির্ভর করে আপনি কীভাবে রাষ্ট্রের ক্ষেত্রে লিনিয়ার যুক্তি ব্যাখ্যা করেন on এটি আপনাকে কীভাবে ব্যাখ্যা করতে হবে তা সাধারণত প্রতিফলিত হবে !A পরিমিতি।

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

যাইহোক, যে অনুমান যদি আপনি চান প্রতিনিধিত্ব করতে শেয়ারিং । তারপর, বস্তু মানচিত্র সহ আবর্জনা-সংগৃহীত রেফারেন্স কাউন্টিং সঙ্গে হতে পারে, এবং অপারেশন যা শুধু রেফারেন্স গন্য আচমকা যেমন উপলব্ধি করা যায়। এক্ষেত্রে আপনি লিনিয়ারিটি ধরে নিতে ব্যবহার করতে পারবেন না যে ভাগ করা হচ্ছে সেহেতু মানগুলি পরিবর্তন করা সর্বদা নিরাপদ। তবে আপনি নিশ্চিত করতে পারেন যে সমস্ত প্রোগ্রামের মধ্যে সমস্ত মেমরি বরাদ্দ স্পষ্ট, এবং স্তূপে কোনও চক্র নেই।δ একটি : ! একজন ! একজন ! একজন ε একটি : ! !একজনδএকজন:!একজন!একজন!একজনεএকজন:!একজনএকজন

লিনিয়ার ধরণের বেশিরভাগ ব্যবহারিক বাস্তবায়ন এই দুটি ব্যাখ্যার কোনওটিই ব্যবহার করে না । পরিবর্তে, উল্লেখগুলি অবাধে সদৃশ সত্তা হিসাবে দেখা হয় এবং আমরা রৈখিকভাবে যা ট্র্যাক করি তা বাস্তবে ক্ষমতা । দক্ষতা রানটাইম মান নয়; এগুলি নিখুঁতভাবে ধারণাগত সত্তা যা কোনও রেফারেন্স অ্যাক্সেসের অনুমতিটি প্রতিনিধিত্ব করার উদ্দেশ্যে তৈরি হয়। ধারণাটি হ'ল আপনি অনুমতি-পাসিং শৈলীতে প্রোগ্রাম করেন, এবং একই জিনিসটির অনেকগুলি উল্লেখ থাকলেও, রাজ্যের কোনও অংশে একটি পঠন বা পরিবর্তন কেবল তখনই ঘটতে পারে যখন আপনার এটির অ্যাক্সেস করার ক্ষমতাও রয়েছে। এবং ক্ষমতা যেহেতু লিনিয়ার তাই আপনি জানেন যে কেবলমাত্র আপনি এটি পরিবর্তন করতে পারবেন।

new:α.αc:ι.cap(c)ref(α,c)get:α,c:ι.cap(c)ref(α,c)αএকটিপি()R(α,)গুলিটি:α,:ιএকটিপি()R(α,)αএকটিপি()R(α,)পিY:α,:ιR(α,)R(α,)R(α,)

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


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

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