چرا 15 بیت؟اندازه اون یک کلمه منهای یک بیت است. در معماریهای مختلف اندازه کلمه و ... فرق می کنه. شما هیچ وقت نمی تونید اندازه ثابت برای متغییرها در نظر بگیرید.خوب اگر آقای دنیس ریچی این نوع داده ای رو به زبان C اضافه میکرد باید به ازای هر متغیر نوع بولین 15 بیت هدر میداد
مورد دیگه اینه که از اونجا کمبودش حس می شد، در زبان C++ اضافه شد. ( از این موردها خیلی زیاده.). من اطلاعات دقیقی در مورد C جدید ندارم اما فکر کنم اونم اضافه کنه این رو چون بالاخره شما این رو نیاز دارید. نباشه هم مجبورید از مواردی همچون char استفاده کنید.
یه مورد دیگه: مصرف شدن حافظه تاثیر مجهولی روی کارایی داره. مثلا یه مبحث به اسم packing هست که باعث میشه برعکس سرعت کمتر بشه و حافظه هم کمتر مصرف شه. مثلا بصورت اتوماتیک اکثر کامپایلرهای زبان C/C++ اندازه متغییرها رو در حد کلمه نگهداری می کنن که سرعت افزایش پیدا کنه. مثلا برای char، چهار بایت اشغال میشه.
کاملا اشتباهه، کاملا! کی این رو گفته؟! دلیلش چیه؟! با تعریف شما آدرس فرد نخواهیم داشت. (یعنی نصف حافظه هر سیستم روی هواست).زیرا آدرس شروع هر متغیر از خانه ای زوج شروع میشه
اصلا این مبحث تنها به کاربرد زبان ربط داره در کاربردهای مختلف فرق میکنه. نمی دونم چه ربطی داشت؟! بگذریم از اینکه روی سرعت تاثیر داره، اما خب برای برخی از کاربردها تنها گزینه اینه.مسئله بعدی اینه که در تعریف متغیر ها میخواهیم انواع داده ای ما strong typed باشند یا weak typed اگر Strong Typed باشد خوب تکلیف معلومه کلیه تعاریف در زمان کامپایل تمام خواهند شد ولی اگر بخواهیم متغیر ها را weak typed تعریف کنیم باید زبان قابلیت تحلیل در زمان اجرا را داشته باشد و این خودش به معنای هزینه است.
نه تنها متغییرهای بولی، بلکه خیلی از موارد دیگه با گذشت زمان کمبودشون حس شد و اضافه شدن. اینهمه ویرایشهای مختلف زبان های مثل C++ برای همین بود.مثلا اینکه آیا به صرفه است که من نوع داده بولین در زبان داشته باشم یا نه ؟
این تعریف هم کاملا اشتباه هست. من می تونم کدهایی رو مثال بزنم که کم هستن و سرعت اجرای کم دارن و برعکس اون مثالهایی بزنم که سرعت کد با زیاد شدنش بیشتر شده (برای یک الگوریتم ثابت). ببینید شما حتی شرایط خالی شدن پایپ لاین و کش و ... رو هم در نظر نگیرید بازهم نمی تونید بگید چون کد x و 10 دستور کمتر داره (یا اصلا یک میلیون دستور ) سرعتش بیشتر از y هست. حتی هر دو برنامه خطی هم باشن باز معیاری به اسم CPI وجود داره.تعریف ما از سرعت اجرا روی میزان کد تولید شده زبان ماشین میباشد پس لحاظ کردن موارد کنترلی روی سرعت اجرا اثر گذار خواهد بود.
کلا تعداد دستور کم، نمی دونم تعداد نوع متغییر کم، حافظه کم و ... همه و همه خیلی کلاسیک هستن و چون الان توی دانشگاه ها و کلاسهای ما مطرح هستن برای اینه که ما خیلی عقب افتاده هستیم. من بارها گفتم برای آینده روشن ما باید اول از همه اساتید بی سواد رو اخراج کنیم.