أنسي سي
قبل الخوض في التفاصيل، أنسي سي أو أيزو سي أو سي المعيارية يرمز بها إلى المعايير المحددة للغة سي البرمجية والتي حددت بواسطة المعهد الوطني الأمريكي للمعايير (ANSI) والمنظمة الدولية للمعايير (أيزو). وتعرض الأقسام التالية جوانب أخرى من الموضوع.
من جهة ثانية، وعندما أنِشِئت لغة السي لأول مرة فإنها وضِعَت من خلال مؤلفيها كيرنيغان وريتشي – وبالتالي كانت تُعرف بـ "K & R C"، وفي عام 1990، تم إنشاء معيار ANSI الدولي للسي والذي يختلف عن سابقه في عدد من الطرق.
علاوةً على ذلك، ويشير أنسي سي أو سي89 أو سي90 حسب سنة اعتماده إلى المعايير الناجحة المنشورة عن طريق المعهد الوطني الأمريكي للمعايير (ANSI) لـ لغة البرمجة سي، ويتم تشجيع مطوري البرمجيات المبرمجين بالسي لتتوافق مع المعايير، لأن ذلك يساعد في التنقل بين المترجمات (compilers).
علاوةً على ذلك، ويحدد ANSI-C بناء الجملة (syntax) ودلالات البرامج المكتوبة (semantics) في لغة البرمجة سي، ويحدد تفاعلات برنامج السي مع بيئة التطبيق عبر بيانات المدخلات والمخرجات، ويحدد كذلك القيود والحدود المفروضة على مطابقة التنفيذ لمترجمات لغة السي.
إضافةً إلى ذلك، نشأت الحاجة إلى معيار واحد واضح المعالم في مجتمع السي بسبب التوسع السريع في استخدام لغة البرمجة سي ومجموعة متنوعة من تطبيقات الترجمة البرمجية المختلفة التي كان يجري تطويرها، وكان وجود تطبيقات مماثلة ولكن متعارضة مشكلة خطيرة لمطوري البرامج الذين يرغبون في التطوير البرمجي يما يسمح بأن يُتَرجم ويُنَفَّذ بصورة متوقعة مهما تمَّ ذلك في بيئات التطوير المختلفة.
وفي السياق ذاته، يعالج المعيار الوطني الأمريكي مشاكل البرمجة بلغة السي سواء بالنسبة للمطور البرمجي أو المترجم (المجمع) بتحديد دقيق للغة السي.
نظرة تاريخية
كذلك، تم نشر المعيار الأول للسي بواسطة ANSI، وعلى الرغم من اعتماد هذه الوثيقة في وقت لاحق من قبل المنظمة الدولية للتوحيد القياسي (ISO) والتنقيحات اللاحقة التي نشرتها ISO التي تبنتها ANSI، فلا تزال تستعمل على نطاق واسع اسم ANSI C (بدلاً من ISO C). بينما يستعمل بعض مطوري البرمجيات مصطلح ISO C، والبعض الآخر يستعمل سي المعيارية (Standard C).
سي99
علاوةً على ذلك، وقد تم سحب هذا المعيار من قِبَل ISO/IEC لصالح سي11، ولكنه لا يزال موافقًا عليه مِنْ قِبَل INCITS.
إضافةً إلى ذلك، في مارس 2000، اعتمدت ANSI على ISO/IEC 9899: معيار عام 1999، ويشار إلى هذا المعيار عادة باسم سي99،
AMD1
وفي هذا السياق، كما نشرت ISO تعديلا في عام 1994، يُشار إليه كـ AMD1، (ISO/IEC 9899/Amd.1: 1995) بإدخال تغييرات طفيفة على اللغة والمكتبات.
سي11
انظر أيضاَ
هو معيار جديد للغة السي.
ومن ناحية أخرى، يُدَعَّم ANSI-C الآن على وجه التقريب من جميع المترجمات (compilers) المستعملين على نطاق واسع، وتستند أغلب أكواد السي التي تُكْتَب في الوقت الحاضر على ANSI-C، وأي برنامج مكتوب فقط بمعيار سي وبدون افتراضات الاعتماد على الأجهزة فإنه مضمون الترجمة على وجه التقريب بشكل صحيح على أي مبرمِج ينفذ سي، وبدون هذه الاحتياطات، فإنَّ أغلب البرامج ربما تُتَرجم فقط على مبرمِج معين أو مع مترجم خاص، فمثلًا، لاستخدام المكتبات غير القياسية، مثل GUIlibraries، أو إلى الاعتماد على سمات مترجِم- أو مبرمِج محدد الخصائص مثل الحجم الدقيق لأنواع بيانات معينة والبايت.
الدعم من أغلب المترجمات (Compilers)
لغة سي للأنظمة المدمجة
سي89
من جهة ثانية، في سنة 1983، شكَّل المعهد الوطني الأمريكي للمعايير لجنة، X3J11، لوضع مواصفات قياسية للسي، وبعد عملية طويلة وشاقة تم الانتهاء من المعيار عام 1989 وصدقت كـ ANSI X3.159-1989 «لغة برمجة السي،»، وغالبا ما يشار إلى هذا الإصدار من لغة على أنها "ANSI C"، وفي وقت لاحق في بعض الأحيان يتم استخدام تسمية «سي89» لتمييزه عن سي99 ولكن باستخدام نفس طريقة وضع العلامات.
سي90
وفي السياق ذاته، اعتُمِد نفس المعيار مثل سي89 من قِبَل المنظمة الدولية للتوحيد القياسي ISO وهو المعيار المعروف بـ ISO/IEC 9899:1990، مع تغييرات في التنسيق فقط، والذي يُشار إليه أحيانا باسم سي 90، ولذلك، فإن مصطلحي "C89" و "C90" يشيران في جوهريهما إلى نفس اللغة.
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