{{سرص|زبان برنامه نویسی سی|زبان برنامه نویسی سی/آشنایی با زبان های برنامه نویسی}}
''این کتاب را تقدیم میکنم به سرکار علّیه خانم '''شقایق جعفری جوزانی''''' <br>
<br>
امروزه بیشتر امور،امور ، به صورت خودکار انجام میشوند . بعد از انقلاب رنسانس و صنعتی در اروپا،اروپا ، جهان به سمت ماشینی و روتین شدن پیش رفت . اما علم الکترونیک باعث شد تا کارها با دقت و کلیت و سرعت بیشتری انجام پذیرند . اختراع ترانزیستورها و در نهایت مدار های مجمتمع IC ها و میکروسکوپی و کوانتومی،کوانتومی ، منجر به پیشرفت چشمگیر علم الکترونیک شد و در نهایت رایانه اختراع شد و پا به عرصه وجود گذاشت . رایانه برخلاف دستگاههای الکترونیکی دیگر،دیگر ، قابل برنامهریزی است . اما این برنامهریزی در ابتدا با ورقهایی پر از حفره انجام میشد که میتوانست به پردازشگر بفهماند که باید چه کاری انجام دهد ( به این ورقهها punch card گفته میشد )
برخلاف یک دستگاه دیویدیدیویدیپلیر که تنها میتواند کارهایی را که از پیش برای آن در نظر گرفته شده انجام دهد؛دهد ؛ یک رایانه که امروزه شامل تبلتها و گوشیهای همراه هوشمند و بسیاری دیگر از دستگاههای الکترونیکی دیگر میشود میتواند مدام برنامههای مختلفی را دریافت کند و بر اساس آنها عمل کند . همان طور که گفته شد در ابتدای امر،امر ، کار برنامه دادن به رایانه،رایانه ، بسیار مشکل بود،بود ، گرچه کارهایی که در آن زمان انجام میشدند آنقدر ساده بودند که به هیچ وجه با پردازشهایی که رایانهها و برنامههای امروزی انجام میدهند قابل مقایسه نیستند . اما این حفره ها به مثابه 0 و 1 بودند ! اما 0 و 1 چیستند ؟ رایانه،رایانه ، یک دستگاه دیجیتالی است؛ بر خلاف دستگاههای الکترونیکیِ قدیمی که آنالوگ بودند و سیگنالها از طریق موجهایی که بر روی جریان الکتریکی یا امواج الکترومغناطیسی ایجاد میشدند،میشدند ، رفت و آمد میکردند؛میکردند ؛ در دستگاههای الکترونیکی دیجیتالی،دیجیتالی ، سیگنالها با قطع و وصلِ جریان،جریان ، رفت و آمد میکنند . عدد « ۱ » نماینده وجود جریان ( یا وجود بار و وجود موج الکترومغناطیسی ) نماینده و عدد « ۱۰ » ونماینده عدم وجود جریان ( یا عدم وجود بار )یا نمایندهعدم عددوجود «موج ۰الکترومغناطیسی ) » میباشند و بدینترتیب با جریان الکتریکی که مرتب قطع-و-وصل میشود که تحت استانداردها و پروتکلهای الکترونیکی است،بینالمللی یا اختصاصی شرکتها و کمپانیها است ، سیگنالها رفت و آمد میکنند ( سیگنال به معنی پیام است که در علوم برق و الکترونیک به جریان الکتریکی یا امواج الکترومغناطیسیای گفته میشود که دارای معنای خاصی باشد ) بنابراین زبان واقعی ماشین و از جمله رایانه،رایانه ، زبان 0 و 1 می باشد که جهت سهولت در کار،کار ، سیگنال ها را که همان 0 و 1 می باشند و در مبنای ۲ هستند ( دودویی ) به مبناهای دیگری همچون ۴،۴ ۸، ، ۸ ، ۱۰ و ۱۶ تبدیل می نمایند . اما این کار باز هم باعث سهولت مطلوبی نمی گردد . برنامه نویسی به زبان ماشین فوقالعاده امری دشوار و وقتگیر است . اما فراموش نکنید که برای نوشتن هسته ( کرنل ) یک سیستم عامل ( که مجموعه ای از نرم افزارها و میان افزارها جهت مدیریت سختافزار و از طرفی فراهم نمودن محیطی برای ایجاد برنامه می باشد ) یا درایور یک دستگاه الکترونیکی،الکترونیکی و یا کامپایلر که کدهای سطح بالا مثل زبان C را به زبان ماشین ترجمه میکند ، مطمئناً باید از زبانهای سطح پائین نیز استفاده نمائید و با مقادیر دیجیتالی در مبنای ۲ یا ۱۶ ( هگزادسیمال ) با سختافزار ارتباط برقرار نمائید
در دهه های دور،دور ، زبانی برای تلفیق با زبان ماشین و سهولت در برنامهنویسی ابداع شد که زبان اسمبلی ( Assembly ) نام دارد و هنوز هم به کار میرود و این زبان دارای کدهایی می باشد که که هر کد،کد ، نماینده یک عمل پردازنده رایانه ( واحد پردازشگر مرکزی Central Processing Unit - CPU ) میباشد و بدین ترتیب کار تا حدی آسان شد . بعد از گذشت زمان،زمان ، مهندسین دانش رایانه زبان های بسیار زیادی را ارائه کردند که همگی جزء زبان های سطح بالا ( زبانهای نزدیک به زبان و فهم انسان ) به شمار میروند و کار نوشتن برنامه و برنامه دادن به رایانه را تا حد زیادی آسان مینمایند
این نکته را فراموش نکنید که زبان ماشین برای هر پردازنده مجزا می باشد . به دنبال آن نیز زبان اسمبلی سیپییو ( و نه اسمبلیِ سطح بالا ) نیز برای هر پردازنده جدا می باشد . به غیر از این دو زبان،زبان ، تمامی زبانها،زبانها ، سطح بالا به شمار می روند . مزیت زبانهای سطح پائین این است که شما هیچ گونه محدودیتی در نوشتن برنامه ندارید و از کرنل سیستم عامل گرفته تا برنامه های جانبی،جانبی خدماتی، ، خدماتی ، کاربردی و . . . همه را می توانید بنویسید . اما این نکته مهم،مهم ، همچنان وجود دارد که اگر برنامه ای را بخواهید برای ماشین های مختلف بنویسید باید برای هر کدام از نو برنامه را نوشته و سپس اجرا کنید . از طرفی اگر اشتباهی مرتکب شوید ممکن است به سیستم آسیب وارد کنید . از زبانهای سطح پائین،پائین ، معمولاً فقط در نوشتن میانافزار و کرنل سیستم عامل استفاده میشود و البته تمام کرنل یا سیستم عامل را به زبان اسمبلی نمینویسند؛ بلکه از زبانی نزدیک به اسمبلی مثل سی استفاده میکنند و در داخل کدهای C از کدهای اسمبلی کمک میگیرند ( هرگاه زبان سی پاسخگوی نیاز ما برای ارتباط با سختافزار نباشد )
ربان برنامهنویسی،برنامهنویسی ، زبانی برای نوشتن کدهایی است که در چارچوب خاصی نوشتهبرای میشوندکامپایلر یا مفسر مفهوم دارند ، تا ترجمه آن به زبان ماشین یا کرنل و سیستمعامل ، امکانپذیر باشد و سپس توسط به پیادهساز زبان ( مثلاً کامپایلر Compiler ) به زبان ماشین یا زبان سیستم عامل ترجمه میشوند و یا توسط مفسر ( interpreter ) بدون ترجمه به زبان ماشین،ماشین ، تفسیر شده و به اجرا در میآیند . هر چه زبان،زبان ، سطح پائینتری داشته باشد،باشد ، در نوشتن برنامه وظیفه بیشتری به شما واگذار میشود و حتی برای نوشتن برنامههای ساده نیز باید مدتهای طولانیتری نسبت به زبانهای سطح بالا کدنویسی کنید ، زبان های سطح بالا،بالا ، زبان هایی هستند که مجموعهای از نیاز های برنامهنویسی را که به صورت متداول در برنامهنوسی به کار میروند را با زبانهای سطح پائین نوشتهاند تا برنامهنویس به راحتی و در کمترین زمان،زمان ، برنامه مورد نیاز خود را بنویسد و بدون نیاز به تغییر کد ( یا با کمترین تغییر در کد ) آن را روی هر ماشینی پیاده سازی نماید . زبان هایی همچون Pascal،Pascal ، ALGOL 68،68 ، Ada و در نهایت زبان C و خانواده آن که شامل Objective-C و ++C می شود و بسیاری از زبان ها که تأثیر گرفته از سی هستند همگی زبان های سطح بالا هستند و زبان هایی همچون COBOL ( کوبول ) یا Python ( پایتون ) زبان های خیلی سطح بالا محسوب می شوند . با نوشتن برنامه،برنامه ، شما این قابلیت را به رایانه می دهید تا کارهای مورد نیاز یا مد نظر شما را به صورت روتین انجام دهد
زبانهای برنامهنویسی با کمک دستورها،دستورها ، عملگرها و دادهها،دادهها ، امکاناتی را نظیر پردازش بر روی اعداد،اعداد ، حروف و متون،متون ، برقراری ارتباط با سخت افزار و ارتباط با ورودیها و خروجیهای سیستم را فراهم می نمایند . ضمن اینکه خطاخطاهایی که خارج از استاندارد هستند ، در زبان های سطح بالا توسط مجموعه برنامههای پیادهساز رفعجلوگیری میمیشود گرددتا رفع اشکال و به عبارتی Debug (شوند رفع، اشکالهمچنین )زبانهای میشود.سطح بالا مثل C ، برنامه دیباگر Debugger دارند تا مرحله به مرحله و نحوه ارزیابی و اجرای برنامه را از ابتدا تا انتهای برنامه نوشته شده شما را به شما نشان دهد