رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
معرفی زبان Objective-C
#1
آبجکتیو-سی (به انگلیسی: Objective-C) یک زبان شی‌گرا است که با اضافه کردن مفاهیم ارسال پیام از زبان اسمال‌تاک به زبان سی ایجاد شده‌. در حال حاضر استفادهٔ اصلی آن در محیط‌های Mac OS X و iPhone OS است.

برنامه‌هایی از این زبان که از کتابخانه‌های خاص این محیط‌ها استفاده نکرده باشند در همهٔ محیط‌هایی که کامپایلر جی‌سی‌سی (GCC) استفاده می‌شود، قابل استفاده‌اند.

در سال‌های اولیهٔ ۱۹۸۰ روش غالب در مهندسی نرم‌افزار روش برنامه‌سازی ساخت‌یافته بود. این روش بر مبنای اصل تقسیم مسئله به اجزای کوچک‌تر و حل تک‌تک آن‌ها بنا شده بود. با افزایش اندازهٔ مسئله‌ها این روش به تدریج کارایی خود را از دست داد.

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

Brad Cox و Tom Love زبان آبجکتیو-سی را در سال‌های اولیهٔ ۱۹۸۰ در کارخانه‌شان تولید کردند. Cox با الهام از زبان اسمال‌تالک با تغییر در کامپایلر زبان سی توانست امکانات شی‌گرایی را به آن اضافه کند. او نام این زبان را OOPC مخفف Object Oriented Programming in C گذاشت. بعدها با کمک Love محصول جدیدی به نام Productivity Products International یا PPI را ساخت که یک کامپایلر آبجکتیو-سی با کتابخانهٔ کلاس‌های قدرت‌مند بود.

در سال ۱۹۸۸ شرکت NeXT مالکیت آبجکتیو-سی را از StepStone خرید و کامپایلر و کتابخانه‌های خاص خودش را منتشر کرد. پروژهٔ GNU نیز ورژن خودش به نام GNUStep را از کامپایلر این زبان منتشر کرد. بعد از خریده شدن NeXT توسط Apple این شرکت ابزارهایی برای کار با این زبان را منتشر کرد.
زبان آبجکتیو-سی یک لایهٔ بسیار نازک روی زبان سی است. هر برنامه به زبان سی را می‌توان با کامپایلر آبجکتیو-سی کامپایل کرد. اکثر دستورات از زبان سی به ارث رسیده‌اند و تعدادی دستور برای ارسال پیغام به آن‌ها اضافه شده‌است.

زبان آبجکتیو-سی روش‌هایی برای انتقال پیام به زبان سی اضافه کرد. در این زبان از مدل اسمال‌تالک برای فرستادن پیام استفاده می‌شود. در این روش یک پیام برای یک شی فرستاده می‌شود و در صورتی که شی گیرنده متدی برای اجرای آن داشته باشد، آن را اجرا می‌کند. این روش برعکس روش سی++ است که گیرنده باید حتماً یک متد را پیاده‌سازی کرده باشد تا شی‌ای بتواند آن را صدا بزند.

تفاوت‌های اساسی با سی++
سی++ شامل کتابخانه‌ها و استانداردهایی برای برنامه‌سازی شی‌گرا، برنامه‌سازی عمومی است. در حالی که آبجکتیو-سی تنها یک لایه برای برنامه‌سازی شی‌گرا به زبان سی اضافه می‌کند.

آبجکتیو-سی امکانات reflection برای برنامه‌نویس به وجود می‌آورد که در زمان اجرا آدرس بعضی توابع معلوم می‌گردد حال آن‌که در سی++ امکانات reflection وجود ندارد. یعنی آبجکتیو-سی از سی++ امور بیشتری را در زمان اجرا تعیین می‌کند که باعث انعطاف بیشتر زبان می‌شود ولی سرعت اجرای آن را کاهش می‌دهد.

آبجکتیو-سی برخلاف اکثر زبان‌های شی‌گرا که هم‌زمان با آن ساخته شدند از ماشین مجازی برای اجرای برنامه استفاده نمی‌کند.

این زبان می‌تواند روی یک کامپایلر زبان سی پیاده‌سازی شود. به این ترتیب که اول به صورت پیش‌پردازشی کدهای خاص آبجکتیو-سی تبدیل به کدهای سی متناسب می‌شوند.

این زبان برعکس سی++ از دادن چند مفهوم به یک اپراتور (operator overloading) پشتیبانی نمی‌کند.

منبع
[عکس: <a href=www.Mojsazan.com.gif]" class="mycode_img" />
پاسخ
سپاس شده توسط Nikkhahan ، aliva ، javidabbaci


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Tongue برنامه‌نویسی امن با زبان جاوا – ارتقای حق دسترسی علی عرفانی 0 2,590 09-14-2013, 10:13 PM
آخرین ارسال: علی عرفانی
Tongue برنامه‌نویسی امن با زبان جاوا – انكار سرویس علی عرفانی 0 2,593 09-14-2013, 10:07 PM
آخرین ارسال: علی عرفانی
Tongue برنامه‌نویسی امن با زبان جاوا – نشت قابلیت ها علی عرفانی 0 2,658 09-14-2013, 10:01 PM
آخرین ارسال: علی عرفانی
Tongue برنامه‌نویسی امن با زبان جاوا – نشت اطلاعات حساس علی عرفانی 0 2,593 09-08-2013, 02:19 PM
آخرین ارسال: علی عرفانی
Tongue برنامه‌نویسی امن با زبان جاوا - اعتبارسنجی ورودی و پاكسازی داده‌ها علی عرفانی 0 2,532 09-02-2013, 02:11 AM
آخرین ارسال: علی عرفانی
Tongue برنامه‌ نویسی امن با زبان جاوا - آشنایی علی عرفانی 0 2,693 08-29-2013, 04:27 PM
آخرین ارسال: علی عرفانی
  معرفی NetBeans مهرداد عباسی 0 3,266 12-31-2011, 09:55 AM
آخرین ارسال: مهرداد عباسی
  پیاده سازی برنامه client و server با زبان C آیناز محمدی 1 5,313 12-22-2010, 11:31 PM
آخرین ارسال: مهرداد عباسی
  زبان‌های دستوری spooggie 2 6,254 04-27-2010, 10:53 PM
آخرین ارسال: spooggie
  زبان‌های اعلانی spooggie 0 3,513 04-27-2010, 04:34 PM
آخرین ارسال: spooggie

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان