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

محتوای حذف‌شده محتوای افزوده‌شده
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۱:
{{سرص|زبان برنامه نویسی سی|زبان برنامه نویسی سی/آشنایی با زبان های برنامه نویسی}}
امروزه بیشتر امور ، به صورت خودکار انجام می‌شوند . بعد از انقلاب رنسانس و صنعتی در اروپا ، جهان به سمت ماشینی و روتین شدن پیش رفت . اما علم الکترونیک باعث شد تا کارها با دقت و کلیت و سرعت بیشتری انجام پذیرند . اختراع ترانزیستورها و در نهایت مدار های میکروسکوپی و کوانتومی ، منجر به پیشرفت چشمگیر علم الکترونیک شد و در نهایت اختراع کامپیوتر یا همان رایانه اختراع شد و پا به عرصه وجود گذاشت . رایانه برخلاف دستگاه‌های الکترونیکی دیگر ، قابل برنامه‌ریزی است . اما این برنامه‌ریزی در ابتدا با ورق‌هایی پر از حفره انجام میشد که می توانستمی‌توانست به پردازشگر بفهماند که باید چه کاری انجام دهد ( به این ورقه‌ها punch card گفته می‌شد )
 
برخلاف یک دستگاه دی‌وی‌دی که تنها می‌تواند کارهایی را که از پیش برای آن در نظر گرفته شده انجام دهد ؛ یک رایانه که امروزامروزه شامل تبلت‌ها و گوشی‌های همراه هوشمند و بسیاری دیگر از دستگاه‌های الکترونیکی دیگر می‌شود می‌تواند مدام برنامه‌های مختلفی را دریافت کند و بر اساس آنها عمل کند . همان طور که گفته شد در ابتدای امر ، کار برنامه دادن به رایانه ، بسیار مشکل بود ، گرچه کارهایی که در آن زمان انجام می‌شدند آنقدر ساده بودند که به هیچ وجه قابل مقایسه با پردازش‌هایی که رایانه‌ها و برنامه‌های امروزی انجام می‌دهند قابل مقایسه نیستند . اما این حفره ها به مثابه 0 و 1 بودند !
اما 0 و 1 چیستند ؟
رایانه ، یک دستگاه دیجیتالی است ؛ بر خلاف دستگاه‌های الکترونیکیِ قدیمی که آنالوگ بودند و سیگنال‌ها از طریق موج‌هایی که بر روی جریان الکتریکی ایجاد می‌شدند ، رفت و آمد می‌کردند ؛ در دستگاه‌های الکترونیکی دیجیتالی ، سیگنال‌ها با قطع و وصلِ جریان ، رفت و آمد می‌کنند . وجود جریان نماینده عدد ۱ و عدم وجود جریان نماینده عدد ۰ می‌باشند و بدین‌ترتیب با جریان الکتریکی که مرتب قطع-و-وصل می‌شود که تحت استانداردها و پروتکل‌های الکترونیکی است ، سیگنال‌ها رفت و آمد می‌کنند ( سیگنال به معنی پیام است که در علوم برق و الکترونیک به جریان الکتریکی یا امواج الکترومغناطیسی‌ای گفته می‌شود که دارای معنای خاصی باشد ). بنابراین زبان واقعی ماشین و از جمله رایانه یا کامپیوتر ، زبان 0 و 1 می باشد که جهت سهولت در کار ، سیگنال ها را که همان 0 و 1 می باشند و در مبنای ۲ هستند ( دودویی ) به مبناهای دیگری همچون ۴ ، ۸ ، ۱۰ و ۱۶ تبدیل می نمایند . اما این کار باز هم باعث سهولت مطلوبی نمی گردد . برنامه نویسی به زبان ماشین فوق‌العاده امری دشوار و وقت‌گیر است . اما فراموش نکنید که برای نوشتن هسته ( کرنل ) یک سیستم عامل ( که مجموعه ای از نرم افزارها و میان افزارها جهت مدیریت سخت‌افزار و از طرفی فراهم نمودن محیطی برای ایجاد برنامه می باشد ) یا درایور یک دستگاه الکترونیکی ، مطمئناً باید از زبان‌های سطح پائین استفاده نمائید و با سخت‌افزار ارتباط برقرار نمائید
 
در دهه های دور ، زبانی برای تلفیق با زبان ماشین و سهولت در برنامه‌نویسی ابداع شد که زبان اسمبلی ( Assembly ) نام دارد و هنوز هم به کار می‌رود و این زبان دارای کدهایی می باشد که که هر کد ، نماینده یک عمل پردازنده رایانه ( واحد پردازشگر مرکزی Central Processing Unit - CPU ) می باشدمی‌باشد و بدین ترتیب کار تا حدی آسان شد . بعد از گذشت زمان ، مهندسین دانش رایانه زبان های بسیار زیادی را ارائه کردند که همگی جزء زبان های سطح بالا ( زبان‌های نزدیک به زبان و فهم انسان ) به شمار می‌روند و کار نوشتن برنامه و برنامه دادن به رایانه را تا حد زیادی آسان می‌نمایند
 
این نکته را فراموش نکنید که زبان ماشین برای هر پردازنده مجزا می باشد . به دنبال آن نیز زبان اسمبلی سی‌پی‌یو ( و نه اسمبلیِ سطح بالا ) نیز برای هر پردازنده جدا می باشد . به غیر از این دو زبان ، تمامی زبان‌ها ، سطح بالا به شمار می روند . مزیت زبان‌های سطح پائین این است که شما هیچ گونه محدودیتی در نوشتن برنامه ندارید و از کرنل سیستم عامل گرفته تا برنامه های جانبی ، خدماتی ، کاربردی و ... همه را می توانید بنویسید . اما این نکته مهم ، همچنان وجود دارد که اگر برنامه ای را بخواهید برای ماشین های مختلف بنویسید باید برای هر کدام از نو برنامه را نوشته و سپس اجرا کنید . از طرفی اگر اشتباهی مرتکب شوید ممکن است به سیستم آسیب وارد کنید . از زبان‌های سطح پائین ، معمولاً فقط در نوشتن میان‌افزار و کرنل سیستم عامل استفاده می‌شود و البته تمام کرنل یا سیستم عامل را به زبان اسمبلی نمی‌نویسند ؛ بلکه از زبانی نزدیک به اسمبلی مثل سی استفاده می‌کنند و در داخل کدهای C از کدهای اسمبلی کمک می‌گیرند ( هرگاه زبان سی پاسخگوی نیاز ما برای ارتباط با سخت‌افزار نباشد )