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

محتوای حذف‌شده محتوای افزوده‌شده
صفحه‌ای تازه حاوی «همان طور که گفتیم زبان های برنامه نویسی به سه دسته سطح پائین ، سطح بالا و خیلی...» ایجاد کرد
 
جزبدون خلاصۀ ویرایش
خط ۱:
همان طور که گفتیم زبان های برنامه نویسی به سه دسته سطح پائین ، سطح بالا و خیلی سطح بالا تقسیم می شوند . زبان های سطح پائین به زبان ماشین و زبان اسمبلی تقسیم می شوند و زبان اسمبلی نیز خود به دو سطح پائین ( اصلی ) و بالا تقسیم بندی میشود .
 
زبان های سطح بالا ، بی شمار هستند اما بر اساس خصیصه های مختلفی شناسایی می شوند . زبان های '''دستورگرا''' یا خط-به-خط یا بهتر بگوئیم : کد-به-کد ، زبان هایی هستند که از اسمبلی الگو گرفته و هر کدی که نوشته شده را خط به خط و کد به کد ، دستور می دهند که در نهایت اجرا خواهد شد . درست در خلاف جهت زبان های دستوری ، زبان های '''موضوعی''' یا هدف گرا هستند که طی آن ، شما آن چه را که قرار است به عنوان خروجی صادر شود برای کامپایلر شرح می دهید ، کامپایلر ابتدا کل متن شما را میخواند و سپسس خروجی مورد نظر شما پ را صادر می کند . خصیصه های دیگری نیز در زبان های برنامه نویسی وجود دارددارند ، همچون ساختار گرایی که کدها را داخل بلوک ها می نویسید تا بتوانید آنها را از یک دیگر متمایز کرده و هر کدام را هر موقع که خواستید به کار بگیرید ( زبان C ساختار گراست ) یا مثلاً شیئ گرایی ، یکی دیگر از قابلیت های برنامه نویسی است که زبان سی شیئ گرا Objective-C را شامل می شود ، اما نه زبان سی را ؛ زبان شیئ گرا زبانیست که بخشی هایی از برنامه به صورت جدا از یکدیگر می توانند نوشته شوند ، اما بعد از نوشته شدن می توان آنها در در کنار یکدیگر قرار داد تا با هم اجرا شوند و از کد نویسی اضافه جلوگیری می شود . می توان گفت که تمام خصلت هایی که برای برنامه نویسی های سطح بالا شمرده می شود تنها کمک به راحت تر نوشته شدن ( و البته فهم آسان تر آن برای برنامه نویس ) و صرفه جویی در وقت است .
هر برنامه ای که با زبان سطح بالا نوشته شود را می توان با زبان سطح پائین نیز نوشت ، اما هر برنامه ای که در زبان سطح پائین نوشته شده را نمی توان در زبان سطح بالا نوشت . اما وقتی زبان ها در سطح هم هستند به احتمال زیاد می توان آنها را به یکدیگر ترجمه نمود . شاید از عبارت ترجمه کمی تعجب کرده باشید ، بله ؛ زبان های برنامه نویسی را می توان توسط مبدل ها به یکدیگر ترجمه نمود . اما از آنجایی که ما در این کتاب قصد داریم تنها با زبان C کار کنیم به همین زبان می پردازیم ، جز اینکه در فصل ابتدایی مقدماتی را برای مبتدیان می نویسیم تا آماده یاد گیری زبان C شده باشند .
 
