انجام پایان نامه

درخواست همکاری انجام پایان نامه  بانک مقالات رایگان انجام پایان نامه

سفارش پایان نامه

|

انجام پایان نامه ارشد

 پایان نامه 

پایان نامه‏ کامپیوتر

انجام پایان نامه‏ ارشد کامپیوتر

- Self :
از آنجایی که Self به عنوان یک تک فرایند UNIX و یا یک تک برنامه ی Macintosh اجرا می شود بنابراین به دو بخش تقسیم
می شود :
1-  (VM) virtual machine Self     2- Self world
اجرای ( VM ) برنامه های Self توسط اشیایی در Self world تعیین می شود و مجموعه ای از متد های اصلی و اولیه که در C++
نوشته شده اند را تهیه می کند که می توانند توسط متد های Self فراخوانی شوند تا اعمال پایه از قبیل اعمال حسابی اعداد صحیح ،
کپی کردن اشیا و اعمال مربوط به ورودی و خروجی ( I/O ) را انجام دهند .
Self world توزیع شده توسط VM کلکسیونی از اجرا های متفاوت اشیای Self به صورت traits و prototypes مانند همانند
سازی ویژگی ها و فرهنگ واژه ها . این اشیا می توانند برای برنامه های شخصی تغییر داده شوند و یا استفاده گردند .

The translation process - :
برنامه های Self به دستورالعمل های ماشین در 2 مرحله ترجمه می شوند . دستورالعمل های برنامه یا درون محیط برنامه نوشته می
شوند و یا از فایلی که به اشیای Self تجزیه شده خوانده می شود . بعضی از این اشیا ، اشیای داده ای هستند ( data objects ) و
بقیه متد ها هستند . متدها رفتار خاص خود را دارند که توسط bytecodes نمایش داده می شوند .
bytecodes دستورالعمل هایی هستند  برای هر پردازنده ی مجازی ساده ( Simple Virtual Processor ) که دستورالعمل هایی
مانند "Push receiver" یا "send the ‘x’ message" را می فهمند . علت بقای VM اینطور وانمود می شود که bytecodes ها
مستقیماً توسط کامپیوتر اجرا می شوند . برنامه نویسان می توانند اعماق Self world را برای سطح های bytecode کاوش کنند ،
اما نه بیشتر. این وانمود سازی آنان را مطمئن می سازد که رفتار برنامه های Self را تنها با نگاه به کد منبع برنامه می توان فهمید .
مرحله ی دوم از ترجمه ، کامپایل(compilation) واقعی bytecodes ها به دستورالعمل ماشین(machine code) است اینکه
چطور اجرای bytecodes انجام می شود و به طور کلی در سطح level Self  نامعلوم است بجز اثرات جانبی مانند سرعت اجرا و
حافظه ی استفاده شده .



در زمان کامپایل ابتدا یک پیغام عملاً فرستاده می شود ، بنابراین اجرای اولین برنامه کندتر از اجرای بعدی خواهد بود .









Language Reference - :
در این بخش به ساختار های نحوی و معنایی Self می پردازیم که تغییراتی پس از نسخه ی اولیه روی آن اعمال شده است و درکی
پایه از مفهوم شی گرایی فرض گردیده است .
نحو(Syntax ) توسط (Extended Backus-Naur Form (EBNF توصیف شده است . سمبل های نهایی درون Courier ( پیام
رسان) و بین تک کوتیشن '  ' ) ) ظاهر می شوند اما بایستی درون کد بدون کوتیشن ( '  ' ) نوشته شوند . سمبل های غیر نهایی به
صورت italic هستند . جدول زیر meta-symbols را توصیف می کند :










- Objects :
اشیا یک موجودیت بنیادی از Self هستند . هر موجودیت در برنامه های Self توسط یک یا چند شی نشان داده می شود ، حتی
کنترل توسط اشیا انجام می شود . بلوک ها بستار های Self هستند که برای اجرای ساختار کنترلی تعریف شده توسط کاربر استفاده
می شوند .
یک شی ترکیبی از دسته ای از Slots (می تواند خالی باشد) و بطور اختیاری کد Code است . یک Slot ، یک جفت name-value
است . Slot ها شامل شامل اشاره گر ها به سایر اشیا هستند . زمانی که یک Slot در طول یک message lookup پیدا می شود شی
موجود درون Slot ارزیابی می شود .
از آنجایی که هر چیزی درون Self به صورت شی است ، هیچ یک از اشیا هدفی مشابه با دیگر اشیا را ندارد . انواع معینی از اشیا
به تعداد کافی درتخصصی کردن نقش ها و وظیفه ها به بخش های فنی و نحوی کارا ، اتفاق می افتند . در این بخش دو نوع شی
معرفی شد که با عنوان data objects  یا (plain” objects“) و دو نوع شی همراه با کد با عنوان Ordinary methods و block
Methods مشخص می شوند .

