div#ContactForm1 { display: none !important; }

سي# (#C)‏ (سي شارب/see sharp) هي لغة برمجة متعددة الأنماط ستوب يعنى ايه متعددة الانماط ؟؟

سي# (#C)‏ (سي شارب/see sharp) هي لغة برمجة متعددة الأنماط ستوب يعنى ايه متعددة الانماط ؟؟  


سي# (#C)‏ (سي شارب/see sharp) هي لغة برمجة متعددة الأنماط ستوب يعنى ايه متعددة الانماط ؟؟ 


متعددة الانماط يعنى اللغة تدعم أكثر من نمط برمجي واحد يعرّف تيموثي بَد مصمم لغة البرمجة Leda هذه اللغة بقوله: "تكمن فكرة لغة البرمجة متعددة أنماط البرمجة في توفير إطار عمل يتيح للمبرمج العمل بأساليب متعددة بحيث يدمج بحرية بنى تتبع لأنماط برمجة مختلفة".

من هنا فإن الهدف من تصميم لغات كهذه هو السماح للمبرمج باستخدام الأداة الأفضل للقيام بالمهمة المطلوبة على اعتبار أنه لا يوجد نمط برمجي واحد قادر على إيجاد أفضل الحلول لكافة المشاكل أو أكثرها فعالية دائماً.


بس كده لا و كمان لغة C# تتمتع بكونها سكونية التنميط و أمرية يعنى أمرية ؟؟
أمريه يعنى تشير البرمجة الأمرية إلى نمط برمجة يصف عملية الكمبيوتر من حيث العبارات التي تغير حالة البرنامج و إلى حد كبير بالطريقة ذاتها التي تعبّر صيغة الأمر في اللغات الطبيعية عن الأوامر المراد تنفيذها تحدد البرامج الأمرية تسلسلاتٍ من الأوامر للجهاز الكمبيوتر لتنفيذها و يُستخدم هذا المصطلح على عكس البرمجة التصريحية التي تعبّر عما ينبغي للبرنامج إنجازه دون وصف كيفية ذلك من حيث تسلسلات الإجراءات المطلوب اتخاذها.


و كمان تتميز السى شارب تعريفية و وظيفية و إجرائية و عمومية و شيئية المنحى (غرضية التوجه) (باستخدام الصفوف) شيئية المنحى يعنى ؟؟
البرمجة الشيئية (Object-oriented programming - OOP)‏ و بيتقال عليها برضو اسم برمجة كائنية المنحى أو برمجة موجهة نحو الكائنات (أو العناصر) وهي نمط برمجة متقدم و فيه يقسم البرنامج إلى وحدات تسمى الكائنات (Objects) كل كائن هو حزمة (تعليب) من البيانات (المتغيرات والثوابت) و الدوال و وحدات التنظيم و واجهات الاستخدام و يُبنى البرنامج بواسطة استخدام الكائنات و ربطها مع بعضها البعض وواجهة البرنامج الخارجية باستخدام هيكلية البرنامج و واجهات الاستخدام الخاصة بكل كائن
و كمان السى شارب تخضع لمبادئ البرمجة التركيبية المنحى.
قامت مايكروسوفت بتطوير اللغة في إطار عملها على تطوير دوت نِت و تمت الموافقة على تعييرها من منظمة Ecma (المعيار Ecma-334) والمنظمة الدولية للمعايير (المعيار ISO/IEC 23270:2006).

سي شارب إحدى لغات البرمجة المصممة للعمل على البنية التحتية المشتركة للغات البرمجة (CLI).

و المقصود بالبنية التحتية المشتركة للغات البرمجة (CLI)‏ هي اختصار للجملة (Common Language Infrastructure)‏ هي عبارة عن مواصفات مفتوحة (مقياس تقني) تم تطويرها من قبل شركة ميكروسوفت وتوحيدها من طرف المنظمة الدولية للمعايير و الرابطة الأوروبية لمصنعي الحواسيب والتي تصف التعليمات البرمجية القابلة للتنفيذ و بيئة وقت التنفيذ بحيث تسمح بإستخدام لغات متعددة عالية المستوى على منصات كمبيوتر مختلفة دون أن تتم إعادة صياغتها لبنى معينة و ده يعني أنها منصة لاإدارية تتيح للمبرمج إمكانية إستخدامها لإنتاج مكتبات وبرمجيات تتوافق مع المواصفات العامة للبنية التحتية.
بغض النظر عن بعض الإستثناءات تعتبر غالبية البيئة متوافقة بحيث يمكن ترجمتها لتصبح لغة وسيطة عامة يمكن من خلالها تشغيل معظم مجمعات بيئات التشغيل العامة في برامج مثل:
الدوت نت فرايموورك و مونو وغيرهما.
إن الدوت نت فرايموورك و الدوت نت كور و المونو و الدوت غنو و الدوت نت المحمول هي عبارة عن تطبيقات لـ البنية التحتية المشتركة للغات البرمجة.
صُممت لغة سي شارب لتكون لغة بسيطة وحديثة و عامة الأغراض و شيئية المنحى و كان قاد أندرس هيلسبرغ فريق تطويرها.
طب ايه اهداف التصميم ما موجود السى والسى ++ ايه الفكره ان يحصل تحديث و نطلع بلغة جدية اسمها سى شارب ؟؟؟!

