খাঁটি ভাষায় আবর্জনা সংগ্রহ কতটা আলাদা?


26

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

বিশুদ্ধতার মুখে আবর্জনা সংগ্রহকারীরা কোন কৌশল এবং কৌশল ব্যবহার করেন যা তারা অন্যথায় না করে? কোন অশুদ্ধ ভাষার জিসিতে খুব ভাল কাজ করে যা খাঁটি প্রসঙ্গে নয়? খাঁটি ভাষাগুলি জিসিগুলির জন্য আর কোন নতুন সমস্যা তৈরি করে?



উত্তর:


13

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

এখানে আরো বিস্তারিত সঙ্গে একটি কাগজ


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

1

হাস্কেলের মতো খাঁটি ভাষায়, সমস্ত ডেটা অপরিবর্তনীয় এবং কোনও বিদ্যমান ডাটা স্ট্রাকচার কোনওভাবেই পরিবর্তন করা যায় না

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

বিশুদ্ধতার মুখে আবর্জনা সংগ্রহকারীরা কোন কৌশল এবং কৌশল ব্যবহার করেন যা তারা অন্যথায় না করে?

আমি কেবল ব্ল্যাক হোলগুলিই ভাবতে পারি । হাসেল গবেষণামূলক গবেষণাপত্রে জিসি পক্ষের আর কিছু নতুন দেখার কথা মনে নেই।

কোন অশুদ্ধ ভাষার জিসিতে খুব ভাল কাজ করে যা খাঁটি প্রসঙ্গে নয়?

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

অন্য জিসি অ্যালগরিদম যেমন চিহ্ন অঞ্চল হিসাবে অপরিষ্কার ভাষাগুলির প্রেক্ষাপটে অনেক বেশি কার্যকর কারণ তাদের খাঁটি ভাষার তুলনায় অনেক কম বরাদ্দের হার থাকতে পারে।

খাঁটি ভাষাগুলি জিসিগুলির জন্য আর কোন নতুন সমস্যা তৈরি করে?

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


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

অতিরিক্ত হিসাবে, খাঁটি ভাষার পক্ষে কঠোর হওয়া সম্পূর্ণভাবে সম্ভব - উদাহরণের জন্য ইদ্রিস দেখুন।
জ্যাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.