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