স্ট্যালিন সংকলক নির্মমভাবে অনুকূল করে, তবে কীভাবে?


14

জেএম সিসকিন্ডের গবেষণা বিবৃতিতে বলা হয়েছে:

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

ক্লোজার / ফাংশন কল বাস্তবায়নের জন্য আমি নিম্নলিখিত খুব আকর্ষণীয় কাগজটি সন্ধান করতে সক্ষম হয়েছি: ফ্লো-ডাইরেক্টেড লাইটওয়েট বন্ধের রূপান্তর । আমি অন্যান্য বিষয়ের কাগজপত্রগুলি সম্পর্কে জিজ্ঞাসা করতে লেখককে ইমেলও করেছি, যা ক্লোজার রূপান্তর কাগজে লেখা রয়েছে বলে উল্লেখ করা হয়েছে:

সিসকিন্ড, জেএম 2000 এ। ফ্লো-ডিরেক্টরেড লাইটওয়েট সিপিএস রূপান্তর। প্রস্তুতিতে।

সিসকিন্ড, জেএম 2000 বি। প্রবাহ-নির্দেশিত বহুবিশ্ব প্রস্তুতিতে।

সিসকিন্ড, জেএম 2000 সি। প্রবাহ-নির্দেশিত প্রতিনিধিত্ব নির্বাচন। প্রস্তুতিতে।

সিসকিন্ড, জেএম 2000 ডি। প্রবাহ-নির্দেশিত স্টোরেজ পরিচালনা। প্রস্তুতিতে

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

উত্তর:


11

মূলটি সম্ভবত এটি সম্পূর্ণ প্রোগ্রাম বিশ্লেষণ এবং পুরো প্রোগ্রামের অপ্টিমাইজেশন ব্যবহার করে। একটি প্রোগ্রাম কীভাবে আচরণ করে সে সম্পর্কে আপনি যত বেশি জানেন আপনি তত বেশি বিশেষজ্ঞ এবং ইনলাইন এবং পারফরম্যান্ট তৈরি করতে পারবেন।

স্ট্যান্ডার্ড এমএল এর জন্য এমএলটন সংকলক একই কাজ করে ( http://mlton.org/ )। এটি সম্পর্কে একটি উপস্থাপনা রয়েছে (কমপক্ষে): http://mlton.org/pages/References/attachments/060916-mlton.pdf

এর আগে কাজটি ক্রেগ চেম্বারস এবং তার গ্রুপ ওয়াশিংটন বিশ্ববিদ্যালয়ে করেছিলেন (উদাহরণস্বরূপ: http://www.cs.washington.edu/research/projects/cecil/www/pubs/jdean-thesis.html )। এটি সেলফ এবং পরবর্তী সময়ে সিসিল / ঘূর্ণি প্রসঙ্গে করা হয়েছিল।

স্কিম / লিস্প সম্প্রদায়টিতে সম্ভবত আরও কাজ রয়েছে। আপনি সম্ভবত গুগলিং "পুরো প্রোগ্রাম অপ্টিমাইজেশন" বিবেচনা করতে চান।

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