مشاهده پست های بی پاسخ | مشاهده موضوعهای فعال تاریخ امروز جمعه 17 نوامبر, 2017 10:52 pm



پاسخ به موضوع  [ 5 پست ] 
 از حیات سلولی تا شی گرایی 
نویسنده پیام
آواتار کاربر

عضو: یکشنبه 16 مارس, 2008 6:17 pm
پست ها: 81
پست از حیات سلولی تا شی گرایی
آشنایی با چگونگی پیدایش و بلوغ شی گرایی خالی از لطف نیست.
دیدگاه عمیق و اصیلی که پیوندی معنایی میان حیات سلولی و برنامه نویسی رایانه ای بوجود آورد.
در اوایل دهه ۱۹۷۰میلادی آلن کی (Alan Kay) بدنبال راهی برای ساده سازی برنامه نویسی بود که موفق به ابدا شی گرایی گردید. تاثیر کشف او اثر عمیقی بر دانش برنامه سازی گذاشت، بطوری که از اوایل دهه ۱۹۹۰ شی گرایی به عنوان مهمرین بستر برنامه سازی درآمد. وی از پیدایش شی گرایی چنین یاد می کند: “آنچه در ذهنم جرقه زد، مشابهت عمل در سلولهای زیستی بود.”

آنچه در سلولهای زیستی مورد توجه آلن کی قرار گرفت، عبارت است از:

۱- هر سلول نمونه ای از اصل است که خصوصیاتی منطبق با آنچه اصل (ژنتیک سلول) ترسیم می کند، دارد. همچنین هر سلول یک سری رفتارهای پایه دارد که از اصل خود می گیرد.
۲- سلولهای مستقلند و از طریق پیامهای شیمیایی که از پوسته یکی خارج و به پوسته دیگری وارد می شود، با یکدیگر ارتباط برقرار می سازند.
۳- سلولهای می توانند از یکدیگر متمایز شوند.

مورد اول، به کلاس و نمونه اشاره دارد. مورد دوم به ارسال پیام (messaging) هنگام فراخوانی رفتارها اشاره دارد. مورد سوم به متمایز بودن اشیا از یکدیگر توسط شناسه ها (Identifier) اشاره می کند.


سه شنبه 08 آوریل, 2008 2:45 pm
مشخصات شخصی
آواتار کاربر

عضو: یکشنبه 16 مارس, 2008 6:17 pm
پست ها: 81
پست Re: از حیات سلولی تا شی گرایی
در تابستان ۱۹۷۱ آلن کی برای پیاده سازی اولین زبان برمامه نویسی کامپیوتری شی گرا کار بر روی زبان جدیدی بنام اسمال تاک (Small Talk) را آغاز کرد. او می گوید : “این اسم آنقدر بی خاصیت و کم خطر بود که اگر پیشرفتی هم بدست نمی آمد، هیچکس متعجب نمی شد.”

اسمال تاک همانند سلولهای زیستی عمل می کرد. سلولهای مستقل از طریق ارسال پیام با یکدیگر ارتباط برقرار می کردند. هر پیام شامل داده، نشانی فرستنده، نشانی گیرنده و عملی که گیرنده می بایست بر روی داده انجام می داد، بود. آلن کی این سازوکار ساده را در سراسر زبان اعمال کرد. وی در ساده سازی تعریف زبان تا بدانجا پیش رفت که تعریف کامل زبان اسمال تاک را در یک صفحه جا داد. دان اینگالس (Dan Ingalls) زبان را ظرف چند روز پیاده سازی و اجرایی کرد.

دیدگاه آلن کی طراحی مدلی هماهنگ با مدل زیست سلولی که در آن سلولها در محیطی معین در پاسخ به پیامهای شیمیایی خاص، پروتئینهای خاصی را تولید می کنند بود. سلولهای گیرنده ممکن است پیامهای شیمیایی جدیدی برای دیگر سلولها ارسال نیز کنند. تعامل سلولها با یکدیگر در نهایت هدف حیاتی آنها را بر آورده می سازد. محیط امنی که حیات سلولی را میسر می سازد خود ساختاری سلولی دارد و با معماری Enterprise Java Beans که بعدها Sun Micro Systems معرفی نمود، شباهت دارد. این محیط ها امروزه بنام میان افزار ( Middleware ) شناخته می شوند.


