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