چند بار از کلمه کامپایلر استفاده نمودیم . یک برنامه در یک فایل متنی با پیشوند متناسب زبان خود نوشته و ذخیره می شود و سپس توسط کامپایلر Compiler به کدهای قابل ترجمه تبدیل میشود . در اکثر مواقع ، ما در هنگام برنامه نویسی کدها را در چند فایل متنی می نویسیم . وقتی همه آنها را کامپایل نمودیم ، زمان آن می رسد تا توسط پیوند دهنده یا لینکر Linker به صورت یکپارچه در آورده و یک خروجی قابل اجرا به وجود بیاوریم . در ویندوز حتماً فایل های exe یا dll را دیده اید . همه این برنامه ها توسط زبان های برنامه نویسی نوشته شده و سپس توسط کامپایلر و لینکر تبدیل به برنامه قابل اجرا در آمدهشده اند . همچنین ممکن است شما در برنامه خود خطای مهلک یا خطای فاحش داشته باشید یا خطاهایی که می توانند برنامه شما را نامطلوب نمایند Bug ، در این صورت کامپایلر ، برنامه شما را کامپایل یا ترجمه نخواهد نمود . در اینجا برنامه ای به نام اشکال زدا یا دیباگر Debugger برنامه ای را که شما نوشته اید را میخواند و سپس به شما می گوید که در کدام قسمت های آن اشکال هایی وجود دارند که جلوی کامپایل شدن آن را میگیرند تا آنها را اشکال زدایی یا Debug نمائید . از طرفی ، گاهی اینکه مدام بنویسید و صبر کنید تا برنامه کامپایل و لینک شود و مدام اشکال زدایی کنید وقت گیر باشد ؛ برنامه هایی به نام مفسّر Interpretor وجود دارند که امکان اجرای متن برنامه شما را بدون تبدیل به کد سیستم عامل می دهند و در این صورت به سرعت هر تغییری که بخواهید اعمال می کنید و نتیجه آن را ارزیابی می نمائید .
زبان هایی مثل پرل Perl برای کامپایل شدن تعبیه نشده اند ، از همین روی برنامه هاییهای شبیه به مفسرمفسّر این گونه زبان ها را می خوانند و به اجرا می گذارند و اگر بخواید که از این زبان ها برای نوشتن برنامه خود استفاده کنید باید این شرط برقرار گردد که کاربر برنامه نیز محیط اجزایاجرای کد شما را داشته باشد .
 
زمانی که شما برنامه ای را که نوشته اید با موفقیت به خروجی رساندید ، برنامه شما تحت همان سیستم عاملی که نوشته اید قابل اجرا خواهد بود . بنابراین همان طور که قبلاً نیز گفتیم ، اکثر کامپایلر ها ، تحت سیستم عامل هستند و متن برنامه شما را به 0 و 1 ماشین تبدیل نمی کنند ، بلکه به کد های تحت سیستم عامل ترجمه می کنند تا در همان سیستم عامل ، مثلاً ویندوز اجرا گردند . بنابراین فایل های exe را سیستم عامل های مک Mac OS X به رسمیت نمی شناسند و ویندوز Microsoft Windows نیز فایل های dmg را به اجرا در نمی آورد .
 
اما از این محدودیت که بگذریم ، سیستم عامل ها ، امکانات زیادی در جهت سهولت در ایجاد برنامه فراهم می کندکنند که همواره در حال به روز شدن استهستند ؛ به همین علت است که یک برنامه در ویندوز ایکس پی Windows XP اجرا می شود اما در ویندوز ۷ نه ؛ چون برنامه نویس ها برای کم شدن حجم برنامه خود و آسان تر شدن برنامه نویسی از منابع سیستم عامل استفاده می کنند که این منابع ، خود یا دستور هایی که می گیرند و می دهند در هر به روز رسانی مایکروسافت تغییر می کنند . گرچه سازمان های فناوری رایانه و الکترونیک در تلاش هستند تا استانداردهایی را ایجاد کنند که مورد حمایت کمپانی های بزرگ همچون مایکروسافت ، اپل مکینتاش ، آی بی ام و ... برای سیستم عامل ها و از طرفی دیگر ارائه کنندگان کامپایلر ها ، قرار گیرد تا در نهایت ، برنامه نویس با سهولت هر چه تمام تر بعد از نوشتن برنامه خود آن را در تمام سیستم ها بدون ایراد کامپایل کند و خروجی خود را عرضه نماید .
بیان این نکته نیز خالی از لطف نیست که عبارت '''به کار گیرنده''' به مجموع کامپایلر ، لینکر ، دیباگر و مفسر گفته میشود .