سه شنبه 08 آوریل, 2008 2:47 pm
مشخصات شخصی
آواتار کاربر

عضو: یکشنبه 16 مارس, 2008 6:17 pm
پست ها: 81
پست Re: از حیات سلولی تا شی گرایی
اصول اولیه ای که آلن کی برای یک زبان کاملا شی گرا (Pure Object Oriented) تبیین کرد، همچنان پابرجاست. وی ۵ اصل زیر را برای شی گرایی یک زبان تعریف می کند.

۱- هر چیزی یک شی است.
۲- یک برنامه از مجموعه ای اشیا تشکیل شده است که توسط ارسال پیام، به یکدیگر می گویند که چه باید انجام دهند.
۳- هر شی حافظه ای را به خود تخصیص می دهد که از اشبا دیگر ساخته شده است.
۴- هر شی نمونه ای از یک نوع (Class) است.
۵- تمامی اشیا نمونه از یک نوع، می توانند پیامهای مشابهی دریافت کنند

بوش (Grady Booch) در این باره به ایجاز می گوید. “یک شی، دارای وضعیت (State)، رفتار و شناسه است.”

از آنجا که تمامی ارتباط از طریق پیامهاست، می توان یک شی را از درون محیط خود خارج کرد و در درون محیطی دیگر قرار داد، به شرطی که پیامهایی که دریافت می کند و پاسخهایی که متقابلا تولید می کند برای محیط جدید نیز مناسب باشد.

این بدان معناست که اشیا نرم افزاری می توانند در محیطهایی که طراح آنها تصورش را نمی کرده است، مورد استفاده مجدد قرار گیرند. هر برنامه نویس دیگر ممکن است از تمامی یا برخی رفتارهای شی از پیش تعریف شده استفاده کند. وی می تواند رفتارهایی را به رفتارهای شی قبلی افزوده و یا برخی را بازنویسی کند.

شی گرایی امکان تمرکز بر دنیای مسئله و شبیه سازی دقیق آن با اشیا نظیرنرم افزاری را فراهم ساخته است. هر شی مانند یک کامپیوتر کوچک دارای حالتی (state) در لحظه معین است و می تواند بکمک رفتارهای خود کارهایی را انجام دهد. وظیفه آنالیست شناسایی اشیا و پیامهایی که در دنیای مسئله رد و بدل می گردد و وظیفه طراح انتخاب یا طراحی اشیا مناسب برای پاسخگویی مناسب به نیازهای مسئله است.

شی گرایی با معرفی دیدگاهی منطبق با آنچه در در دنیای واقعی می گذرد، راهکاری قدرتمند در توسعه نرم افزار بوجود آورد.


سه شنبه 08 آوریل, 2008 2:48 pm
مشخصات شخصی
آواتار کاربر

عضو: یکشنبه 16 مارس, 2008 6:17 pm
پست ها: 81
پست Re: از حیات سلولی تا شی گرایی
پس از گذشت سالها، هنوز اسمال تاک شی گرا ترین زبان موجود است.
مهمترین زبانهای برنامه نویسی همچون ++C و جاوا ایده های بنیادی خود را از اسمال تاک برگرفته اند، ولی در عمل با ترکیب شی گرایی با دیگر تکنیک های مورد نیاز، به زبانهایی ترکیبی (Hybrid) و یا کم انعطاف تر از اسمال تاک بدل شده اند.

چند سال پیش شرکت تگزاس اینسترومنت باید بین استفاده از اسمال تاک یا ++C (که امروزه محبوب تر است) در یکی از پروژه هایش تصمیم می گرفت. تیم اسمال تاک در آن شرکت پیشنهاد جالبی مطرح کرد و آن این بود که سه نفر از آنها با هرچند نفر برنامه نویس ++C در مسابقه ای شرکت کنند. صبح روز مسابقه مسئله ای به هر دوتیم داده شود و ظهر، یکی از مشخصات (Specifications) مسئله تغییر کند.
در پایان روز هر تیمی که برنامه کاملتری داشت برنده اعلام شود. این پیشنهاد پذیرفته شد و تیم اسمال تاک به آسانی پیروز شد. اسمال تاک هنوز به خاطر انعطاف پذیری فوق العاده اش همچنان مورد تحسین است.


