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