++C
++C یک زبان برنامه نویسی همه منظوره و سطح بالا است. ++C یک زبان چندرگه است که از برنامه نویسی رویهای، تجرید دادهها و برنامه نویسی شئ گرا پشتیبانی میکند. ++C به همراه جد خود C از پرطرفدارترین زبانهای برنامه نویسی تجاری هستند.
زبان برنامهنویسی ++C یک زبان برنامهنویسی کامپیوتری سطح بالا و عمومی (با کاربرد های متنوع) می باشد. این زبان از تمام روش های مرسوم برنامه نویسی از قبیل برنامهنویسی شیگرا، برنامه نویسی ساخت یافته و برنامه نویسی پایه پشتیبانی می کند.
تاریخچه: زبان ++C در سال ۱۹۸۳ میلادی در آزمایشگاه های Bel (Bell Labs) توسط Bjarne Stroustrup و بر مبنای زبان سی و برای بهبود C، با افزودن امکانات برنامه نویسی شی گرا ساخته شد.در آن زمان نام ++C ,'سی با کلاسها`(c with classes) بود.این زبان در سال 1998 توسط موسسه ANSI استاندارد شد. این زبان از حوالی سال ۱۹۹۰ میلادی یکی از پرکاربردترین زبانهای برنامه نویسی به شمار می رود که برای برنامه نویسی سیستمی و برنامه نویسی ویژوال (بر مبنای GUI) در محیط های مختلف از قبیل ویندوز و لینوکس به صورت وسیع به کار می رود.
ساختار برنامه ها: ساختار برنامه ها در این زبان بدین صورت است که همانند زبان سی، هر برنامه بایستی یک تابع اصلی (main) به عنوان بدنه برنامه داشته باشد. هر برنامه معمولا از تعداد زیادی فایل تشکیل می شود که به هم الحاق می گردند (با دستور include) و به این فایل های الحاقی سرآیند (Header) میگوییم. فایل های الحاقی حاوی کد ها یا نسخه های اجرایی کلاس ها (مجموعه متغیر ها و توابع) می باشند که در بدنه اصلی برنامه از آنها استفاده می شود. معمولاً هر کلاس (که تعریف یک نوع داده ای با متد های مربوط به آن است) را در یک سرآیند مینویسند. هر سرآیند که معمولا تنها تعاریف (معرفی) کلاس را در خود دارد به همراه فایل های پیاده سازی به زبان ++C یا پیاده سازی های کامپایل شده (به صورت فایل اشیا مانند dll یا so یا ... ) می تواند به کار برده شود. به مجموعه های یکپارچه ای از کلاس های پیاده سازی شده (به صورت فایل های سرآیند با پیاده سازی های کد یا اشیای زبان ماشین) که برای برنامه نویسی به کار می روند، یک کتابخانه ++C گفته می شود و قدرت اصلی این زبان در امکان به کارگیری کتابخانه های آماده می باشد. کتابخانه های بزرگ ++C مانند STL، MFC، QT و ... مجموعه قدرتمندی برای تولید برنامه در این زبان ایجاد کرده اند.
جاوا
تاریخچه: زبان برنامه نویسی جاوا در اوایل دهه 1990 در شرکت سان میکرو سیستم طراحی شد. جاوا یک زبان برنامه نویسی شیء گرا است که هم برای نوشتن برنامه های کاربردی و هم برای نوشتن برنامه های محاوره ای در اینترنت به کار می رود.
زبان B منجر به ظهور زبان C و Cزمینه پیدایش C++ شد و در نهایت زبان جاوا متولد شد . درک زبان جاوا مستلزم : درک زمینه های لازم برای ایجاد جاوا ، نیروهایی که این زبان را شکل داده اند و مشخصاتی است که این زبان از اسلاف خود به ارث برده است . نظیر سایر زبانهای برنامه نویسی موفق ، جاوا نیز عناصر بارث برده از اسلاف خود را با ایده های ابتکاری که ناشی از محیط منحصر بفرد این زبان بوده درهم آمیخته است .
تکامل جاوا
جاوا هم مانند اکثر اختراعات مهم حاصل تلاش گروهی دانشمند پیشتاز است. اما نکته جالب درباره جاوا آن است که جاوا از ویرانه¬های یک پروژه شکست¬خورده سربرآورد. اگر پروژه Green که شرکت سان در سال 1991 آن را شروع کرد به موفقیت می¬انجامید امروز نه سان دیگر یک شرکت کامپیوتری می¬بود و نه جاوا تولید می¬شد.
در سال 1991 ، شرکت سان میکروسیستمز در آغاز راه تبدیل شدن به بزرگترین تولید¬کننده ایستگاههای کاری یونیکس بود و در طول فقط 5 سال درآمدش را از 210 میلیون دلار به 5/2 میلیارد دلار رسانده بود و بنظر می¬رسد هیچ چیز نمی¬تواند جلودار آن باشد. عامل عمده موفقیت سان کارهای پیشتازانه¬اش در ایجاد شبکه¬های باز بود و در این زمینه هیچ-کس به پای آن نمی¬رسید.
مدیران سان به این فکر افتادند تا کاری کنند که این رشد برای مدتی طولانی ادامه یابد. یکی از زمینه¬های موردعلاقه سان بازار و لوازم الکترونیکی بود، پروژه گرین بوجود آمد تا برای این بازار نرم¬افزاری پیشرفته خلق کند. مهندسان سان توجه خود را به میکروپروسسورهایی معطوف کردند که دارای قابلیت استفاده در اینگونه سیستمها باشند. اگر پروژه گرین می-خواست موفق باشد باید کاری می¬کرد تا سیستم مزبور بتواند به راحتی به بسترهای سخت افزاری مختلف منتقل شود. برای این منظور ابتدا از کامپایلر C++ استفاده شد ولی به زودی نارسایی¬های C++ در این زمینه خود را نشان دادند. مهندسان سان خیلی سریع دریافتند که برای ادامه کار باید چیزی جدید و قوی خلق کنند. در همین زمان بود که James Gosling کار بر روی زبان جدید Oak را شروع کرد. تقدیر آن بود که این زبان جاوا نامیده شود، چون اداره ثبت نامهای تجاری نام Oak را ردکرده بود.
به تدریج مهندسین یک دستگاه شبه PDA (Personal Digital Assistant) ساختند که در آن از سیستم عامل، زبان برنامه¬نویسی و واسط کاربر جاوا استفاده شده بود و با وجود ابتدایی بودن توانست توجه مدیران سان را به خود جلب کند. بعدها گروهی که در پروژه گرین کار کرده بودند شرکت Java Soft را بنیان نهادند.
متاسفانه بخت با پروژه گرین یار نبود و بعد از چند شکست متوالی، سان آن را کنار گذاشت. در همین زمان بود که عده¬ای از محققان NCSA شرکت نت اسکیپ را تاسیس کردند و این اتفاقات با آتشی که به سرعت دنیا را درمی¬نوردید و WWW نام داشت همزمان شد. بنابراین اتفاقی نبود که مهندسان پروژه گرین به سمت اینترنت و وب به عنوان بستر پروژه سان جلب شوند. چهار سال بعد پروژه گرین به بار نشست و جاوا تبدیل به داغترین موضوع اینترنت شد. همه، از برنامه¬نویسان و طراحان صفحات وب گرفته تا کاربران اینترنت می-خواهند از جاوا استفاده کنند.
سان بلافاصله برای جاوا یک کاوشگر هم تولید کرد. این اولین کاوشگری بود که می¬توانست اپلت¬های جاوا را اجرا کند و نام آن هم Hot Java بود.
ویژگیهای زبان جاوا
جاوا ویژگیهای متعددی دارد که آن را منحصربفرد کرده است. جاوا هم کامپایلر دارد و هم اینترپرتر. کامپایلر برنامه¬ای است که متن برنامه را گرفته و در پایان یک فایل exe تولید می-کند. بعد از کامپایل شدن یک برنامه، دیگر به وجود کامپایلر نیازی نیست و می¬توان برنامه exe را روی هر کامپیوتر سازگاری اجرا کرد. اما اینترپرتر هیچ برنامه exeای تولید نمی¬کند و برنامه را خط به خط اجرا می¬کند. برای اجرای برنامه حتما باید اینترپرتر هم روی کامپیوتر موردنظر موجود باشد. هر کامپایلر فقط برای یک سیستم خاص(مانند اینتل، اپل یا آلفا) می-تواند کد اجرایی تولید کند. اما کامپایلر جاوا کد اجرایی تولید نمی¬کند و در عوض یک فایل بینابینی می¬سازد که byte code نام دارد. byte code چیزی شبیه زبان اسمبلی است اما این زبان مختص هیچ پروسسور خاصی نیست بلکه زبان اسمبلی یک ماشین ویژه به نام ماشین مجازی جاوا (Java Virtual Machine) است. در هنگام اجرای چنین برنامه¬ای، اینترپرتر زمان اجرای جاوا (Java Runtime Interpreter) که روی ماشین مجازی جاوا اجرا می¬شود، دستورات فایل بایت¬کد را به دستورات قابل فهم برای پروسسوری که روی آن اجرا می¬شود تبدیل خواهد کرد. در شکل زیر این فرآیند نشان داده شده است:
برنامه¬های کاربردی جاوا
اشیاء جاوا
ماشین مجازی جاوا
مکینتاش ویندوز یا OS2 یونیکس
سیستم عامل
یکی از بزرگترین ادعاهای جاوا، آزاد بودن از بستر سخت¬افزاری است. اما این یعنی چه؟ اگر جاوا بخواهد در اینترنت موفق باشد برنامه¬های آن باید بتوانند بدون هیچ اشکالی روی تمام کامپیوترهای متصل به اینترنت اجرا شوند. اما چگونه چنین چیزی ممکن است. ایده اولیه ساده است: برنامه¬ها برای یک ماشین¬مجازی جاوا کامپایل شوند و این ماشین مجازی روی تمامی کامپیوترهای متصل به اینترنت نصب شود. این دقیقا همان روشی است که جاوا در پیش گرفته است.
با آنکه C و C++ زبانهای بسیار قدرتمندی هستند اما اشکالاتی ذاتی دارند. عمده¬ترین این اشکالات در مدیریت حافظه و اشاره¬گرهای C/C++ است. با آنکه جاوا به دلیل محبوبیت فوق¬العاده C++ ظاهری شبیه به آن دارد ولی در جاوا مدیریت حافظه بطور خودکار انجام می¬شود و اشاره¬گر هم اساسا در جاوا وجود ندارد. جاوا در زمینه بهینه¬کردن استفاده از حافظه بسیار قوی است. یکی از ویژگیهای جاوا پاکسازی خودکار حافظه از چیزهای بی-مصرف است. (این برنامه با نام آشغال جمع¬کن Garbage Collection شناخته می¬شود)
شی¬گرایی در جاوا به غایت خود رسیده است. جاوا در استفاده از اشیا بسیار مقید است. در C++ شما می¬توانید از اشیا به موازات برنامه¬نویسی به سبک قدیم استفاده کنید و اکثرا در پایان کار چنان وضعی بوجود می¬آید که مدیریت آن نه با روشهای برنامه¬نویسی شی¬گرا امکان دارد نه با روشهای قدیمی. جاوا دیگر به شما اجازه نمی¬دهد تا خود را درچنین مخمصه¬ای گرفتار کنید.