شبكة بحوث وتقارير ومعلومات
تجربة هيدر2
اليوم: الثلاثاء 23 ابريل 2024 , الساعة: 5:48 م


اخر المشاهدات
الأكثر قراءة
اعلانات

مرحبا بكم في شبكة بحوث وتقارير ومعلومات


عزيزي زائر شبكة بحوث وتقارير ومعلومات.. تم إعداد وإختيار هذا الموضوع سي شارب أهداف التصميم # اخر تحديث اليوم 2024-04-23 فإن كان لديك ملاحظة او توجيه يمكنك مراسلتنا من خلال الخيارات الموجودة بالموضوع.. وكذلك يمكنك زيارة القسم , وهنا نبذه عنها وتصفح المواضيع المتنوعه... آخر تحديث للمعلومات بتاريخ اليوم 27/10/2023

اعلانات

سي شارب أهداف التصميم # اخر تحديث اليوم 2024-04-23

آخر تحديث منذ 5 شهر و 28 يوم
1 مشاهدة

أهداف التصميم


يدرج المعيار ECMA الأهداف التصميمية التالية للغة C


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

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

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

  • إن محمولية الكود المصدري هدف ذو أهمية عالية، كذلك محمولية المبرمج، خاصة بالنسبة لؤلائك ذوي الخبرة بلغة ++C ولغة سي (لغة برمجة) C .

  • إن دعم توطين وعولمة (معلوماتية) التوطين والعولمة هدف ذو أهمية عالية.

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

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



التسمية


إن الاسم C sharp مستوحى من الرماز الموسيقي حيث يشير الرمز ♯ إلى أن النوتة المكتوبة مرتفعة أكثر بمقدار نصف درجة موسيقية cite web
url http //www.jameskovacs.com/blog/CNETHistoryLesson.as


درس في تاريخ سي شارب ودوت نت (بالإنجليزية)


first جيمس


last كوفاكس


date 7 أيلول


accessdate 15 كانون الأول


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

