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