سه شنبه 08 آوریل, 2008 2:52 pm
مشخصات شخصی
آواتار کاربر

عضو: یکشنبه 16 مارس, 2008 6:17 pm
پست ها: 81
پست Re: از حیات سلولی تا شی گرایی
آلن کی برای دیدگاه نوین خود به برنامه سازی، واژه شی گرایی را برگزید. واژه شی گرایی کمی به اصالت دیدگاه وی و معنای آن لطمه زد. چراکه از آن پس اشیا دنیای واقعی به جای سلولهای زیستی در یاخته های زنده مرجع تشابه با اشیا در شی گرایی قرار گرفتند.

شی گرایی به پیشرفت و تکامل سیستمهای خبره و هوش مصنوعی سرعت بخشید چرا که از ابتدا بر اساس الگوی حیات سلولی بنا شده بود. در یک برنامه شی گرا، یک نمونه از کلاسی معین، متولد (Instantiate) می شود. در طول حیاط خود از طریق شناسایی الگوهای فراخوانی رفتارهای خود توسط محیط پرامون و پاسخهایی که از دیگر اشیا دریافت می کند، حالت (State) خود را بهینه می نماید، (در صورتی که برنامه نویس تصمیم به پیاده سازی یادگیری ماشینی هرچند بسیار ساده در کلاس شی مورد نظر، داشته باشد،) چیزهایی را از پیرامون درمی یابد و رفتارهای بالغ تری از خود نشان می دهد، و نهایتا در زمان مناسب می میرد. به عنوان یک مثال بسیار ابتدایی می توان به کاشه (Cache) اشاره کرد که در طول زمان با توجه به الگوهای دستیابی به داده ها، به تولید اشیا مناسب می پردازد، و بارگذاری آنها در حافظه می پردازد و نهایتا نمونه های تولید شده را از حافظه خارج می نماید.

در اینجا اشاره به جمله ای از دانیل هیلیس خالی از لطف نیست: “اینک برای من، این واقعیت که حیات دارای خاصیت باز تولید و تکامل است از اهمیت بسیار بیشتری برخوردار است تا این که از مولکولهای کربن ساخته شده باشد. ما هرگز پیش از این بین تکامل و کربنی بودن حیات تمایز قایل نمی شدیم. چرا که نمونه دیگری نداشتیم که تکامل یابد، تولید مثل کند و از کربن ساخته نشده باشد. از نظر من مهم نیست ما این پدیده را حیات بنامیم یا نه. هر چه هست از برخی جهات با موجودات زنده کربنی مشترک و از برخی جهات متفاوت است.”

سرمایه گذار پروژه اسمال تاک شرکت زیراکس بود. زیراکس که یکی از نوآورترین و خلاق ترین کمپانی ها در زمینه تولید دانش است هم اکنون اسمال تاک را به یکی از زیر مجموعه های خود بنام پارک پلیس سپرده است.


سه شنبه 08 آوریل, 2008 2:53 pm
مشخصات شخصی
مشاهده پست های قبلی:  نمایش بر اساس  
پاسخ به موضوع   [ 5 پست ] 

افراد آنلاین

کاربران حاضر در این تالار: Google [Bot] و 4 مهمان


شما نمی توانید در این تالار موضوع جدید باز کنید
شما نمی توانید در این تالار به موضوع ها پاسخ دهید
شما نمی توانید در این تالار پست های خود را ویرایش کنید
شما نمی توانید در این تالار پست های خود را حذف کنید
شما نمی توانید در این تالار ضمیمه ارسال کنید

جستجو برای:
پرش به:  
cron
استفاده و نقل از مباحث سایت، فقط با ذکر منبع و لینک سایت میکرورایانه مجاز است.
Copyright © 2006 - 2010 MicroRayaneh - Powered by phpBB © phpBB Group
Valid CSS2 Valid XHTML 1.0
طراحی سایت : میکرو رایانه