به نام خدا
برنامه نویسی شیئ گرا در زبانهای ماشین و اسمبلی بخش اول
علی الحساب به کلمات کلیدی زیر این پست نگاه کنید تا با مفهوم برنامه نویسی شیی گرا در زبانهای ماشین و اسمبلی آشنا شوید .
این کلمات کلیدی به مرور زمان در پستهای بعدی تکمیل می شوند .
کلماتی که با WM یا BM یا BN شروع شده اند همان رویدادهایی است که با کمک ماوس یا کی بورد در زبانهای سطح بالا بر روی فرم اصلی برنامه اجرا می کنیم .
تعداد این رویدادهای شئ گرا در کرنل سیستم عامل ویندوز بسیار بیشتر از رویدادهای شیی گرا در زبانهای سطح بالا می باشد .
دستکم ۲۵۶ رویداد در کرنل ویندوز داریم که با پیشوند WM شناخته می شوند و توسط ماوس ایجاد می گردند .
من تعدادی از رویدادهای کرنل ویندوز که به آنها Window Message نیز گفته می شود در اینجا لیست می کنم :
WM_CREATE
WM_CLOSE
WM_MOUSEMOVE
....
در واقع ما در کرنل سیستم عامل ویندوز بیش از ۲۵۶ پیام داریم که با پیشوند WM شناخته می شوند و باید حتما با حروف بزرگ و دقیقا به شکل بالا نوشته شوند .
هر کدام از این پیامها دقیقا با یک کد زبان ماشین مطابقت دارد یعنی مستقیما به زبان ماشین ترجمه می شوند .
پروسه ترجمه هر پیام به کد زبان ماشین ؛ توسط اسمبلر یعنی زبان اسمبلی انجام می شود .
نکته :
برنامه نویسی شیی گرا در زبانهای سطح پایین یعنی ماشین و اسمبلی با برنامه نویسی شیی گرا در زبانهای سطح بالا یعنی بیسیک ، پاسکال ، سی پلاس پلاس ؛ پایتون ؛ اسمال تاک و ... اندکی تفاوت دارد .
در زبانهای ماشین و اسمبلی حتی جزئی ترین و مخفی ترین اجزای سیستم عامل نیز ؛ شیی محسوب می شوند که می تواند شما را شگفت زده و غافلگیر نماید
لذا زبانهای ماشین و اسمبلی ؛ شیئی گرا ترین زبانهای برنامه نویسی جهان محسوب می شوند .
مثلا حتی چیزهای زیر در کرنل ویندوز به عنوان شیئی محسوب می شوند :
MB_OK
MB_OKCANCEL
MB_YESNO
شاید اعتراض کنید و بگویید : اینها که شیئ نیستند اینها ثابتهای سیستم عامل ویندوز هستند که هر کدامشان با یک کد زبان ماشین برابر هستند .
اما باید بدانید که در ویندوز تمام اجزا حتی ثابتها در حکم شیئ می باشند .
حتی دکمه های بزرگنمایی و کوچک نمایی پنجره اصلی نرم افزارهای ویندوز ؛ شیئ محسوب می شوند
حتی نوار عنوان بالای پنجره ها نیز یک شیئ محسوب می شود .
حتی منوبار و تولبار نیز شیئ محسوب می شوند
تمام دیالوگ ها نیز شیئ محسوب می شوند .
پنجره اصلی نرم افزارهای ویندوز نیز بعنوان شیئ مادر محسوب می شود و سایر اشیا بعنوان فرزندان ؛ از او ارث می برند .
مثلا منوبار و تولبار و تایتل بار - نوار عنوان بالای پنجره - فرزندان پنجره اصلی برنامه هستند و برخی خواص را از او ارث می برند .
توارث و ارث بری در ویندوز در تمام ارکان و ساختارها وجود دارد . حتی در پروسه های مقیم در حافظه RAM نیز برخی پروسه ها از یکدیگر یا از پروسه مادر ارث می برند .
به همین دلیل است که در ویندوز با مشکلی به نام وابستگی یا دپندنسی تودرتو که واقعا دیوانه کننده است و مثل اسپاگتی یک کلاف سردرگم و بی سر و ته است کمتر مواجه هستیم زیرا تمام پروسه های ویندوز از پروسه معروف Svchost.exe که در Task Manager دیده می شود ارث می برند و سیستم را ساده می کنند .
ما در ویندوز به ندرت با دپندنسی سروکار داریم .
لذا سیستم عملکرد ویندوز یک سیستم توارث ساده و منسجم است .
تمام پروسه های سیستم عامل ویندوز ؛ از فایل Svchost.exe یا پروسه میزبان برای سرویسهای ویندوز ؛ ارث می برند و کار ما را راحت کرده و زحمت ما را کم می کنند.
این یک شاهکار توارث و برنامه نویسی شیئ گرا در ویندوز محسوب می شود .
ویندوز یک سیستم عامل بسیار غنی و کامل و به شدت شیئ گرا می باشد .
در سیستم عامل ویندوز ؛ همه چیز ، شیئ است .
+
ادامه معرفی سایر انواع اشیای ویندوز :
آنهایی که با پیشوند BM یا BN شروع می شوند بر اثر فشرده شدن کلیدهای کی بورد ایجاد می گردند
BM مخفف BUTTOM MESSAGE می باشد
ID نیز یعنی پاسخ برنامه به رفتار کاربر . یعنی همان فرایند برگشتی که در زبانهای سطح بالا با آن آشنا هستیم .
زبانهای ماشین و اسمبلی از تمام رویدادها و اشیا و صفات و متدها و وراثت و سایر عناصر شیی گرایی بطور مستقیم و کامل استفاده می کنند و دست برنامه نویس را کاملا باز می گذارند .
نکته :
مباحث برنامه نویسی شیی گرا براساس مستندات معتبر خارجی ؛ تولید و منتشر خواهند شد .
سعی می شود - درصورت امکان - از زبانهای ماشین و اسمبلی بطور همزمان استفاده شود..
در غیر اینصورت فقط از زبان اسمبلی استفاده می شود .
بروزرسانی :
این پست فقط یک مقدمه بود .
ادامه مباحث برنامه نویسی شیئ گرا در زبانهای ماشین و اسمبلی را به پستهای بعدی موکول می کنم .
علی الحساب به جان ویندوز بیفتید و خودتان شخصا مواردی از شیئ گرایی و توارث را در ساختار و عملکرد و اجزای ویندوز پیدا کنید !
از پست بعدی سعی می کنم طبق خودآموزهای زبان اسمبلی ؛ برنامه نویسی شیئ گرا را به مرور زمان و به تدریج آموزش دهم . انشاا...
منتظر پستهای بعدی باشید ...
مطالب بعدی این وبلاگ را دنبال کنید و کپی برداری و بازنشر نمایید . با تشکر