زبان برنامه نویسی سی/آشنایی با زبان سی C: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
جزبدون خلاصۀ ویرایش
جزبدون خلاصۀ ویرایش
خط ۵:
[[پرونده:Dennis Ritchie 2011.jpg|بندانگشتی|چپ|دنیس ریچی در ژاپن ، پس از دریافت جایزه بنیاد علوم و تکنولوژی ژاپن در می ۲۰۱۱]]
در سال ۱۹۷۸ ، دنیس ریچی با همکار خود، برایان ویلسون کرنیگان کتاب «زبان برنامه‌نویسی سی» را به رشته تحریر در آوردند که به عنوان اولین کتاب آموزشی این زبان ثبت شده است . ده سال بعد، یعنی در سال ۱۹۸۸ دوباره نسخه دیگری را روانه بازار کردند که نسخه دوم « زبان برنامه‌نویسی سی » بود . سال بعد از آن انستیتوی استاندارد سازی آمریکا ( انسی )ANSI نسخه استانداردی را برای زبان سی تعریف کرد . در سال ۱۹۹۸ نیز دوباره به استانداردسازی زبان سی پرداخت . یک سال بعد سازمان استاندارد سازی جهانی ( ISO ) زبان سی را استاندارد بین المللی نمود . آغاز کار کامپایلرهای خانگی را می‌توان از همان تاریخ دانست ؛ یعنی زمان استاندارد شدن زبان سی که به اسم ANSI C 98 و ISO C 99 یا C98 و C99 معروف می‌باشند . سازمان استاندارد سازی جهانی ISO یک بار دیگر در سال ۲۰۱۱ و بار دیگر نیز در سال ۲۰۱۷ استاندارد زبان C را بازتعریف نمود که نسخه سال ۲۰۱۷ که به اسم C18 می‌باشد فرق چندانی با نسخه سال ۲۰۱۱ که به اسم C11 شناخته می‌شود ندارد و استاندارد C11 تمام کم و کاست‌های زبان سی را برطرف نمود و C18 نیز به اصلاح نواقص و ایرادات استاندارد قبلی یعنی C11 پرداخت
[[پرونده:The C Programming Language, First Edition Cover.svg|بندانگشتی|چپ|اولین نسخه کتاب زبان برنامه‌نویسی C اثر دنیس ریچی و برایان کرنیگان]]
 
شاید از خود بپرسید استاندارد به چه معناست ؟ از زمانی که زبان سی تعریف و اختراع شد قابلیت‌های بسیار زیادی به رایانه افزوده شدند. برای همین در طول زمان ، ارائه دهنده‌های بسته‌های نرم‌افزاری پیاده‌ساز زبان سی ، همواره هر کدام برای خود کلید واژه هایی را اضافه یا کم می‌کردند و یا عملکرد دلخواه خود را برای آن به کار می‌بستند . هر کدام کتابخانه مجزای خود را ایجاد می‌کردند . استانداردهای ISO در طول این مدت بیشتر نیازهای برنامه‌نویسی را پوشش می‌دادند و می‌دهند اما باز هم برخی از کامپایلرها از استانداردهای قدیمی C98 و یا C99 استفاده می‌کنند یا با اینکه سازگار با C11 یا C18 هستند به صورت کامل استاندارد را پشتیبانی نمی‌کنند ، مثلاً برخی کامپایلرها هنوز اجازه استفاده از متون Unicode ( مثل UTF-16 ) را در داخل متن منبع برنامه نمی‌دهند