خاطرات من

  • ۰
  • ۰



آموزش سی شارپ

آشنائی با زبان پروگرام نویسی #C

مایکروسافت در مصاف با جاوا، بدنبال ارائه زبان کامل بود که سایه جاوا را در میادین برنامـه نویسی کم رنگ تر نماید. شاید بهمین دلیل باشد که #C را ایجاد کرد. شباهت های بین دو زبان بسیار زیاد چشم گیر است. مایکروسافت در رابطه با میزان استفاده و گسترش زبان فوق بسیار زیاد خوشبین بوده و امیدوار است بسرعت زبان فوق گستردگی و مقبولیتی به مراتب بیشتر از جاوا را نزد پیاده کنندگان نرم افزار پیدا نماید .

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

بیان شدن بعنوان استاندارد صنعتی
انجمن تولیدکنندگان رایانه اروپا (ECMA) زبان #C را در سوم اکتبر سال 2001 بعنوان استاندارد پذیرفته (ECMA-334) بدنبال آن تلاش های وسیع ی جهت کسب گواهی ISO نیز انجام شده است. زبان فوق در ابتدا توسط کمپانی مایکروسافت و بعنوان بخشی از دات نت پیاده سازی بلافاصله بعد از آن توسط کمپانی های اینتل، هیولیت پاکارد مایکروسافت مشترکا، جهت استاندارسازی پیشنهاد گردید.

زبان #C بگونه ای طراحی شده است که نه فقط وابستگی به Platform ویِژگزینشه را ندارد، بلکه در اکثرا موارد وابستگی RunTime نیز ندارد. کامپایلر #C می تواند بر روی هر نوع معماری سخت افزاری طراحی و اجرا گردد. در گاهی از نسخه های اولیه کامپایلر زبان فوق که توسط برخی از شرکت های جانبی ارائه شده است، کدهای #C را به بایت کدهای جاوا کمپایل می کنند. یکی از چنین کامپایلرهائی را می توان در وب سایت Halcyonsoft.com مشاهده نمود. پس کدهای #C براحتی قابلیت حمل بر روی محیط های مفرق را دارا خواهند بود.

معین ات تعریف شده زبان #C بابقیه استاندارهای تعریف شده ECMA مثل (ECMA-335) CLI (Common Language Infrastructure) ببهتر ی مطابقت می نمایند. CLI قلب و روح دات نت و CLR(Common Language Runtime) است. اولین ورژن از کامپایلر زبان #C که از CLI استفاده می نماید ، NET Framwork. مایکروسافت است.

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

#C چیست ؟
طراحان زبان #C با تاکید الگوبرداری مناسب از ویژگی ها ی زبانهائی مثل ++C، C و جاوا و نادیده گرفتن برخی از امکانات تامل برانگیز و کم مصرف شده در هر از زبانهای فوق، زبان پروگرام نویسی مدرن شی گراء را طراحی کرده اند. در موارد ی، برخی از خصوصیات ی مصرف نشده و درست درک نشده در هر یک از زبانهای گفته شده، حذف و یا با اعمال کنترل های لازم بر روی آنها، زمینه ایجاد زبان آسان و ایمن جهت اکثرا ٌ پیاده کنندگان پروگرام بوجود آمده است. برای مثال C ++C می توانند مستقیما با استفاده از اشاره گرها عملیات دلخواه خود را در حافظه انجام دهند. وجود توانائی فوق برای نوشتن برنامـه های رایانه ی با کارائی بالا ضرورت مهم دارد. ولی در صورتیکه عملیاتی اینچنین بدرستی کنترل و هدایت نگردند، خود می تواند باعث ظهور موارد (Bugs) بیشماری گردد.

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

#C بعنوان یک زبان شی گراء عالی است. این زبان First-Class را جهت مفهوم Property (Data Member) بهمراهبقیه خصائص عمومی برنامـه نویسی شی گراء پشتیبانی می نماید . در C ++C جاوا متد get/set اکثرا برای دستیابی به خصوصیات ی هر Property استفاده می گردد. CLI همچنان تعریف Property را به متدهای get/ser ترجمه کرده تا بدین طریق بتواند حداکثر رابطه متقابل بابقیه زبانهای برنامـه نویسی باشد. #C بصورت فطری Events Declared Value، Reference Type ، Operator Overloading را نیز پشتیبانی می نماید .

