আমার মন্তব্যগুলিকে আরও প্রসারিত করার জন্য, বইটির পাঠ্যটি অস্পষ্ট যা কোন বিষয়টি বিবেচনা করে না।
যেমনটি আমি মন্তব্য করেছি, সেই বইটি বলতে চেষ্টা করছে, "আসুন প্রতিটি লেখা অনুমানযোগ্য সি ++ ক্রিয়াকলাপ লিখতে অসীম বানর পেতে পারি cases এমন কিছু ঘটনা ঘটবে যেখানে আমরা যদি একটি পরিবর্তনশীল বাছাই করি যে (বানররা কিছু নির্দিষ্ট ক্রিয়া লিখেছিল) ব্যবহার করে, ফাংশনটি সেই পরিবর্তনশীলটি পরিবর্তন করবে কিনা তা আমরা কাজ করতে পারি না। "
অবশ্যই কোনও প্রদত্ত অ্যাপ্লিকেশনটিতে কিছু (এমনকি অনেক) ফাংশনের জন্য, এটি সংকলক দ্বারা নির্ধারণ করা যেতে পারে এবং খুব সহজেই। তবে সবার জন্য নয় (বা অগত্যা সর্বাধিক)।
এই ফাংশনটি এত সহজে বিশ্লেষণ করা যায়:
static int global;
void foo()
{
}
"foo" পরিষ্কারভাবে "গ্লোবাল" পরিবর্তন করে না। এটি কিছুতেই কোনও সংশোধন করে না এবং একটি সংকলক এটি খুব সহজেই কাজ করতে পারে।
এই ফাংশনটি এত বিশ্লেষণ করা যায় না:
static int global;
int foo()
{
if ((rand() % 100) > 50)
{
global = 1;
}
return 1;
যেহেতু "foo" এর ক্রিয়াগুলি এমন কোনও মানের উপর নির্ভর করে যা রানটাইমের সময় পরিবর্তিত হতে পারে, তাই এটি সংকলনের সময় স্পষ্টতই নির্ধারণ করা যায় না "গ্লোবাল" সংশোধন করবে কিনা তা ।
কম্পিউটার বিজ্ঞানীরা এটিকে তৈরি করার চেয়ে এই সম্পূর্ণ ধারণাটি বোঝার পক্ষে আরও সহজ। যদি রানটাইমের সময়ে জিনিসগুলির উপর ভিত্তি করে ফাংশনটি আলাদা কিছু করতে পারে, তবে এটি চালা না হওয়া পর্যন্ত এটি কী করবে তা আপনি কাজ করতে পারবেন না এবং প্রতিবার এটি চালিত হলে এটি কিছু আলাদা হতে পারে। এটি সম্ভাব্য অসম্ভব বা না হওয়া, এটি অবশ্যই অসম্ভব।