- Syntax :
لغات شی درون پرانتز قرار می گیرند و شامل هر چیزی که شی را توصیف می کند ازقبیل لیستی ازSlot های محدود شده به (‘ | ’) ،
کدهایی که در موقع ارزیابی شی اجرا می شوند ، هستند برای مثال :
هر دو Slot و کد اختیاری هستند ، هر یک از ‘( | | )’  و  ‘( )’ مشخص کننده ی یک شی خالی هستند .
اشیای بلوکی ( Block objects ) مانند سایر اشیا نوشته می شوند با این تفاوت که به جای پرانتز از [ ] استفاده می شود برای مثال :

یک Slot list شامل یک سلسله توصیف کننده Slot descriptors است که با نقطه از هم جدا شده اند و نقطه ی پایان Slot list
اختیاری است همچنین یک Slot list می تواند خالی باشد .
کد یک شی نیز یک سلسله عبارت است که با نقطه ازهم مجزا شده اند، هر عبارت شامل یک سری ازmessage sends , literals
است .آخرین عبارت درون کدِ یک شی ممکن است با عملگر ‘^’ زود تر معرفی گردد .


- Data objects :
Data object ها اشیایی بدون کد هستند که می توانند دارای هر تعدادی از Slot ها باشند برای مثال شی زیر دارای دو Slot با نام
X,Y  است .     

یک شی داده ای Data objects زمانی که ارزیابی شود خودش را باز می گرداند .

-   Code:
کد تسلسلی از عبارات است . این عبارات به صورت صحیح ارزیابی می شوند و مقدار نتیجه دور انداخته می شود مگر اینکه این
مقدار تعیین کننده ی نتیجه ی ارزیابی نهایی کد باشد .
آرگومان های واقعیِ یک ارسال پیغام (message send) ، از چپ به راست قبل از اینکه پیغام ارسال شود ارزیابی می شوند به
عنوان مثال در عبارت زیر :
ابتدا 1 ارزیابی می شود سپس 5 * i  و پس از آن  2 * j  و بعد از آن نیز [|:k | k print] . نهایتاً پیغام to:By:Do: ارسال می شود .

- Methods :
Ordinary methods یا(simply “methods”)  متد های معمولی متد هایی هستند که درون سایر کد ها جاسازی نشده اند . یک
متد می تواند slot هایی به عنوان آرگومان داشته باشد (argument slots) و یا دارای Slot های محلی باشد .
 یک متد معمولی معمولاً یک Slot آرگومانِ پدرِ مجازی که Self نامیده می شود ، دارد . متد های معمولی در Self معادل با متدهای
Smalltalk هستند .
اگر یک Slot  شامل یک متد باشد مراحل زیر به هنگام ارزیابیSlot به عنوان نتیجه ی یک ارسال پیغام ، انجام می شود :
1-  شی متد همانند سازی می شود و یک شی فعالیت متد ( method activation object ) جدید شاملSlot ها یی برای آرگومان
های متد و محلی ایجاد می شود .
2- Slot پدرِ کپی شده (self parent slot) مقدار دهی اولیه به گیرنده ی پیغام می شود .
3- Slot های آرگومان کپی شده (argument slots) اگر وجود داشته باشند با مقادیر آرگومان های واقعی مقدار دهیِ اولیه می
شوند .
4- کد مربوط به متد درون فضای این شی فعالیت اجرا می شود .
برای مثال متد                                                                         را در نظر بگیرید :
این متد یک اسلات آرگومان دارد (Slot arg) و مربع این
آرگومان را به عنوان خروجی بر می گرداند .

.






انجام پایان نامه

انجام پایان نامه کامپیوتر، انجام پایان نامه ارشد کامپیوتر، انجام پایان نامه، پایان نامه

برای دیدن ادامه مطلب از لینک زیر استفاده نمایید

 

سفارش پایان نامه

نقشه