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

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