أنسي سي
'''أنسي سي''' {{إنج|ANSI C}} أو '''أيزو سي''' {{إنج|ISO C}} أو '''سي المعيارية''' {{إنج|Standard C}} يرمز بها إلى المعايير المحددة للغة سي البرمجية والتي حددت بواسطة [[المعهد الأمريكي للمعايير الوطنية|المعهد الوطني الأمريكي للمعايير (ANSI)]] و[[المنظمة الدولية للمعايير|المنظمة الدولية للمعايير (أيزو)]].<ref>{{استشهاد بويب| مسار = https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph117303 | عنوان = معلومات عن أنسي سي على موقع aleph.nkp.cz | ناشر = aleph.nkp.cz| مسار أرشيف = https://web.archive.org/web/20220831143242/https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph117303 | تاريخ أرشيف = 31 أغسطس 2022 }}</ref>

نشأت الحاجة إلى معيار واحد واضح المعالم في مجتمع السي بسبب التوسع السريع في استخدام [[سي (لغة برمجة)|لغة البرمجة سي]] ومجموعة متنوعة من تطبيقات الترجمة البرمجية المختلفة التي كان يجري تطويرها، وكان وجود تطبيقات مماثلة ولكن متعارضة مشكلة خطيرة لمطوري البرامج الذين يرغبون في التطوير البرمجي يما يسمح بأن يُتَرجم ويُنَفَّذ بصورة متوقعة مهما تمَّ ذلك في بيئات التطوير المختلفة.

وعندما أنِشِئت لغة السي لأول مرة فإنها وضِعَت من خلال مؤلفيها [[براين كيرنيغان|كيرنيغان]] و[[دينيس ريتشي|ريتشي]] – وبالتالي كانت تُعرف بـ "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''').

=== سي89 ===

في عام 1983، شكَّل المعهد الوطني الأمريكي للمعايير لجنة، X3J11، لوضع مواصفات قياسية للسي، وبعد عملية طويلة وشاقة تم الانتهاء من المعيار عام 1989 وصدقت كـ ANSI X3.159-1989 «لغة برمجة السي،»، وغالبا ما يشار إلى هذا الإصدار من لغة على أنها "ANSI C"، وفي وقت لاحق في بعض الأحيان يتم استخدام تسمية «سي89» لتمييزه عن سي99 ولكن باستخدام نفس طريقة وضع العلامات.

=== سي90 ===
اعتُمِد نفس المعيار مثل سي89 من قِبَل المنظمة الدولية للتوحيد القياسي ISO وهو المعيار المعروف بـ ISO/IEC 9899:1990، مع تغييرات في التنسيق فقط، والذي يُشار إليه أحيانا باسم سي 90، ولذلك، فإن مصطلحي "C89" و "C90" يشيران في جوهريهما إلى نفس اللغة.

=== AMD1 ===
كما نشرت ISO تعديلا في عام 1994، يُشار إليه كـ AMD1، (ISO/IEC 9899/Amd.1: 1995) بإدخال تغييرات طفيفة على اللغة والمكتبات.

=== سي99 ===
في مارس 2000، اعتمدت ANSI على ISO/IEC 9899: معيار عام 1999، ويشار إلى هذا المعيار عادة باسم سي99،
وقد تم سحب هذا المعيار من قِبَل ISO/IEC لصالح سي11، ولكنه لا يزال موافقًا عليه مِنْ قِبَل INCITS.

=== سي11 ===
هو معيار جديد للغة السي.

== الدعم من أغلب المترجمات (Compilers) ==
يُدَعَّم ANSI-C الآن تقريبا من جميع المترجمات (compilers) المستخدمين على نطاق واسع، وتستند معظم أكواد السي التي تُكْتَب في الوقت الحاضر على ANSI-C، وأي برنامج مكتوب فقط بمعيار سي وبدون افتراضات الاعتماد على الأجهزة فإنه مضمون الترجمة تقريبا بشكل صحيح على أي مبرمِج ينفذ سي، وبدون هذه الاحتياطات، فإنَّ معظم البرامج ربما تُتَرجم فقط على مبرمِج معين أو مع مترجم خاص، فعلى سبيل المثال، لاستخدام المكتبات غير القياسية، مثل GUIlibraries، أو إلى الاعتماد على سمات مترجِم- أو مبرمِج محدد الخصائص مثل الحجم الدقيق لأنواع بيانات معينة والبايت.
== انظر أيضاَ ==
* [[سي للأنظمة المضمنة|لغة سي للأنظمة المدمجة]]

== مراجع ==
{{مراجع}}

{{شريط بوابات|تقانة|برمجة الحاسوب|علم الحاسوب}}
{{ضبط استنادي}}

[[تصنيف:لغات برمجة]]
[[تصنيف:سي (لغة برمجة)]]
أنسي سي  أو أيزو سي  أو سي المعيارية  يرمز بها إلى المعايير المحددة للغة سي البرمجية والتي حددت بواسطة المعهد الوطني الأمريكي للمعايير (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).

 سي89 

في عام 1983، شكَّل المعهد الوطني الأمريكي للمعايير لجنة، X3J11، لوضع مواصفات قياسية للسي، وبعد عملية طويلة وشاقة تم الانتهاء من المعيار عام 1989 وصدقت كـ ANSI X3.159-1989 «لغة برمجة السي،»، وغالبا ما يشار إلى هذا الإصدار من لغة على أنها "ANSI C"، وفي وقت لاحق في بعض الأحيان يتم استخدام تسمية «سي89» لتمييزه عن سي99 ولكن باستخدام نفس طريقة وضع العلامات.

 سي90 
اعتُمِد نفس المعيار مثل سي89 من قِبَل المنظمة الدولية للتوحيد القياسي ISO وهو المعيار المعروف بـ ISO/IEC 9899:1990، مع تغييرات في التنسيق فقط، والذي يُشار إليه أحيانا باسم سي 90، ولذلك، فإن مصطلحي "C89" و "C90" يشيران في جوهريهما إلى نفس اللغة.

 AMD1 
كما نشرت ISO تعديلا في عام 1994، يُشار إليه كـ AMD1، (ISO/IEC 9899/Amd.1: 1995) بإدخال تغييرات طفيفة على اللغة والمكتبات.

 سي99 
في مارس 2000، اعتمدت ANSI على ISO/IEC 9899: معيار عام 1999، ويشار إلى هذا المعيار عادة باسم سي99،
وقد تم سحب هذا المعيار من قِبَل ISO/IEC لصالح سي11، ولكنه لا يزال موافقًا عليه مِنْ قِبَل INCITS.

 سي11 
هو معيار جديد للغة السي.

 الدعم من أغلب المترجمات (Compilers) 
يُدَعَّم ANSI-C الآن تقريبا من جميع المترجمات (compilers) المستخدمين على نطاق واسع، وتستند معظم أكواد السي التي تُكْتَب في الوقت الحاضر على ANSI-C، وأي برنامج مكتوب فقط بمعيار سي وبدون افتراضات الاعتماد على الأجهزة فإنه مضمون الترجمة تقريبا بشكل صحيح على أي مبرمِج ينفذ سي، وبدون هذه الاحتياطات، فإنَّ معظم البرامج ربما تُتَرجم فقط على مبرمِج معين أو مع مترجم خاص، فعلى سبيل المثال، لاستخدام المكتبات غير القياسية، مثل GUIlibraries، أو إلى الاعتماد على سمات مترجِم- أو مبرمِج محدد الخصائص مثل الحجم الدقيق لأنواع بيانات معينة والبايت.
 انظر أيضاَ 
 لغة سي للأنظمة المدمجة

 مراجع 

تصنيف:لغات برمجة
تصنيف:سي (لغة برمجة)