سی پلاس پلاس در درجه اول یک زبان کامپایل شده است
قبل از اجرای آن ، یک برنامه کامل در C ++ باید "ساخته شود" ، یعنی توسط برنامه ای به نام کامپایلر به دستورالعمل های بومی ماشین هدف ترجمه شده و توسط برنامه ای به نام linker با کتابخانه های خارجی از قبل کامپایل شده پیوند داده شود. کامپایلرهای با کیفیت بالا بهینه سازی گسترده کد محلی و جهانی را انجام می دهند و کدهایی بسیار کارآمد و جمع و جور تولید می کنند. برنامه های کامپایل شده برای اجرای در برنامه های کامپیوتری نیازی به محیط های اضافی برای زمان اجرا ندارند. این را با زبانهای تفسیر شده ، مانند پایتون ، یا زبانهایی که معمولاً به عنوان کد واسطه مستقل از سیستم عامل ، مانند جاوا ، وارد و به کاربران تحویل می شوند مقایسه کنید. کد پایتون برای اجرا به یک مفسر پایتون نیاز دارد و برنامه هایی که در کد بایت جاوا جاوا قرار می گیرند برای ترجمه کد میانی به دستورالعمل های ماشین میزبان در زمان اجرا به یک محیط زمان اجرا جاوا نیاز دارند. کامپایل کردن یک برنامه بزرگ C ++ می تواند زمان قابل توجهی طول بکشد ، زیرا هر خط از کد منبع آن باید توسط کامپایلر پردازش شود ، بدون توجه به اینکه آیا در طول فراخوانی برنامه واقعاً اجرا می شود یا خیر. این چرخه توسعه را کند می کند ، اما به طور معمول کد قابل اطمینان تری را به دنبال دارد ، زیرا کامپایلر می تواند در زمان کامپایل خطاهای زیادی را بدست آورد ، بنابراین از تعجب "خطای زمان اجرا" ناخوشایند برای زبانهای تفسیر شده مانند پایتون جلوگیری می کند. نکته منفی دیگر زبان کامپایلر این است که فایلهای اجرایی تولید شده توسط یک کامپایلر از کد منبع قابل حمل نیستند و فقط روی سیستم عامل مورد نظر (یعنی سخت افزار به علاوه سیستم عامل) که برای آن کامپایل شده اند اجرا می شوند یا باینری سیستم عامل سازگار هنگام نوشتن کد C ++ ، تعیین گزینه های کامپایلر و انتخاب کتابخانه های کد برای ایجاد ارتباط با نیازهای خاص سازگاری باینری ، باید توجه ویژه ای داشته باشید (برای مثال ، به مقاله Wikipedia در مورد سازگاری دودویی [19] و Red Hat Enterprise Linux 7: سازگاری برنامه مراجعه کنید) فقط راهنمای [20] باشید تا ایده ای در مورد مسئله سازگاری باینری پیچیده بدست آورید). برای اینکه برنامه یا کتابخانه C ++ را به یک سیستم عامل دیگر منتقل کنید ، کد منبع باید به طور خاص برای آن سیستم عامل دوباره جمع آوری شود. از آنجا که امروزه کامپایلرهای C ++ برای همه سیستم عاملهای بزرگ رایانه ای و سیستم عامل ها وجود دارد ، به طور کلی ، کد منبع C ++ بسیار قابل حمل است. با این حال ، برنامه های پیچیده ای که با استفاده از C ++ با استفاده از ویژگی های زبانی غیر استاندارد یا ضعیف پشتیبانی می شوند یا وابستگی به کتابخانه های کدی دارند که به طور گسترده ای منتقل نشده اند ، یا با تکیه بر ویژگی های خاص دستگاه یا سیستم عامل ، مانند مثال اندازه ماشین کلمه ، بایت سفارش ، یا پشتیبانی از دستورالعمل های خاص CPU ، حمل و نقل بسیار دشوار است و ممکن است نیاز به ایجاد تغییراتی در سطح کد توسط یک برنامه نویس با تجربه C ++ داشته باشد. یک ابزار آنلاین بسیار مفید به نام Compiler Explorer [21] وجود دارد که می تواند تکه های برنامه ها را در بسیاری از زبان های برنامه نویسی از جمله C ++ با کامپایلرها و گزینه های مختلف به صورت تعاملی گردآوری کرده و خروجی کد ماشین را تجسم کند. این باعث می شود که این یک ابزار آموزشی عالی باشد که می تواند از بهینه سازی کد سطح پایین نیز استفاده شود.
لازم به ذکر است که استاندارد زبان C ++ تجویز نمی کند که برنامه ای در C ++ ابتدا باید قبل از اجرا به طور کامل در یک فایل اجرایی حاوی دستورالعمل های ماشین پلت فرم هدف گردآوری شود. مترجم های C ++ که اجازه اجرای کد C ++ را در حالت تفسیر شده و / یا حالت تعاملی به صورت خط به خط را می دهند (به عنوان مثال Cling [22]) وجود دارد ، اما ماهیت زبان ، به ویژه تایپ ایستا ، وجود دارد به خوبی با حالت اجرای تعاملی حلقه خواندن-ارزیابی-چاپ-حلقه (REFL) بازی نمی کند ، بنابراین مفسران C ++ ابزارهای تخصصی بسیار خوبی برای نمونه سازی سریع و توسعه کامپایلر هستند.
C ++ ضروری است
برنامه ریزی ضروری یک الگوی برنامه نویسی است که در آن یک برنامه شامل عباراتی (یا دستورات به کامپیوتر) است که وضعیت برنامه را تغییر می دهد. برنامه نویسی ضروری بر توصیف نحوه کار یک برنامه متمرکز است و کد اجباری نقشه کد ماشین را بومی کامپیوتر می زند. در سطح پایین ، حالت برنامه با محتویات حافظه تعریف می شود و دستورالعمل های موجود در زبان ماشین بومی رایانه ، سخت افزار نحوه تغییر داده در حافظه را تجویز می کند. زبانهای ضروری سطح بالاتر دستورالعملهای خاص پلت فرم را از بین می برند ، به عنوان مثال ، از متغیرها به جای مکان های حافظه و عبارات نوشته شده در علامت های قابل خواندن توسط انسان به جای کدهای دستورالعمل استفاده می کنند ، اما هنوز از همان الگو پیروی می کنند.
https://jcheminf.biomedcentral.com/articles/10.1186/s13321-020-0415-y
:: برچسبها:
برنامه نویسی ,
کودکان ونوجوانان ,
:: بازدید از این مطلب : 1104
|
امتیاز مطلب : 4
|
تعداد امتیازدهندگان : 1
|
مجموع امتیاز : 1