اول حاجة لزم تكون لغة #C بسيطة و حديثة و عامة الاستخدام وشيئية المنحى.

تانى حاجة لزم توفر اللغة والتحقيقً دعماً لمبادئ هندسة البرمجيات مثل التحقق القوي من الأنماط (أو التحقق الاستاتيكي) يعنى ايه ؟؟

يعنى النوعية القوية عندما يفرض قيدا واحدا أو أكثر على كيفية تشارك العمليات التي تتطلب قيما من أنواع مختلفة على النقيض من النوعية القوية تكون النوعية الضعيفة.
و التحقق من حدود المصفوفات واكتشاف محاولات استخدام المتحولات غير المهيئة وجمع القمامة الأوتوماتيكي و كمان التأكيد على أهمية متانة وديمومة البرمجيات وإنتاجية المبرمج.

تالت حاجة و هى لزم يتيح التصميم إمكانية استخدام اللغة لتطوير مكونات برمجية قابلة للاستخدام في البيئات الموزعة.

رابع حاجة هى إن محمولية الكود المصدري هدف ذو أهمية عالية كمان محمولية المبرمج خاصة بالنسبة لناس اصحاب الخبرة بلغة سي++ ولغة C.

خامس حاجة هى إن دعم التوطين والعولمة هدف ذو أهمية عالية

و المقصود بالتدويل والتطويع المحلي هما الآلياتان بنستخدمهم في مجال الحوسبة في تهيئة برامج الكمبيوتر لتتسع للغات المختلفة والاختلافات الناجمة باختلاف المناطق والمتطلبات الفنية لإحدى الأسواق المستهدفة.
و يقصد بالتدويل عملية تصميم أحد التطبيقات ال برمجية بالطريقة التي تجعله ملائما و مناسبا للغات ومناطق عدة دون إجراء تغييرات هندسية و لكن التطويع المحلي فهو عملية إعداد البرامج التي تم تدويلها لتتناسب مع منطقة معينة أو لغة محددة عن طريق إضافة مكونات الإعدادات المحلية المحددة فضلا عن ترجمة النص.

سادس حاجة هى لزم تكون لغة #C ملائمة لبرمجة تطبيقات خاصة بالنظم المضمنة و الأنظمة المضيفة سواءً أكانت تطبيقات ضخمة تستخدم أنظمة تشغيل معقدة أو تطبيقات بسيطة لديها وظيفية محددة.

سابع حاجة على الرغم من أنه لزم على التطبيقات المكتوبة بلغة #C أن تقتصد في استخدام الذاكرة وقوة المعالجة إلا أن اللغة لا تهدف إلى منافسة مباشرة مع أداء وحجم التطبيقات المكتوبة بلغة C أو لغة التجميع.

دول كانوا أهداف التصميم طب ايه سبب التسمية او ليه اسمها سى شارب
اتسم سى شارب "C sharp" علشان مستوحى من الرمز الموسيقي حيث يشير الرمز ♯ إلى أن النوتة المكتوبة مرتفعة أكثر بمقدار نصف درجة موسيقية .
تتشابه هذه بالتسمية مع اسم لغة ++C حيث تشير "++" إلى وجوب زيادة المتحول بمقدار 1. يشبه الرمز ♯ شكلاً من أربع إشارات "+" (في شبكة 2x2) بما يعني ضمناً أن هذه اللغة هي زيادة بمقدار 1 على لغة ++C.
طب حلو المعلومات ديه كلها مش نكمل بقى و نعرف اللغة بدأت ازاى و امتى و نعرف تاريخها تاربخ سى شارب كبير حولنا ع قد ما نقدر نبسط التاريخ ما هو ميصحش اننا نتعلم حاجة و منعرفش تاريخها برضو.
بدأ تطوير منصة دوت نت بكتابة مجموعة من مكتبات الصفوف و قد استخدم نظام تصريف مدار اسمه Simple Managed C أو اختصاراً SMC للعمل ده.

