زبان سی C یک زبان برنامه نویسی همه منظوره و دستور گراست که از برنامهنویسی ساختار گرا و حوزهای پشتیبانی می نماید. زبان سی توسط دنیس مک آلیستر ریچی در بین سالهای ۱۹۶۹ تا ۱۹۷۳ جهت سهولت در نوشتن سیستم عامل که اختصاصاً Unix را شامل میشد در آزمایشگاه بل اختراع شد. روز به روز بر محبوبیت زبان سی افزوده شدهشد و میشودبه یک زبان برنامه نویسی مهمی در دنیای برنامه نویسی تبدیل شد. زبان سی نزدیکترین زبان برنامهنویسی رایج ،رایج، به زبان اسمبلی سطح بالا میباشد.
در سال ۱۹۷۸ ، دنیس ریچی با همکار خود ،خود، برایان ویلسون کرنیگان کتاب «زبان برنامهنویسی سی» را به رشته تحریر در آوردند که به عنوان اولین کتاب آموزشی این زبان ثبت شده است. ده سال بعد ،بعد، یعنی در سال ۱۹۸۸ دوباره نسخه دیگری را روانه بازار کردند که نسخه دوم « زبان برنامهنویسی سی » بود. سال بعد از آن انستیتوی استاندارد سازی آمریکا ( انسی )ANSI نسخه استانداردی را برای زبان سی تعریف کرد . در سال ۱۹۹۸ نیز دوباره به استاندارد سازی زبان سی پرداخت . یک سال بعد سازمان استاندارد سازی جهانی ISO زبان سی را استاندارد بین المللی نمود . آغاز کار کامپایلرهای خانگی را میتوان از همان تاریخ دانست ؛ یعنی زمان استاندارد شدن زبان سی که به اسم ANSI C 98 و ISO C 99 یا C98 و C99 معروف میباشند. سازمان استاندارد سازی جهانی ISO یک بار در سال ۲۰۱۱ و یک بار دیگر در سال ۲۰۱۷ استاندارد زبان C را بازتعریف نمود که نسخه سال ۲۰۱۷ که به اسم C18 میباشد فرق چندانی با نسخه سال ۲۰۱۱ که به اسم C11 شناخته میشود ندارد و استاندارد C11 تمام کم و کاستهای زبان سی را برطرف نمود.
==شاید از خود بپرسید استاندارد به چه معنیست ؟معناست؟==
از زمانی که زبان سی تعریف و اختراع شد قابلیتهای بسیار زیادی به رایانه افزوده شدند. برای همین در طول زمان ،زمان، ارائه دهندههای بسته های نرم افزاری برنامهنویسی با زبان سی ،سی، همواره هر کدام برای خود کلید واژه هایی را اضافه یا کم میکردند و یا عملکرد دلخواه خود را برای آن به کار می بستند. هر کدام کتابخانه مجزای خود را ایجاد می کردند. استانداردهای ISO در طول این مدت بیشتر نیازهای برنامهنویسی را پوشش میدادند و میدهند اما باز هم برخی از کامپایلرها از استانداردهای قدیمی C98 و یا C99 استفاده میکنند یا با اینکه سازگار با C11 یا C18 هستند به صورت کامل استاندارد را پشتیبانی نمیکنند ( «مثلاً بیشتر کامپایلرها هنوز اجازه استفاده از متون Unicode را در داخل متن منبع برنامه نمیدهند )»
برای نوشتن برنامه های سی نیاز به مجموعه ای نرم افزار ها خواهید داشت. که در صفحه بعدی می توانید آنها را پیدا کرده و مهیّا نمائید . به صورت اختصار اول باید یک ویرایشگر متن داشته باشید. در ویندوز برنامه Notepad و در سیستم عامل مک TextEdit و در نسخ مختلف لینوکس ویرایشگرهای متن به همراه سیستم عامل وجود دارند. اما ویرایشگر های متنی همچون ++Notepad یا Geany ، GNU،GNU Emacs ، JuffEd ،،JuffEd Programmer،Programmer's Notepad ،،Scribus Scribus،SuperEdi ،،Vim SuperEdi ، Vim ، WinVi،WinVi یا خیلی از ویرایشگرهای دیگر امکاناتی دارند که سهولت نوشتن برنامه را فراهم مینمایند. امکاناتی نظیر تفکیک قسمتهای برنامه با رنگی کردن ،کردن، کلفت کردن ،کردن، ایتالیک کردن و از همه مهمتر جمع کردن قسمتهای آن که میتوانید قسمتها و بلوکهای متن خود را مدیریت کنید. جستجو و جایگزین کردن های پیچیده و کامل ،کامل، کدنویسی خودکار و... که کار را راحتتر میکنند.
پیادهسازها ،پیادهسازها، برنامه بعدی مورد نیاز هستند که عمدتاً کامل هستند و کامپایلر ،کامپایلر، لینکر و دیباگر را با هم ارائه میکنند. هر کدام از به کارگیرندهها ممکن است علاوه بر زبان استاندارد ،استاندارد، دارای کلیدواژههای اضافی باشند که کاربردهای اختصاصی خود را دارند. به علاوه کتابخانههایی را عرضه میکنند که استفاده از توابع آنها ،آنها، کار برنامهنویس را برای نوشتن برنامه سهولت میبخشند.
در انتها باید بدانید که برخی نرم افزارها مجموعه کاملی از ویراشگر و به کارگیرنده به همراه تمام یا بخشی از نیاز های برنامهنویس مبتدی یا حرفهای را فراهم میکنند که به آنها آی.دی.ای IDE گفته می شود و مخفف Integrated Development Environment به معنی محیط تولید یکپارچه میباشد. اما استفاده از آنها برای افراد مبتدی توصیه نمیشود ،نمیشود، چرا که کار کردن با کامپایلر را یاد نمیگیرند و معمولاً هم برای ایجاد پروژه هستند و نه یاد گرفتن.