تم اختيار شباك (رمز) رمز الشباك ( يونيكود رمز اليونيكود U+0023) لتمثيل رمز شارب في كتابة اسم اللغة عوضاً عن الرمز ♯ ( يونيكود رمز اليونيكود U+266F) بسبب قيود تقنية تمنع من إظهاره (كافتقار دعم الخطوط القياسية وبعض المتصفحات للرمز ♯) كذلك عدم وجوده على لوحة المفاتيح القياسية.اتبع هذا التقليد أيضاً في معيار توصيف اللغة ECMA 334 . على كل الأحوال تستخدم مايكروسوفت الرمز الموسيقي الصحيح عندما يمكنها عملياً القيام بذلك (على سبيل المثال في الحملات الدعائية أو على غلاف المنتج cite web
url http //www.microsoft.com/presspass/images/gallery/boxshots/web/visual-c-sharp03


فيجوال سي الإصدار القياسي


date 4 أيلول 2003


publisher مايكروسوفت


format JPEG


accessdate 15 كانون الأول


). استُخدمت اللاحقة شارب في عدد من لغات دوت نت المبنية على لغات أخرى بما فيها لغة جي شارب (لغة دوت نت صممتها مايكروسوفت بالاشتقاق من لغة جافا 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 .



الإصدارات


هذه قائمة بالإصدارات المختلفة للسي






-


! rowspan 2 الإصدار


! rowspan 2 وقت التنفيذ المشترك للغات سي إل آر cite web url http //msdn.microsoft.com/en-us/library/8bs2ecf4(v vs.110).as وقت التنفيذ المشترك للغات البرمجة (بالإنجليزية) accessdate 15 كانون الأول version .NET Framework 4.5 publisher مايكروسوفت website شبكة مطوري مايكروسوفت
! 3 توصيف اللغة


! rowspan 2 التاريخ


! rowspan 2 إطار عمل دوت نت


! rowspan 2 مايكروسوفت فيجوال ستوديو فيجوال ستوديو


-


! Ecma International ECMA


! المنظمة الدولية للمعايير ISO / اللجنة الدولية للتقانة الكهربائية IEC


! مايكروسوفت


-


سي 1.0


1.0


rowspan 2 كانون الأول 2002




rowspan 2 نيسان 2003




كانون الثاني 2002




كانون الثاني 2002


إطار عمل دوت نت 1.0


فيجوال ستوديو .نت 2002


-


سي 1.2


1.1


تشرين الأول 2003




نيسان 2003


إطار عمل دوت نت 1.1


فيجوال ستوديو .نت 2003


-


سي 2.0


2.0


حزيران




أيلول




أيلول 2005 ref label مايكروسوفت أ أ




تشرين الثاني 2005


إطار عمل دوت نت 2.0


فيجوال ستوديو 2005


-


سي 3.0


2.0

2.0 SP1
2 rowspan 3 no لا يوجد ref label آيزو ب ب


آب




تشرين الثاني





إطار عمل دوت نت 2.0 (بدون امتداد الاستعلام التكميلي اللغوي (لينك) لينك ) cite web url http //www.danielmoth.com/Blog/using-c-30-from-net-20.as استخدام سي 3.0 من دوت نت 2.0 (بالإنجليزية) publisher Danielmoth.com date 13 أيار accessdate 15 كانون الأول


إطار عمل دوت نت 3.0 (بدون امتداد الاستعلام التكميلي اللغوي (لينك) لينك )


إطار عمل دوت نت 3.5


فيجوال ستوديو

فيجوال ستوديو
-


سي 4.0


4.0 ref label سيإلآر4 ج ج


نيسان




نيسان


إطار عمل دوت نت 4.0


فيجوال ستوديو


-


سي 5.0


4.5 ref label سيإلآر45 د د


حزيران




آب


إطار عمل دوت نت 4.5


فيجوال ستوديو


-


سي 6.0











تموز


تموز


إطار عمل دوت نت 4.6


فيجوال ستوديو









-


note label مايكروسوفت أ أ يتضمن مستند توصيف C 2.0 الخاص بمايكروسوفت مزايا الإصدار 2.0 الجديدة فقط. استخدم التوصيف 1.2 للاطلاع على المزايا القديمة.


-


note label آيزو ب ب لا يوجد معيار Ecma ولا ISO/IEC لإصدارات C التالية 3.0 و4.0 و5.0


-


note label سيإلآر4 ج ج لا يوجد إصدار 3.0 من سي إل آر


-


note label سيإلآر45 د د رقم الإصدار حسب توثيق سي إل آر هو 4.5 إلاأن قيمة الثابت Environment.Version هي 4.0 citation last سكيت first جون page 559 سي بالعمق (بالإنجليزية) edition 3 isbn
9781617291340
publicationdate أيلول publisher منشورات مانينغ







+ ملخص عن الإصدارات


-


! !! سي 2.0 !! سي 3.0 !! سي 4.0 !! سي 5.0 !! سي 6.0 cite web last هايلسبرغ first أندرس الاتجاهات المستقبلية للغة سي وفيجوال بيسك (بالإنجليزية) url http //channel9.msdn.com/Events/BUILD/BUILD /TOOL-816T work المصمم الرئيسي للغة سي publisher القناة 9 accessdate 15 كانون الأول !! المستقبل سي 7.0
-


!المزايا المضافة







  • الأنماط العامة إنج Generics

  • الأنماط الجزئية إنج Partial s

  • الطرق غير المسماة إنج Anonymous methods

  • المكرارات إنج Iterators

  • الأنماط القابلة للعدم إنج Nullable s

  • المسندات الخاصة إنج Private setters (للصفات إنج properties )

  • تحويل مجموعة الطرق إنج Method group

  • التباين إنج Covariance والتباين المعاكس إنج Contra-variance

  • الصفوف الاستاتيكية إنج Static es







  • المتحولات المحلية المنمطة ضمناً

  • مهيئات الكائنات والمجموعات

  • الصفات المحققة بشكل أوتوماتيكي

  • الأنماط غير المسماة

  • الطرق الملحقة إنج Extension method

  • تعابير الاستعلام

  • تعابير لامبدا

  • أشجار التعابير

  • الطرق الجزئية إنج Partial Methods







  • الربط الديناميكي إنج Dynamic binding

  • الوسطاء الاختيارية والمسماة

  • التباين والتباين العكسي للأنماط العامة

  • تضمين أنماط إنترأوب إنج Interop







  • الطرق اللامتزامنة إنج asynchronous methods

  • سمات معلومة المستدعي إنج caller info attributes







  • المصرف كخدمة إنج Compiler-as-a-service (روسلين) ref label مك هـ هـ

  • استيراد أعضاء النمط إلى فضاء التسمية

  • مرشحات استثنائية

  • تحقق من انعدام القيمة (null) بشكل موجز

  • إعادة أكثر من قيمة

  • استنباط نمط الباني

  • مراحل إصدار البرمجيات المرحلة بيتا مرحلة تقييم المجتمع للتكنولوجيا (أيلول )

  • نحو (لغات برمجة) نحوٌ موجز للبواني الرئيسية

  • صفات قابلة للقراءة فقط

  • استخدام التعابير كصفات (صفات لامبدا)


بحاجة إلى تعديل







  • استخدام التعابير كطرق

  • تمرير المصفوفات كوسطاء لواجهات IEnumerable









-


note label مك هـ هـ يقصد بذلك إمكانية التعامل مع المصرف كمكتبة برمجية، بحيث يمكن على سبيل المثال للمطور أن يطلب من المصرف أن يقوم بترجمة مجموعة من التعليمات (على شكل شجرة تعابير) وإعادة حقنها في البرنامج وقت التنفيذ دون الحاجة لإعادة تصريف الكود.







النحو


أيضا نحو (لغات برمجة)



لدى لغة سي النحو التالي




  • تستخدم الفاصلة المنقوطة للدلالة على انتهاء عبارة برمجية العبارة البرمجية .

  • تستخدم قوس (ترقيم) الأقواس الحاصرة لتجميع عدة عبارات برمجية، غالباً ما تجمع العبارات البرمجية ضمن طرق (أو وظائف)، كما تجمع الوظائف ضمن صنف (علوم الحاسب) صفوف ، والصفوف ضمن فضاءات تسمية.

  • تُسند المتغيرات باستخدام علامة التساوي كما تُقارن باستخدام علامتي تساوي .

  • تستخدم الأقواس المعقوفة [ ] مع المصفوفات لدى التصريح عن المصفوفة كذلك من أجل الولوج إلى عنصر ما عن طريق استخدام الدليل الموافق.



المزايا الفارقة


تتفرد لغة سي عن غيرها من لغات برمجة إطار عمل دوت نت في كونها مرتبطة بشكل وثيق بمزايا البنية التحتية المشتركة للغات البرمجة (CLI)، فعلى سبيل المثال تنسب معظم الأنماط الحقيقية إلى قرائنها من أنماط القيمة إنج value- s الموجودة في CLI. على الرغم من ذلك فإن توصيف اللغة لا يتطرق إلى متطلبات توليد الكود الخاصة مصرف (برمجة) بالمصرّف ، بمعنى أن التوصيف لا يرغم مصرف سي على توليد كود متوافق مع وقت التنفيذ المشترك للغات (CLR) أو توليد تعليمات متوافقة مع اللغة المشتركة الوسيطة إنج Common Intermediate Language أو أي تنسيق آخر. وهكذا يمكّن (نظرياً على الأقل) مصرّف سي من توليد كود لغة الآلة مباشرة على غرار باقي المصرفات كمصرّف سي++ ومصرّف فورتران . فيما يلي بعض من المزايا الجديرة بالاهتمام كونها تميز لغة سي عن لغتي سي (لغة برمجة) سي و سي++ (بالإضافة إلى جافا (لغة برمجة) جافا لدى ذكر ذلك صراحة)




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

  • إن إمكانية الميتا-برمجة إنج Meta Programming من خلال استخدام السمات إنج Attributes هي جزءً من توصيف اللغة. توفر العديد من هذه السمات وظيفية مطابقة لتلك التي توفرها موجهات قبل التصريف المعتمدة على المنصة المدعومة من قبل جي.سي.سي و مايكروسوفت فيجوال سي++ فيجوال سي++ .

  • يجب على مبرمجي سي استخدام الكلمة المفتاحية كود virtual من أجل إتاحة تجاوز الطرق في الصفوف المشتقة على غرار لغة سي++ (وخلافاً للغة جافا).

  • تتيح الطرق الملحقة إنج Extension Methods لمبرمجي سي إمكانية استخدام الطرق الاستاتيكية كما لو أنها طرق خاصة بالصف، وهذا ما يمكن المبرمج من إضافة طرق جديدة إلى الصفوف عن الإحساس بضرورة وجودها في الصف نفسه وكافة الصفوف المشتقة منه.

  • يتيح النمط كود dynamic إمكانية الربط مع الطرق أثناء التنفيذ بما يمكن من استدعاء الطرق وتركيب الكائنات وقت التنفيذ مثلما تفعل لغة جافا سكربت .

  • لدى سي الكلمة المفتاحية كود delegate التي تتيح تعريف مؤشر (برمجة) مؤشرات قوية التنميط إلى توابع.

  • لدى سي وظيفية الإعلان عن الأحداث والتسجيل عليها من خلال استخدام كود delegate وغيرها بشكل يشابه وظيفية الإشارات والمقابس إنج signals and slots التي تضيفها كيوت بيئة تطوير كيوت إلى لغة سي++.

  • توفر سي استدعاءات الطرق المتزامنة بما يشابه لغة جافا عن طريق استخدام السمة كود [(MethodImpl(MethodImplOptions.Synchronized] ، كما أنها تدعم أقفال استبعاد التشارك عبر الكلمة المفتاحية كود lock .

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

  • خلافاً للغتي سي وسي++ لا تستطيع المتحولات المحلية إخفاء المتحولات الموجودة في الكتلة البرمجية المحيطة .

  • يوفر فضاء التسمية كود namespace في لغة سي نفس المستوى من العزل الذي توفره رزمة كود package جافا وفضاء التسمية كود namespace سي++، كما أنه يتمتع بالعديد من القواعد والميزات الشبيهة برزمة جافا.

  • تدعم سي نمط المعطيات بوليان البولياني كود bool بشكل صارم. إذ تتطلب كافة العبارات البرمجية التي تتضمن شروطاً (مثل عبارة كود while وعبارة كود if ) تعابيراً من نمط يحقق المعامل كود true كالنمط البولياني مثلاً. بالمقارنة مع لغة سي++ التي تحوي أيضاً النمط البولياني نجد أن سي++ تتيح تحويل هذا النمط من وإلى أرقام صحيحة، نتيجةً لذلك يمكن تتطلب بعض التعابير مثل كود (if(a فقط أن يكون كود a قابل للتحويل إلى كود bool مفسحة المجال بذلك لأن يكون كود a من النمط كود int أو حتى أو يكون مؤشراً. لا تتيح سي مقاربة الأعداد الصحيحة تعني صحيح أو خطأ على اعتبار أن إجبار المبرمج على استخدام تعابير تعيد النمط كود bool تماماً قد يمنع حدوث عددٍ من الأخطاء البرمجية الشائعة في لغتي سي وسي++ (مثل العبارة كود 1 (if(a b حيث استًبدل معامل المقارنة كود 1 بمعامل الإسناد كود 1 ).

  • تتيح سي إمكانية استخدام المؤشرات إلى عناوين الذاكرة فقط ضمن كتل مشار إليها بالكلمة المفتاحية كود unsafe (غير آمن)، وتتطلب البرامج التي تحتوي كوداً غير آمنٍ سماحيات ملائمة كي تعمل. غالباً ما تستخدم الدلائل إنج References الآمنة من أجل الولوج إلى الكائنات، حيث تشير هذه الدلائل دائماً لى كائنات فعالة في الذاكرة كما أن لديها قيمة فارغة كود null معرفة بشكل ملائم؛ من المستحيل الحصول على دليل إن كائن تم تدميره (من خلال جامع القمامة) أو الولوج إلى كتلة عشوائية في الذاكرة. يمكن للمؤشر غير الآمن الإشارة إلى متحول من نمط-قيمة أو مصفوفة أو سلسلة محرفية أو كتلة من الذاكرة محجوزة على المكدس. يمكن للكود غير الآمن أن يخزن ويتلاعب بالمؤشرات من خلال النمط كود Syst .IntPtr ولكن لا يمكنه الاطلاع على محتوياتها.

  • لا يمكن تحرير الذاكرة المُدارة بشكل مباشر إذ يتم تحريرها بشكل أوتوماتيكي من قبل جامع القمامة. إن جمع القمامة يعالج معضلة تسرب الذاكرة من خلال إعفاء المبرمج من مسؤولية تحرير الذاكرة.

  • توفر لغة سي بالإضافة إلى بنية كود try...catch الخاصة بمعالجة الاستثناءات البنية كود try...finally التي تضمن تنفيذ الكود الموجود في كتلة كود finally سواءً حصل استثناء أم لم يحصل.

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

  • خلافاً للغة جافا تدعم لغة سي التحميل الزائد للمعاملات، إلا أنها تدعم تحميل المعاملات الأكثر شيوعاً فقط بالمقارنة مع لغة سي++.

  • تتمتع سي بكونها ذات تنميط أكثر أمناً من لغة سي++. إن التحويلات الضمنية المتاحة بشكل افتراضي في اللغة هي تلك المعدة الآمنة بشكل حصري. مثل توسيع الأعداد الصحيحة (من كود Int16 إلى كود Int32 مثلاً). يتم تطبيق هذه السياسة أثناء التصريف وخلال ترجمة في الوقت المناسب الترجمة في الوقت المناسب (JIT) وفي بعض الأحيان أثناء التنفيذ. لا يوجد تحويل ضمني بين النمط البولياني والنمط الصحيح ولا بين أعضاء الأنماط التعدادية والنمط الصحيح (باستثناء المحرف 0 والذي يمكن تحويله ضمنياً إلى أي نمط تعدادي). يجب الإشارة إلى أي تحويل معرف من قبل المستخدم بشكل صريح أو ضمني بشكل يخالف البواني الناسخة ومعاملات التحويل في لغة سي++ التي تعمل بشكل ضمني افتراضياً.

  • تدعم سي بشكل كامل التباين والتباين المعاكس للأنماط العامة على خلاف لغة سي++ التي توفر دعماً محدوداً للتباين المعاكس من خلال التحكم بمعاني الأنماط المعادة في الطرق الافتراضية.

  • لأعضاء التعدادات ضمن مجال الرؤية الخاص بها.

  • توفر لغة سي الخصائص إنج Properties التجميل اللغوي كتجميل لغوي لنمط برمجي شائع يتم فيه تعريف زوج من الطرق طريقة للحصول على القيمة إنج getter وأخرى لتعديل القيمة إنج setter بهدف تغليف عمليات الوصول إلى عضو من أعضاء الصف. نتيجة لذلك لم تعد هنالك حاجة لكتابة العديد من هذه الطرق بشكل تكراري، بالإضافة إلى ذلك يمكن الولوج إلى الخصائص بشكل موجز بنفس طريقة الولوج إلى الأعضاء ولا حاجة لاستخدام استدعاء الطريقة المعتاد للقيام بذلك.

  • خلافاً للغة جافا لا تدعم لغة سي الاستثناءات المفحوصة (الاستثناءات التي يمكن أن تحصل ضمن طريقة ما، يمكن للطريقة أن تصرح عن هذه الاستثناءات كجزء من توقيعها). وقد اتخذ قرار بالإحجام عن هذه الميزة نظراً لأنها قد تسبب معضلات فيما يتعلق بقابلية التوسع والتعامل مع الإصدارات المختلفة.

  • ابتداءً من الإصدار 3.0 تدعم لغة سي تقنيات البرمجة الوظيفية من خلال الصفوف التابعية وتعابير لامبدا على الرغم من كونها برمجة أمرية لغة أمرية أصلاً.



نظام الأنماط المشترك


لدى سي نظام أنماط موحد يدعى نظام الأنماط المشترك إنج Common Type Syst مرجع كتاب الأخير آرشر الأول توم العنوان داخل سي (بالإنجليزية) سنة 2001 الناشر منشورات مايكروسوفت مكان ردموند، واشنطن الرقم المعياري 0-7356-1288-9 chapter الجزء الثاني، الفصل 4 نظام الأنماط المشترك أو اختصاراً CTS. إن نظام الأنماط الموحد يقوم على مبدأ أن كافة الأنماط بما فيها الأنماط البسيطة كالأعداد الصحيحة هي صفوف مشتقة من الصف كود Syst .Object . على سبيل المثال وراثة (علوم حاسوب) يرث كل نمط الطريقة كود ()ToString .





فئات أنماط المعطيات


يصنف نظام الأنماط المشترك أنماط المعطيات ضمن فئتين




  1. أنماط المرجع

  2. أنماط القيمة


تتصف الكائنات من نمط القيمة بأنها لا تملك < >محدداً مرجعياً ولا تمتلك خصائص المقارنة المرجعية - فمعاملات المساواة وانعدام المساواة بين أنماط القيمة تقوم بمقارنة القيمة الحقيقية للبيانات الموجودة ضمن الكائنات ما لم تكن معاملات المقارنة هذه محملةً بشكل زائد. تُشتق أنماط القيمة من النمط كود Syst .ValueType ولديها دائماً قيمة افتراضية كما يمكن إنشاؤها ونسخها في أي وقت. من أهم القيود المفروضة على أنماط القيمة هو عدم المقدرة على الاشتقاق من بعضها البعض (إلا أنها تستطيع تحقيق الواجهات) كما أنها لا يمكن أن تحوي دالة البناء (برمجة كائنية التوجه) بانياً افتراضياً (بدون بارامترات). إن الأنماط البسيطة مثل النمط كود int (عدد صحيح ذو إشارة بطول 32 بتاً) والنمط كود float (عدد فاصلة عائمة بطول 32 بت معرف من جمعية مهندسي الكهرباء والإلكترونيات آي تربل إي ) والنمط كود char (وحدة كود من نظام يونيكود بطول 16 بت) والنمط كود Syst .DateTime (يعرف لحظة زمنية ما بدقة نانوثانية ) هي أمثلة على أنماط القيمة. كذلك النمط كود enum (نمط تعدادي) والنمط كود struct (بنى معرفة من قبل المستخدم).





بمقابل ذلك تمتلك أنماط المرجع مفهوم المحدد المرجعي - أي أن كل كائن من النمط المرجعي يمتلك محدداً متميزاً عن محددات بقية الكائنات حتى وإن كان البيانات الموجودة ضمن كائنين هي ذاتها. ينعكس هذا المفهوم على عمليات مساواة أو عدم مساواة أنماط المرجع حيث تقوم باختبار المساواة المرجعية ولا تختبر مساواة القيم بينها إلا في حال تحميل المعاملات المقابلة بشكل زائد (كما هو الحال بالنسبة للنمط كود Syst .String . بشكل عام لا يمكن إنشاء كائنات من النمط المرجعي ولا نسخ كائن موجود ولا إجراء مقارنات بين قيم كائنين مرجعيين، على الرغم من ذلك توفر بين أنماط المرجع خدمات كهذه عبر التصريح عن بانٍ عام أو عبر تحقيق الواجهة الموافقة (مثل كود ICloneable و كود IComparable ). بعض الأمثلة على أنماط المرجع النمط كود Object (الصف الأساسي الذي تشتق منه كافة الصفوف الأخرى) والنمط كود Syst .String (سلسلة محرفية من النمط يونيكود ) والنمط كود Syst .Array (الصف الأساسي الذي تشتق منه كافة المصفوفات).





كلا الفئتين قابلتان للتوسيع بأنماط جديدة معرّفة من قبل المستخدم.



التعليب وفك التعليب


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

فك التعليب إنج Unboxing هو عملية تحويل قيمة كائن من نوع نمط مرجعي (معلّب مسبقاً) إلى القيمة الموافقة كنمط القيمة. يتطلب فك التعليب قسراً صريحاً للنمط. إذا كان الكائن المعلب من النمط كود T يمكن عندها فك تعليب هذا الكائن فقط إلى النمط كود T (أو إلى النمط كود عنوان خاطئ سي



معلومات لغة برمجة


اسم سي


شعار C Sharp wordmark.svg 150


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


تاريخ_ظهور 2000


صممها مايكروسوفت


المطور مايكروسوفت


آخر_إصدار 6.0


رقم_آخر_إصدار 6.0


تاريخ_آخر_إصدار start date and age 07 20


نظام_التنميط تنميط سكوني، ديناميكي، قوي، ساكن، آمن، معرفاتي، اشتقاق جزئي


متأثرة_بـ سي++ ، إيفل ، جافا ، Modula-3 ، أوبجكت باسكال ، إم إل ، آيكون (لغة برمجة) آيكون ، هاسكل (لغة برمجة) هاسكل ، سي أوميغا ، إف شارب (لغة برمجة) إف


أثرت دي (لغة برمجة) دي ، إف شارب (لغة برمجة) إف ، جافا cite web url http //www.barrycornelius.com/papers/java5/onefile
Java 5 catches up with C


publisher خدمات حوسبة جامعة أكسفورد


first Barry


last Cornelius ، مونكي (لغة برمجة) مونكي ، نيميرل (لغة برمجة) نيميرل ، فالا (لغة برمجة) فالا
نظام_التشغيل سي إل أي البنية التحتية المشتركة للغات البرمجة (CLI)


رخصة وقت التنفيذ المشترك للغات احتكاري. مصرف مونو (برمجة) مونو مرخص تحت رخصتين رخصة جنو العمومية الإصدار 3 جي بي إل الإصدار 3 و رخصة إم إي تي إم آي تي/إكس 11 أما المكتبات البرمجية فهي تحت رخصة رخصة جنو العمومية الصغرى إل جي بي إل الإصدار 2 . دوت جنو مرخص تحت رخصتين رخصة جنو العمومية جي بي إل و رخصة جنو العمومية الصغرى إل جي بي إي الإصدار 2


موقع http //msdn.microsoft.com/vcsharp


امتداد_الملف cs.






سي





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



قامت مايكروسوفت بتطوير هذه اللغة في إطار عملها على تطوير إطار عمل دوت نت دوت نِت وتمت الموافقة على تعييرها من منظمة Ecma (المعيار Ecma-334) و المنظمة الدولية للمعايير (المعيار ISO/IEC 23270 ). إن سي إحدى لغات البرمجة المصممة للعمل على سي إل أي البنية التحتية المشتركة للغات البرمجة (CLI) . صُممت لغة سي لتكون لغة بسيطة وحديثة وعامة الأغراض و شيئية المنحى مرجع كتاب
مسار http //www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf


العنوان توصيف لغة C (بالإنجليزية)


الناشر Ecma International


الإصدار 4


month حزيران


سنة


تاريخ الوصول 11 كانون الأول


. وقد قاد أندرس هيلسبرغ فريق تطويرها.

الإصدار الأحدث من اللغة هو C 6.0 وطرح في -7-20 .



شاركنا رأيك

 
التعليقات

لم يعلق احد حتى الآن .. كن اول من يعلق بالضغط هنا

أقسام شبكة بحوث وتقارير ومعلومات عملت لخدمة الزائر ليسهل عليه تصفح الموقع بسلاسة وأخذ المعلومات تصفح هذا الموضوع سي شارب أهداف التصميم # اخر تحديث اليوم 2024-04-23 ويمكنك مراسلتنا في حال الملاحظات او التعديل او الإضافة او طلب حذف الموضوع ...آخر تعديل اليوم 27/10/2023


اعلانات العرب الآن