و بعد مدة شكل أندرس هيلسبرغ فريقاً من المطورين بهدف بناء لغة جديدة اسمها كول (Cool)‏ يشكل الاسم اختصاراً لعبارة "لغة غرضية التوجه شبه لغة C " (C-like Object Oriented Language)‏.
و بعدها قررت مايكروسوفت انها هتفضل على الاسم ده لكن و بدون مقدمات مايكروسوفت تخلت عن الاسم و يرجع ده لأسباب قانونية لها علاقة بحقوق العلامات المسجلة.
و على التوازي مع تخلى مايكروسوفت عن الاسم  أُعلن مشروع دوت نت رسمياً في مؤتمر للمطورين المحترفين (PDC)  عام 2000 و أعيد تسمية اللغة إلى سي# و تم تصدير وقت التنفيذ الخاص بلغة إيه إس بي دوت نت بالإضافة إلى مكتبات الصفوف إلى هذه اللغة.
و يفجر مصمم لغة جافا جيمس غوسلينغ وبيل جوي وهو أحد مؤسسي شركة صن مايكروسيستمز التي أتت بلغة جافا أن لغة سي# ليست سوى "تقليداً" للغة جافا وقد قال غوسلينغ معقباً "إنها [المقصود سي#] كجافا نوعاً ما ولكن بعد التخلي عن الاعتمادية والإنتاجية والأمان".
نسكت و نلم الموضوع لا كمان كتب كل من كلاوس كرفت وأنجلكا لانجر في مقال لهما في مدونة "إن جافا وسي# لغتا برمجة متطابقتان تقريباً و هذا تكرار مضجر يفتقر الإبداع" و كملوا و قالوا "من الصعب جداً الادعاء أن جافا أو سي# لغة برمجة ثورية غيرت الأسلوب الذي نكتب فيه البرامج" نسكوت لا ازاى كمالو كمان "لقد استعارت سي# الكثير من جافا -والعكس صحيح حيث تدعم سي# ميزة التعليب وفك التعليب الآن و قريباً سوف نجد ميزةً شبيهة في جافا".
 لكن أندرس هيلسبرغ كان ليه رأى تانى قال أندرس هيلسبرغ عام 2000 أن سي# ليست "نسخة من جافا" بل أنها "أكثر قرباً إلى لغة سي++" من ناحية التصميم.

في 2005 أعلن عن الإصدار 2.0 من سي# ومن هنا بدأت سي# وجافا بالتطور في اتجاهات متزايدة الاختلاف.

و أول و أهم هذه الاختلافات كان في إضافة الأنماط العمومية (Generics)‏ إلى اللغتين حيث كان تحقيقهما للانماط ديه شديد الاختلاف حيث تعمل سي# بالتعامل مع الأنماط العمومية كصفوف حقيقية وتولد الكود الخاص بها وقت التنفيذ بينما تتعامل جافا مع هذه الأنماط كميزة مضافة إلى نحو اللغة تمكن المطور من كتابة كود عمومي كما تمكن المترجم من التأكد من صحة الأنماط فقط فى حين انها لا تحول هذه الأنماط إلى أنماط حقيقية وقت التنفيذ ولا يتم توليد كود خاص بها على غرار سي#.
 و إضافة إلى ده فقد أضيفت إلى سي# مجموعة من الميزات الهامة بهدف تمكين استخدام البرمجة الوظيفية فيها كُللت بإضافة لينك في الإصدار 3.0 والإطار البرمجي الداعم لتعابير لامبدا والطرق الملحقة والأنماط غير المسماة و تمكن هذه الميزات المطور من استخدام تقنيات البرمجة الوظيفية عندما يكون من المستحسن القيام بده.
و إضافات لينك و غيرها من الميزات الوظيفية تساعد المطور على كتابة أسطر أقل عند القيام بمهام روتينية كالاستعلام من قاعدة بيانات أو إعراب ملف إكس إم إل أو البحث ضمن بنية معطيات بما يمكن من التركيز على هدف البرنامج المنطقي وتحسين مقروئيته وصيانته.

كان ل سي# حظ اسمه آندي (سمي باسم أندرس هيلسبرغ) وقد أحيل إلى التقاعد فى عام 2004.
عُرضت سي# على لجنة آيزو الفرعية JTC 1/SC 22 للمراجعة والتعيير و كان اسم المعيار ISO/IEC 23270:2003 وهو ملغى اليوم و تمت الموافقة فيما بعد على تعيير سي# وفق المعيار ISO/IEC 23270:2006.
كده تاريخ اللغة خلص رايح فين انت اتعلم كده مش تعمل الكتاب و تبدأ تتعلم السى شارب و تدخل مجال الدوت نت اللى هنتكلم عنه فى بوست قريب ان شاء الله .

لينك الكتاب    C#.PDF
........................................................
اسم الكتاب ع الموقع C.pdf لكن هو كتاب C#
#مبرمج_ع_النصية
#تكنولوبيا
#الجمعه_من_كل_اسبوع
.................
اعداد : سيد انور .
تصميم : عبدالله محمد .
TAG

عن الكاتب :

هناك تعليق واحد

الاسم

بريد إلكتروني *

رسالة *