مطلبی در مورد #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 (CommonIntermediate Language است (درست بر خلاف دستورالعمل های مختص يك ماشينخاص). CIL (گاها با نام MSIL(Microsoft Intermediate Language) با بهاختصار IL نيز ناميده می شود ) ، در مفهوم مشابه بايت كدهای جاوا بوده وشامل مجموعه ای از دستورالعمل های سطح پايين قابل فهم توسط تكنولوژی مبتنیبر CLI نظير CLR مايكروسافت خواهد بود. اين برنامه ها بدين دليل كد مديريتيافته، ناميده می شوند كه CLR مسئوليت تبديل اين دستورالعمل ها به كدهایقابل اجرا برروی ماشين و ارائه اغلب سرويس های اساسی برای كدينگ نظير :Garbage Collection، مديريت Heap و عمر مفيد يك Object و يا TypeVerification را فراهم می كند. روش يادگيری #C
يادگيری اين زبان برای افراديكه دارای سابقه آشنائی با يكی از زبانهایبرنامه نويسی ++C، C و يا جاوا باشند كار مشكلی نخواهد بود، حتی افراديكهدارای آشنائی اوليه با جاوااسكريپت و يا ديگر زبانهای برنامه نويسی نظيرويژوال بيسك می باشند، امكان پذير و راحت خواهد بود. برخی از برنامهنويسان حرفه ای بر اين باور هستند كه #C نسبت به VB.NET با اقبال بيشتر وسريعتری مواجه خواهد شد، چراكه #C نسبت به ويژوال بيسك خلاصه تر است. حتیبرنامه های بزرگ و پيچيده ای كه توسط #C نوشته می گردند خواناتر، كوتاه وزيبا خواهند بود. برخی از ويژگی های ارائه شده در #C نظير UnsignedInteger، Operator OverLoading و امنيت بيشتر Type ها، در VB.NET وجودنداشته و اين امر می تواند دليلی بر فراگيرتر شدن #C نسبت به VB.NET نزدبرنامه نويسان با تجربه باشد. برایيادگيری هر يك از زبانهای حمايت شده در دات نت، می بايست از BCL (BasicClass Library) مربوط به NET Framework. شروع كرد. #C خود صرفا دارای ۷۷کلمه کليدی يا Keyword بوده كه برای اكثر برنامه نويسان غريب نخواهند بود.در مقابل BCL، دارای ۴۵۰۰ كلاس و تعداد بيشماری متد و Property است كهبرنامه نويسان #C، می توانند از آنها برای انجام عمليات دلخواه خوداستفاده نمايند. شايد يكی از مسائل قابل توجه جهت يادگيری اين زبان برایبرخی از برنامه نويسان حرفه ای عدم وجود برخی از ويژگی ها و امكاناتی باشدكه در گذشته و از طريق ساير زبانهای استفاده شده، بخدمت گرفته می شدند.مثلا عدم وجود امكاناتی جهت توارث چندگانه (MI) سلسله مراتبی يك شئ.
خلاصه بدون شك فراگيری و تسلط بر زبان #C بمنزله كسب يك پتانسيل با ارزش بوده كهثمرات آن برای برنامه نويسان در حال و آينده ای نه چندان دور بيشتر هويداخواهد شد. استاندارد بودن و وجود كتابخانه ای مملو از كلاس اين اطمينان رابوجود خواهد آورد كه با فراگيری زبان فوق و كسب، مهارت های لازم، به يكتوانائی فرا محيطی جديد دست پيدا خواهيم كرد كه امكان استفاده از آن برروی محيط های متفاوت وجود خواهد داشت. ويژگی ها و قابليت های بيشمار اينزبان از جمله دلايل قانع كننده ديگری است كه فراگيری آن را توجيه پذير ومنطقی می كند. |