سه شنبه, ۲۵ اردیبهشت, ۱۴۰۳ / 14 May, 2024
مجله ویستا

چرا #c


چرا #c
امروزه برنامه نویسی و تسلط كامل بر آن به عنوان یكی از پارامترهای مهم برای مهندسی كامپیوتر مطرح میباشد و در این راستا مایكروسافت در مصاف با جاوا به دنبال ارایه یك زبان كامل بود كه سایه جاوا را در میادین برنامه نویسی كم رنگ تر نماید. شاید به همین دلیل باشد كه C#را ایجاد كرد.
شباهت های بین دو زبان بسیار چشمگیر است. مایكروسافت در رابطه با میزان استفاده و گسترش زبان فوق بسیار خوشبین بوده و امیدوار است بسرعت زبان فوق گستردگی و مقبولیتی به مراتب بیشتر از جاوا را نزد پیاده كنندگان نرم افزار پیدا كند.
با توجه به نقش محوری این زبان از آن بعنوان مادر زبانهای برنامه نویسی در دات نت نام برده می شود. مورد فوق به تنهایی می تواند دلیل قانع كننده ای برای یادگیری این زبان باشد ولی دلایل متعدد دیگری نیز وجود دارد كه در ادامه به برخی از آنها اشاره می گردد. مطرح شدن به عنوان یك استاندارد صنعتی انجمن تولیدكنندگان كامپیوتر اروپا (ECMA) زبان C # را در سوم اكتبر سال ۲۰۰۱ به عنوان یك استاندارد پذیرفته (( ECMA-۳۳۴ و بدنبال آن تلاش های وسیعی برای كسب گواهی ISO نیز انجام شده است.
زبان فوق در ابتدا توسط شركت مایكروسافت و بعنوان بخشی از دات نت پیاده سازی و بلافاصله پس از آن توسط شركت های اینتل، هیولیت پاكارد و مایكروسافت مشتركا جهت استاندارسازی پیشنهاد گردید. زبانC # بگونه ای طراحی شده است كه نه تنها وابستگی به یك PLATFORM خاص را ندارد بلكه در اغلب موارد وابستگی RUNTIME نیز ندارد.
كامپایلر C#می تواند بر روی هر نوع معماری سخت افزاری طراحی و اجرا گردد. در برخی از نسخه های اولیه كامپایلر زبان فوق كه توسط برخی از شركت های جانبی ارایه شده است كدهای C#را به بایت كدهای جاوا كمپایل می كنند. یكی از چنین كامپایلرهایی را می توان در سایت HALCYONSOFT.COMمشاهده نمود. بنابراین كدهای C# براحتی قابلیت حمل بر روی محیط های متفاوت را دارا خواهند بود.
مشخصات تعریف شده زبان C# با سایر استاندارهای تعریف شده ECMA نظیر ECMA) ) ۳۳۵ (COMMON LANGUAgE INFRASTRUCTURE) CLI بخوبی مطابقت می نمایند. CLR قلب و روح دات نت و (RUNTIME (COMMON LANGUAgE است. اولین نسخه از كامپایلر زبان 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/SET ترجمه كرده تا بدین طریق بتواند دارای حداكثر ارتباط متقابل با سایر زبانهای برنامه نویسی باشد. C#بصورت فطری OPERATOR OVERLOADING REFERENCE TYPE ,DECLARED VALUE ,EVENTS را نیز حمایت می كند.
● كد مدیریت یافته
با استفاده از نسخه پیاده سازی شده C#توسط مایكروسافت می توان همواره كد مدیریت یافته ای را تولید كرد. یك برنامه C#پس از كامپایل بصورت برنامه ای در خواهد آمد كه شامل دستورالعمل های تلفیق شده CLI:
(LANGUAGE INTERMEDIATE (COMMON است ( درست بر خلاف دستورالعمل های مختص یك ماشین خاص). CLI گاها با نام (MICROSOFT INTERMEDIATE LANGUAGE) MSIL با به اختصار IL نیز نامیده می شود ) در مفهوم مشابه بایت كدهای جاوا بوده و شامل مجموعه ای از CLI دستورالعمل های سطح پایین قابل فهم توسط تكنولوژی مبتنی بر CLI نظیر CLR مایكروسافت خواهد بود. این برنامه ها بدین دلیل كد مدیریت یافته نامیده می شوند كه مسوولیت تبدیل این دستورالعمل ها به كدهای قابل اجرا برروی ماشین و ارایه اغلب سرویس های اساسی برای كدینگ نظیر: GARBAGE ,COLLECTION مدیریت HEAP و عمر مفید یك OBJECT و یا TYPE VERIFICATION را فراهم می كند.
● روش یادگیری C#
یادگیری این زبان برای افرادیكه دارای سابقه آشنایی با یكی از زبانهای برنامه نویسی C++، C و یا جاوا باشند كار مشكلی نخواهد بود حتی افرادیكه دارای آشنایی اولیه با جاوااسكریپت و یا دیگر زبانهای برنامه نویسی نظیر ویژوال بیسك می باشند امكان پذیر و راحت خواهد بود. برخی از برنامه نویسان حرفه ای بر این باور هستند كه C#نسبت به VB.NET با اقبال بیشتر و سریعتری مواجه خواهد شد چراكه C#نسبت به ویژوال بیسك UNSIGNED خلاصه تر است.
حتی برنامه های بزرگ و پیچیده ای كه توسط C#نوشته می گردند خواناتر، كوتاه و زیبا خواهند بود. برخی از ویژگی های ارایه شده در C#نظیرOPERATOR OVERLOADING INTEGER و امنیت بیشتر TYPEها در VB.NET وجود نداشته و این امر می تواند دلیلی بر فراگیرتر شدن C#نسبت به VB.NET نزد برنامه نویسان با تجربه باشد.
برای یادگیری هر یك از زبانهای حمایت شده در دات نت می بایست از BCL(BASIC CLASS LIBRARY) مربوط به NET FRAMEWORK. شروع كرد. C#خود صرفا دارای كلمه كلیدی یا KEYWORD بوده كه برای اكثر برنامه نویسان غریب نخواهند بود. در مقابل BCL دارای كلاس و تعداد بیشماری متد و PROPERTY است كه برنامه نویسان C#می توانند از آنها برای انجام عملیات دلخواه خود استفاده نمایند.
شاید یكی از مسایل قابل توجه جهت یادگیری این زبان برای برخی از برنامه نویسان حرفه ای عدم وجود برخی از ویژگی ها و امكاناتی باشد كه در گذشته و از طریق سایر زبانها استفاده شده بخدمت گرفته می شدند. مثلا عدم وجود امكاناتی جهت توارث چندگانه (LM) سلسله مراتبی یك شئ.
بدون شك فراگیری و تسلط بر زبان C# به منزله كسب یك پتانسیل با ارزش بوده كه ثمرات آن برای برنامه نویسان در حال و آینده ای نه چندان دور بیشتر هویدا خواهد شد. استاندارد بودن و وجود كتابخانه ای مملو از كلاس این اطمینان را بوجود خواهد آورد كه با فراگیری زبان فوق و كسب مهارت های لازم به یك توانایی فرا محیطی جدید دست پیدا خواهیم كرد كه امكان استفاده از آن بر روی محیط های متفاوت وجود خواهد داشت. ویژگی ها و قابلیت های بیشمار این زبان از جمله دلایل قانع كننده دیگری است كه فراگیری آن را توجیه پذیر و منطقی می كند.
طی سلسله مقالاتی می خواهیم با C#بیشتر آشنا شویم. فرض این مقالات بر این است كه آشنایی مختصری با زبان های برنامه نویسی دارید هر چند كار ما تقریبا از صفر شروع می شود و هدف آن سادگی هر چه بیشتر است.
C#از دو زبان و++C وJAVA متولد شده است! حاوی بسیاری از جنبه های ++C می باشد اما ویژگی های شی گرایی خودش را از جاوا به ارث برده است.C#اگرچه از ++C گرفته شده است اما یك زبان «خالص» شیء گرا (OBJECT ORIENTED) می باشد. هر دو زبان یاد شده جزو زبانهای هیبرید محسوب می شوند اما طراحان C#این مورد را به اندازه ++C مهم تلقی نكرده اند. یك زبان هیبرید اجازه برنامه نویسی با شیوه های مختلف را میسر می كند.
دلیل اینكه ++C هیبرید است این است كه قرار بوده تا با زبان C سازگار باشد و همین امر سبب گردیده تا بعضی از جنبه های ++C بسیار پیچیده شوند. فرض زبان سی شارپ بر این است كه شما می خواهید تنها برنامه نویسی شیء گرا انجام دهید و همانند ++C مخلوطی از برنامه نویسی رویه ایی ( PROCEDURAL) و شی گرا را نمی خواهید به پایان برسانید. بنابراین باید طرز فكر خودتان را با دنیای شیء گرایی تطبیق دهید. در ادامه خواهید دید كه در سی شارپ هر چیزی شیء است حتی یك برنامه سی شارپ.
فریماسادات میری
منبع : روزنامه جوان