آموزش حل مسئله با C++ – کامپایلر، پیوند دهنده، الگوریتم و چارلز بابیج ، آدا آگوستا

کامپایلر

کامپایلر برنامه ای است که یک برنامه زبان سطح بالا ، مانند برنامه C ++ را به یک برنامه زبان ماشین تبدیل می کند که کامپیوتر می تواند به طور مستقیم درک و اجرا کند.

فرایند کامل ترجمه و اجرای برنامه C ++ کمی پیچیده تر از چیزی است که در Display 1.4 نشان می دهیم. هر برنامه ++ C که می نویسید از برخی عملیات (مانند روال ورودی و خروجی) که قبلاً برای شما برنامه ریزی شده است ، استفاده خواهد کرد. این مواردی که قبلاً برای شما برنامه ریزی شده اند (مانند روالهای ورودی و خروجی) قبلاً کامپایل شده اند و کد شیء آنها منتظر ترکیب شدن با کد شی برنامه شما برای ایجاد یک برنامه کامل به زبان ماشین است که می تواند بر روی کامپیوتر اجرا شود. یک برنامه دیگر ، به نام linker ، کد شیء این قطعات برنامه را با کد شیئی که کامپایلر از برنامه C ++ شما تولید کرده است ، ترکیب می کند. تعامل کامپایلر و پیوند دهنده در Display 1.5 نمودار شده است. در موارد معمول ، بسیاری از سیستم ها این پیوند را به صورت خودکار برای شما انجام می دهند. بنابراین ، ممکن است در بسیاری از موارد نگران پیوند دادن نباشید.

پیوند دهنده

کد شیء یا آبجکت کد برای برنامه C ++ شما باید با کد شیء برای روالها (مانند روالهای ورودی و خروجی) که برنامه شما استفاده می کند ترکیب شود. این فرایند ترکیب کد شیء را لینکینگ می گویند و توسط برنامه ای به نام linker انجام می شود. برای برنامه های ساده ، پیوند ممکن است به صورت خودکار برای شما انجام شود.

موتور تحلیلی هیچ ادعایی برای ایجاد هر چیزی ندارد.

این می تواند شامل هر کاری را که ما می دانیم چگونه انجام آن را تقاضا دهیم باشد. می تواند تجزیه و تحلیل را انجام دهد ؛ اما هیچ قدرتی برای پیش بینی روابط تحلیلی یا حقایق ندارد. به ما کمک می کند تا آنچه را که قبلاً با آن آشنا هستیم در دسترس قرار دهیم.

الگوریتم ها

هنگام یادگیری اولین زبان برنامه نویسی خود ، به راحتی می توان این تصور را به دست آورد که قسمت سخت حل یک مشکل در رایانه ، ترجمه ایده های شما به زبان خاصی است که در رایانه تغذیه می شود. قطعاً اینطور نیست. دشوارترین بخش حل یک مشکل در رایانه ، کشف روش حل است. پس از ارائه روش حل ، معمول است که روش خود را به زبان مورد نیاز ، اعم از C ++ یا برخی از زبان های برنامه نویسی دیگر ، ترجمه کنید. بنابراین نادیده گرفتن موقت زبان برنامه نویسی و تمرکز بر روی تدوین مراحل راه حل و نوشتن آنها به زبان انگلیسی یا فارسی ساده مفید است ، مانند اینکه دستورالعمل ها به جای رایانه به انسان داده شود. دنباله ای از دستورالعمل های بیان شده به این ترتیب اغلب به عنوان الگوریتم یا شبه کد نامیده می شوند.

دنباله ای از دستورالعمل های دقیق که منجر به حل می شود ، الگوریتم نامیده می شود. برخی از کلمات تقریباً معادل دستور ، روش ، دستورالعمل ، روش و روال معمول است. دستورالعمل ها ممکن است به زبان برنامه نویسی یا زبان انسانی بیان شوند. الگوریتم های ما به زبان انگلیسی و به زبان برنامه نویسی C ++ بیان می شود. یک برنامه کامپیوتری به سادگی یک الگوریتم است که به زبانی قابل درک است که رایانه می تواند درک کند. بنابراین ، اصطلاح الگوریتم کلی تر از اصطلاح برنامه است.

با این حال ، وقتی می گوییم دنباله ای از دستورالعمل ها یک الگوریتم است ، معمولاً منظور ما این است که دستورالعمل ها به زبان انگلیسی بیان می شوند ، زیرا اگر آنها در یک زبان برنامه نویسی بیان شده باشند ، از واژه خاص تر برنامه استفاده می کنیم. یک مثال ممکن است به روشن شدن مفهوم کمک کند.

صفحه نمایش 1.6 شامل الگوریتمی است که به زبان انگلیسی بیان شده است. این الگوریتم تعداد دفعاتی را که یک نام مشخص روی لیستی از نام ها قرار می گیرد ، تعیین می کند.

اگر این لیست شامل برندگان هر یک از بازی های فوتبال فصل گذشته است و نام تیم مورد علاقه شما است ، الگوریتم تعیین می کند که تیم شما چند بازی برنده شده است. الگوریتم کوتاه و ساده است. بسیار الگوریتم های معمولی هستند که ما با آنها سر و کار داریم.

یادداشت تاریخ

چارلز بابیج ، آدا آگوستا

اولین کامپیوتر واقعاً قابل برنامه ریزی توسط چارلز بابیج ، ریاضیدان و دانشمند فیزیک انگلیسی طراحی شد. بیبیج این پروژه را پیش از سال 1822 آغاز کرد و تا پایان عمر روی آن کار کرد. اگرچه او هرگز ساخت ماشین خود را تکمیل نکرد ، اما این طراحی یک نقطه عطف مفهومی در تاریخ محاسبات بود. بیشتر آنچه درباره چارلز بابیج و طراحی رایانه اش می دانیم از نوشته های همکارش آدا آگوستا ، کنتس لاولیس و دختر شاعر بایرون ناشی می شود. اغلب به آدا آگوستا عنوان اولین برنامه نویس رایانه داده می شود. نظرات او ، که در ابتدای این بخش نقل شده است ، هنوز در مورد حل مشکلات روی رایانه کاربرد دارد. رایانه ها جادویی نیستند و حداقل تا به حال این توانایی را ندارند که راه حل های پیچیده ای را برای همه مشکلاتی که با آن روبرو می شویم تدوین کنند. کامپیوترها به سادگی کاری را انجام می دهند که برنامه نویس به آنها دستور می دهد. راه حل مشکلات توسط کامپیوتر انجام می شود ، اما راه حل ها توسط برنامه نویس فرموله می شود. بحث ما در مورد برنامه نویسی کامپیوتر با بحث در مورد نحوه برنامه نویسی این راه حل ها آغاز می شود.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *