زبان برنامه نویسی سی/آشنایی با زبان های برنامهنویسی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جزبدون خلاصۀ ویرایش |
جزبدون خلاصۀ ویرایش |
||
خط ۱:
{{سرص|زبان برنامه نویسی سی/پیش درآمدی بر برنامه نویسی|زبان برنامه نویسی سی/آشنایی با زبان سی C}}
همان طور که گفتیم
هر برنامهای که با زبان سطح بالا نوشته شود را میتوان با زبان سطح پائین نیز نوشت ، اما هر برنامهای که در زبان سطح پائین نوشته شده را نمیتوان در زبان سطح بالا نوشت . اما وقتی زبانها در سطح هم هستند به احتمال زیاد می توان آنها را به یکدیگر ترجمه نمود . شاید از عبارت ترجمه کمی تعجب کرده باشید ، بله ؛ زبانهای برنامهنویسی را می توان توسط مبدلها به یکدیگر ترجمه نمود . اما از آنجایی که ما در این کتاب قصد داریم تنها با زبان C کار کنیم به همین زبان می پردازیم ، جز اینکه در فصل ابتدایی مقدماتی را برای مبتدیان مینویسیم تا آماده یادگیری زبان C شده باشند
چند بار از کلمه کامپایلر استفاده نمودیم . یک برنامه در زبانهای قابل کامپایل و ترجمه به Binary ماشین و یا codebyte کدبایتهای قابل ترجمه توسط کرنل ، در یک فایل متنی با پسوند متناسب زبان خود نوشته و ذخیره می شود و سپس توسط کامپایلر Compiler به کدهای قابل ترجمه توسط پردازشگر ماشین ( CPU ) که همان 0 و 1 که پیشتر گفته شد و یا کرنل سیستمعامل ( Kernel ) و اجزاء کمکی سیستمعامل و کرنل ( کامپوننتها Components ) تبدیل شده و بر روی حافظه نوشته میشوند . در اکثر مواقع ، ما در هنگام برنامهنویسی کدها را در چند فایل متنی مینویسیم . وقتی همه آنها را کامپایل نمودیم ، زمان آن میرسد تا توسط پیونددهنده یا لینکر Linker به صورت یکپارچه در آورده شده و یک خروجی قابل اجرا به وجود بیاوریم . در ویندوز حتماً فایل های exe یا dll را دیدهاید . همه این برنامهها توسط زبانهای برنامهنویسی نوشته شده و سپس توسط کامپایلر و لینکر تبدیل به برنامه قابل اجرا شدهاند . همچنین ممکن است شما در برنامه خود خطای مهلک یا خطای فاحش داشته باشید ( مثل Fatal Error ها ) یا خطاهایی که می توانند برنامه شما را نامطلوب نمایند Bug ، در صورتی که قوانین استاندارد C را راعایت نکرده باشید ، کامپایلر ، برنامه شما را کامپایل یا ترجمه نخواهد نمود . در اینجا برنامه ای به نام اشکالزدا یا دیباگر Debugger برنامه ای که شما نوشتهاید را میخواند و سپس به شما می گوید که در کدام قسمتهای آن اشکالهایی وجود دارند که جلوی کامپایل شدن آن را میگیرند تا آنها را اشکال زدایی یا Debug نمائید . از طرفی ، گاهی اینکه مدام بنویسید و صبر کنید تا برنامه کامپایل و لینک شود و مدام اشکال زدایی کنید وقت گیر باشد ؛ برنامه هایی به نام مفسّر Interpreter وجود دارند ( البته زبان C دارای دیباگرهای قدرتمندی مثل GDB از GNU و LLDB از پروژه LLVM که از پروژه GNU مشتق شده است میباشد که همانند مفسر عمل میکنند ) که امکان اجرای متن برنامه شما را بدون تبدیل به کد سیستمعامل یا ماشین ، میدهند و در این صورت به سرعت هر تغییری که بخواهید اعمال میکنید و نتیجه آن را ارزیابی مینمائید. .
زمانی که شما برنامهای را که نوشتهاید را با کامپایلر سیستمعامل خود با موفقیت به خروجی رساندید ، برنامه شما تحت همان سیستم عاملی که نوشتهاید قابل اجرا خواهد بود . بنابراین همان طور که قبلاً نیز گفتیم ، بسیاری از کامپایلرها ، تحت سیستمعامل هستند و متن برنامه شما را به 0 و 1 ماشین تبدیل نمی کنند ، بلکه به کد های تحت سیستمعامل ترجمه میکنند تا در همان سیستم عامل ، مثلاً ویندوز اجرا گردند . بنابراین فایل های exe را سیستم عاملهای مکینتاش macOS به رسمیت نمی شناسند و ویندوز Microsoft Windows نیز فایل های dmg را به اجرا در نمی آورد . البته کامپایلرهای قدرتمند زبان C مثل ++Visual Studio C از Microsoft و GCC از GNU قابلیت ترجمه به زبان ماشین را دارند و پروژه GCC ( GNU Compiler Collection ) قابلیت ترجمه برنامه شما به معماریهای مختلف پردازشگرها ( مثل x86 و MIPS و ARM و PowerPC و Sparc و z390 و Itanium و ... ) را برای سیستمعاملهای مختلف سری BSD ، سیستم عاملهای مکینتاش macOS یا iOS ، ویندوز و حتی سولاریس و بسیاری از سیستمعاملهای دیگر را دارد
|