کد مدیریت یافته
با مصرف از ورژن پیاده سازی شده #C توسط مایکروسافت، می توان همـواره کد مدیریت یافته ای را تولید کرد. یک پروگرام #C بعد از کامپایل، بصورت برنامـه ای در خواهد آمد که حاوی دستورالعمل های تلفیق شده ( CIL (Common Intermediate Language است (درست بر خلاف دستورالعمل های مختص یک اتومبیل خاص). CIL (گاها با نام MSIL(Microsoft Intermediate Language) با به اختصار IL هم نامیده می شود ) در مفهوم مشابه بایت کدهای جاوا بوده حاوی مجموعه ای از دستورالعمل های سطح پایین قابل فهم بوسیله تکنولوژی مبتنی بر CLI مثل CLR مایکروسافت خواهد بود. این پروگرام ها بدین کد مدیریت یافته، نامیده می شوند که CLR مسئولیت تبدیل این دستورالعمل ها به کدهای قابل اجرا برروی اتومبیل ارائه اکثرا سرویس های مهم برای کدینگ شبیه : Garbage Collection، مدیریت Heap عمر مفید Object و یا Type Verification را فراهم می نماید .

روش یادگیری #C
یادگیری این زبان جهت افرادی که دارای سابقه آشنائی با یکی از زبانهای برنامـه نویسی ++C، C یا جاوا باشند کار مشکلی نخواهد بود، حتی افرادی که دارای آشنائی اولیه با جاوااسکریپت و یا دیگر زبانهای پروگرام نویسی شبیه ویژوال بیسک می باشند ، امکان پذیر آسان خواهد بود. گاهی از پروگرام نویسان پیشرفته بر این باور هستند که #C نسبت به VB.NET با اقبال بیشتر و سریعتری مواجه خواهد شد، چراکه #C نسبت به ویژوال بیسک خلاصه تر است. حتی برنامـه های بزرگ پیچیده ای که توسط #C نوشته می گردند خواناتر، کوتاه و زیبا خواهند بود. برخی از خصوصیات ی ارائه شده در #C شبیه Unsigned Integer، Operator OverLoading و امنیت بیشتر Type ها، در VB.NET وجود نداشته و این امر می تواند ی بر فراگیرتر شدن #C نسبت به VB.NET نزد پروگرام نویسان با تجربه باشد.

جهت یادگیری هر یک از زبانهای پشتیبانی شده در دات نت، می بایست از BCL (Basic Class Library) مربوط به NET Framework. شروع کرد. #C صرفا 77 کلمه کلیدی یا Keyword بوده که برای اکثر برنامـه نویسان غریب نخواهند بود. در مقابل BCL، دارای 4500 کلاس تعداد بیشماری متد Property است که برنامـه نویسان #C، می توانند از آنها برای انجام عملیات دلخواه استفاده نمایند. ممکن است یکی از موارد قابل توجه جهت یادگیری این زبان برای گاهی از پروگرام نویسان پیشرفته عدم وجود گاهی از خصوصیات امکاناتی باشد که در قدیم از طریقبقیه زبانهای استفاده شده، بخدمت گرفته می شدند. برای مثال عدم وجود امکاناتی جهت توارث چندگانه (MI) سلسله مراتبی یک شئ.

خلاصه :
شکی وجود ندارد فراگیری تسلط بر زبان #C بمنزله کسب پتانسیل ارزشمند بوده که ثمرات آن جهت برنامـه نویسان در حال و آینده ای نه چندان دور بیشتر هویدا خواهد شد. استاندارد بودن و وجود کتابخانه ای مملو از کلاس این اطمینان را بوجود خواهد آورد که با فراگیری زبان فوق کسب، مهارت های لازم ، به یک توانائی فرا محیطی نو دست پیدا خواهیم کرد که امکان مصرف از آن بر روی محیط های مفرق وجود خواهد داشت. خصوصیات امکانات بیشمار این زبان از عبارت دلایل قانع کننده دیگری است که فراگیری آن را توجیه پذیر منطقی می نماید .

  • ۹۵/۰۳/۰۱
  • سینا مرادمند

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی