#C C-Sharp

#C C-Sharp


حلقات فيديو للمشاهدة المجانيّة اونلاين لكورس #C , C# أحد لغات بيئة الدوت نت لتطوير البرامج من أنتاج شركة ميكروسوفت وهي موجهه الى مبرمجي الفيجول سي ومبرمجي السي على

التخصصات الفرعية:

مشاهدة كورسات فيديو اونلاين تخصّص #C:

تصنيفات وتخصصات اخرى:

#C C-Sharp:

 

سي# :
(بالإنجليزية: #C) (تلفظ سي شارب) هي لغة برمجة متعددة الأنماط تتمتع بكونها سكونية التنميط وأمرية وتعريفية ووظيفية وإجرائية وعمومية وشيئية المنحى (غرضية التوجه) (باستخدام الصفوف) كما تخضع لمبادئ البرمجة التركيبية المنحى.
قامت مايكروسوفت بتطوير هذه اللغة في إطار عملها على تطوير دوت نِت وتمت الموافقة على تعييرها من منظمة Ecma (المعيار Ecma-334) والمنظمة الدولية للمعايير (المعيار ISO/IEC 23270:2006). إن سي# إحدى لغات البرمجة المصممة للعمل على البنية التحتية المشتركة للغات البرمجة (CLI). صُممت لغة سي# لتكون لغة بسيطة وحديثة وعامة الأغراض وشيئية المنحى. وقد قاد أندرس هيلسبرغ فريق تطويرها.الإصدار الأحدث من اللغة هو C# 5.0 وطرح في 15 آب 2012.

 

أهداف التصميم :
يدرج المعيار ECMA الأهداف التصميمية التالية للغة #C :
ينبغي أن تكون لغة #C بسيطة وحديثة وعامة الاستخدام وشيئية المنحى.
ينبغي أن توفر اللغة والتحقيق أيضاً دعماً لمبادئ هندسة البرمجيات مثل التحقق القوي من الأنماط (أو التحقق الاستاتيكي) والتحقق من حدود المصفوفات واكتشاف محاولات استخدام المتحولات غير المهيئة وجمع القمامة الأوتوماتيكي. كذلك التأكيد على أهمية متانة وديمومة البرمجيات وإنتاجية المبرمج.
يجب أن يتيح التصميم إمكانية استخدام اللغة لتطوير مكونات برمجية قابلة للاستخدام في البيئات الموزعة.
إن محمولية الكود المصدري هدف ذو أهمية عالية، كذلك محمولية المبرمج، خاصة بالنسبة لؤلائك ذوي الخبرة بلغة ++C ولغة C.
إن دعم التوطين والعولمة هدف ذو أهمية عالية.
ينبغي أن تكون لغة #C ملائمة لبرمجة تطبيقات خاصة بالنظم المضمنة والأنظمة المضيفة سواءً أكانت تطبيقات ضخمة تستخدم أنظمة تشغيل معقدة أو تطبيقات بسيطة لديها وظيفية محددة.
على الرغم من أنه ينبغي على التطبيقات المكتوبة بلغة #C أن تقتصد في استخدام الذاكرة وقوة المعالجة إلا أن اللغة لا تهدف إلى منافسة مباشرة مع أداء وحجم التطبيقات المكتوبة بلغة C أو لغة التجميع.

 

التسمية :
إن الاسم "C sharp" مستوحى من الرماز الموسيقي حيث يشير الرمز ♯ إلى أن النوتة المكتوبة مرتفعة أكثر بمقدار نصف درجة موسيقية . تتشابه هذه التسمية مع اسم لغة ++C حيث تشير "++" إلى وجوب زيادة المتحول بمقدار 1. يشبه الرمز ♯ شكلاً من أربع إشارات "+" (في شبكة 2x2) بما يعني ضمناً أن هذه اللغة هي زيادة بمقدار 1 على لغة ++C.
تم اختيار رمز الشباك (رمز اليونيكود U+0023) لتمثيل رمز شارب في كتابة اسم اللغة عوضاً عن الرمز ♯ (رمز اليونيكود U+266F) بسبب قيود تقنية تمنع من إظهاره (كافتقار دعم الخطوط القياسية وبعض المتصفحات للرمز ♯) كذلك عدم وجوده على لوحة المفاتيح القياسية.اتبع هذا التقليد أيضاً في معيار توصيف اللغة ECMA 334 . على كل الأحوال تستخدم مايكروسوفت الرمز الموسيقي الصحيح عندما يمكنها عملياً القيام بذلك (على سبيل المثال في الحملات الدعائية أو على غلاف المنتج). استُخدمت اللاحقة "شارب" في عدد من لغات دوت نت المبنية على لغات أخرى بما فيها لغة جي شارب (لغة دوت نت صممتها مايكروسوفت بالاشتقاق من لغة جافا 1.1) ولغة إيه شارب (مشتقة من لغة Ada) ولغة البرمجة الوظيفية إف شارب. أطلق على التحقيق الأصلي من لغة آيفل الخاص بدوت نت اسم آيفل شارب إلا أنه تم التخلي عن هذا الاسم بعد دعم آيفل بشكل كامل. استُخدمت هذه اللاحقة أيضاً في تسمية بعض المكتبات مثل Gtk شارب (تغليف دوت نت لمكتبة +Gtk ومكتبات جنوم أخرى) ومكتبة كوكوا شارب (تغليف مكتبة كوكوا).

 

تاريخ اللغة :
بدأ تطوير منصة دوت نت بكتابة مجموعة من مكتبات الصفوف، وقد استخدم نظام تصريف مدار اسمه Simple Managed C أو اختصاراً SMC للقيام بذلك. لاحقاً وبالتحديد في كانون الثاني 1999 شكل أندرس هيلسبرغ فريقاً من المطورين بهدف بناء لغة جديدة اسمها كول (بالإنجليزية: Cool)، يشكل الاسم اختصاراً لعبارة "لغة غرضية التوجه شبيهة بلغة C" (بالإنجليزية: C-like Object Oriented Language). قررت مايكروسوفت الإبقاء على هذا الاسم إلا أنها تخلت عن ذلك لاحقاً لأسباب قانونية لها علاقة بحقوق العلامات المسجلة. على التوازي مع ذلك أُعلن مشروع دوت نت رسمياً في مؤتمر للمطورين المحترفين (PDC) في تموز عام 2000 وأعيد تسمية اللغة إلى سي# كما تم تصدير وقت التنفيذ الخاص بلغة إيه إس بي دوت نت بالإضافة إلى مكتبات الصفوف إلى هذه اللغة.
اعتبر مصمم لغة جافا جيمس جوسلينج وبيل جوي وهو أحد مؤسسي شركة صن مايكروسيستمز التي أتت بلغة جافا أن لغة سي# ليست سوى "تقليداً" للغة جافا؛ وقد قال جوسلينج معقباً "إنها [المقصود سي#] كجافا نوعاً ما ولكن بعد التخلي عن الاعتمادية والإنتاجية والأمان". كتب كل من كلاوس كرفت وأنجلكا لانجر في مقال لهما في مدونة "إن جافا وسي# لغتا برمجة متطابقتان تقريباً. وهذا تكرار مضجر يفتقر الإبداع"، "من الصعب جداً الادعاء أن جافا أو سي# لغة برمجة ثورية غيرت الأسلوب الذي نكتب فيه البرامج"، "لقد استعارت سي# الكثير من جافا -والعكس صحيح. حيث تدعم سي# ميزة التعليب وفك التعليب الآن وقريباً سوف نجد ميزةً شبيهة في جافا". قال أندرس هيلسبرغ في تموز عام 2000 أن سي# ليست "نسخة من جافا" بل أنها "أكثر قرباً إلى لغة سي++" من ناحية التصميم.
في تشرين الثاني 2005 أعلن عن الإصدار 2.0 من سي# ومن هنا بدأت سي# وجافا بالتطور في اتجاهات متزايدة الاختلاف. إن أول وأهم هذه الاختلافات كان في إضافة الأنماط العمومية (بالإنجليزية: Generics) إلى كلتا اللغتين حيث كان تحقيقهما لهذه الأنماط شديد الاختلاف حيث تقوم سي# بالتعامل مع الأنماط العمومية كصفوف حقيقية وتولد الكود الخاص بها وقت التنفيذ بينما تتعامل جافا مع هذه الأنماط كميزة مضافة إلى نحو اللغة تمكن المطور من كتابة كود عمومي كما تمكن المترجم من التأكد من صحة الأنماط فقط بينما لا تحول هذه الأنماط إلى أنماط حقيقية وقت التنفيذ ولا يتم توليد كود خاص بها على غرار سي#.
إضافة إلى ذلك فقد أضيفت إلى سي# مجموعة من الميزات الهامة بهدف تمكين استخدام البرمجة الوظيفية فيها كُللت بإضافة لينك في الإصدار 3.0 والإطار البرمجي الداعم لتعابير لامبدا والطرق الملحقة والأنماط غير المسماة. تمكن هذه الميزات المطور من استخدام تقنيات البرمجة الوظيفية عندما يكون من المستحسن القيام بذلك. إن إضافات لينك وغيرها من الميزات الوظيفية تساعد المطور على كتابة أسطر أقل عند القيام بمهام روتينية كالاستعلام من قاعدة بيانات أو إعراب ملف إكس إم إل أو البحث ضمن بنية معطيات بما يمكن من التركيز على هدف البرنامج المنطقي وتحسين مقروئيته وصيانته.
كان لدى سي# جالب للحظ اسمه آندي (سمي باسم أندرس هيلسبرغ) وقد أحيل إلى التقاعد في 29 كانون الثاني عام 2004.
عُرضت سي# على لجنة آيزو الفرعية JTC 1/SC 22 للمراجعة والتعيير، كان اسم المعيار ISO/IEC 23270:2003 وهو ملغى اليوم. تمت الموافقة فيما بعد على تعيير سي# وفق المعيار ISO/IEC 23270:2006.