تاریخچه و ویژگی های زبان های برنامه نویسی C# و ++C

مروری بر تاریخچه و ویژگی­ های زبان ­های برنامه­ نویسی  #C و ++C

 

زبان برنامه نویسی ++C:

 

استراس‌تروپ کار بر روی زبان «C با کلاس» را در سال ۱۹۷۹ آغاز کرد. ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس‌تروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگی‌های مناسب برای ساخت برنامه‌های بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامه‌های بزرگ بسیار سطح پایین است. زمانی که استراس‌تروپ کار خود را در آزمایشگاه‌های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته UNIX با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگی‌های سیمولا گسترش داد.

 

استراس‌تروپ|Bjarne Stroustrup

 

C به این دلیل انتخاب شد که یک زبان عمومی، سریع، قابل حمل، و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبان‌های دیگری مانند ALGOL 68، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتدا ویژگی‌های کلاس، کلاس‌های مشتق شده، کنترل نوع قوی، توابع درون خطی، و آرگومان پیش‌فرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد. در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگی‌های دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامه‌نویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش ۲۰ از زبان ++C ارائه شد. ویژگی‌های جدیدی مانند ارث‌بری چندگانه، کلاس‌های انتزاعی، اعضای ایستای توابع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C» منتشر شد. این کار بنیان استانداردهای بعدی شد.

 

آخرین ویژگی‌های اضافه شده شامل موارد زیر بودند:

 

قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی. در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهم‌ترین ویژگی اضافه شده Standard Template Library بوده‌است.

 

اهداف به وجود اومدن ++C:

 

 

در کتاب «طراحی و تکامل ++C» استراس تروپ قوانین مورد استفاده در طراحی ++C را بیان می‌نماید. دانستن این قوانین به فهمیدن نحوه عملکرد ++C و چرایی آن کمک می‌کند. جزئیات بیشتر در کتاب قابل دسترسی است:

 

  • ++C طراحی شده ‌است تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.
  • ++C طراحی شده‌ است تا مستقیما و بصورت جامع از چندین شیوه برنامه‌نویسی (برنامه‌نویسی ساخت‌یافته،
  • برنامه‌نویسی شی ‌گرا، انتزاع داده، و برنامه‌نویسی جنریک) پشتیبانی کند.
  • ++C طراحی شده ‌است تا به برنامه‌نویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.
  • ++C طراحی شده ‌است تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.
  • ++C از بکار بردن ویژگی‌های خاص که مانع از عمومی شدن است خودداری می‌نماید.
  • ++C از ویژگی‌هایی که بکار برده نمی‌شوند استفاده نمی‌کند.
  • ++C طراحی شده ‌است تا بدون یک محیط پیچیده عمل نماید.

 

زبان برنامه نویسی #C:

 

آندرس هایلسبرگ | Andres hejlsberg

 

در سال ۱۹۹۹، شرکت سان اجازه استفاده از زبان برنامه نویسی جاوا را در اختیار مایکروسافت قرار داد تا در سیستم عامل خود از آن استفاده کند. جاوا در اصل به هیچ پلت فرم یا سیستم عاملی وابسته نبود، ولی مایکروسافت برخی از مفاد قرار داد را زیر پا گذاشت و قابلیت مستقل از سیستم عامل بودن جاوا را از آن برداشت. شرکت سان پرونده‌ای علیه مایکروسافت درست کرد و مایکروسافت مجبور شد تا زبان شی گرائی جدیدی با کامپایل جدید که به ++C شبیه بود را درست کند. در طول ساخت دات نت(.NET)، کلاس‌های کتابخانه‌ای با زبان و کامپایلر SMC نوشته شدند.

در سال ۱۹۹۹ آندرس هلزبرگ گروهی را برای طراحی زبانی جدید تشکیل داد که در آن زمان نامش Cool بود و همانند C بود با خواص شی گرایی. مایکروسافت در نظر داشت اسم این زبان را تا آخر Cool قرار دهد، ولی به دلیل مناسب نبودن برای اهداف تجاری این کار را نکرد. در ارائه و معرفی رسمی .NET در PDC در سال ۲۰۰۰ این زبان به C سی شارپ(C#) تغییر نام یافت و کتابخانه کلاس‌ها و runtime در ASP.NET به #C منتقل شدند.

مدیر و سرپرست طراحان در مایکروسافت آندرس هلزبرگ بود که تجربه قبلی او در طراحی Framework و زبان‌های برنامه سازی ++Borland, Delphi, Turbo Pascal, Visual C به آسانی در دستورالعمل‌های سی شارپ قابل رویت است و به همان خوبی در هسته CLR. سی شارپ دارای یک سیستم نوع یکپارچه‌است که به آن CTS می‌گویند. این بدان معناست که تمام انواع، شامل موارد اصلی مانند  Integerها، مشتق شده از System.Object هستند. به عنوان مثال، هر نوع یک متد به نام ToString( ) را به ارث می‌برد. بخاطر کارائی، انواع اولیه (و انواع مقداری) به طور داخلی فضایی برای آن­ها بر روی پشته در نظر گرفته می‌شود.

 

ویژگی‌های مهم سی شارپ:

 

  • شرط های بولین
  • زباله روبی خودکار
  • کتابخانه استاندارد
  • نسخه‌بندی اسمبلی‌ها
  • خصوصیت ها و رویدادها (Properties & events)
  • دلیگیت و مدیریت رویدادها (Delegates and Events Management)
  • استفاده آسان برای جنریک ( برای مقادیر با نوع داده متفاوت)
  • ایندکس‌ها
  • شرط‌های کامپایلری
  • برنامه نویسی ساده برای مالتی ترد( Multi Threads)
  • LINQ و Lambada
  • یکپارچه با ویندوز