تفاوت بین اسمبلر و کامپایلر

تفاوت بین اسمبلر و کامپایلر
تفاوت بین اسمبلر و کامپایلر

تصویری: تفاوت بین اسمبلر و کامپایلر

تصویری: تفاوت بین اسمبلر و کامپایلر
تصویری: حروف صدادار کوتاه AO و U در انگلیسی آمریکایی 2024, جولای
Anonim

Assembler در مقابل Compiler

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

کامپایلر چیست؟

کامپایلر یک برنامه کامپیوتری است که برنامه ای را که به یک زبان نوشته شده است، که به آن زبان مبدأ می گویند، می خواند و آن را به زبان دیگری که زبان مقصد نامیده می شود، ترجمه می کند. اغلب، زبان مبدأ یک زبان سطح بالا و زبان مقصد یک زبان سطح پایین است. بنابراین، به طور کلی کامپایلرها را می توان مترجمانی دانست که از زبانی به زبان دیگر ترجمه می کنند. علاوه بر این، کامپایلرها برخی بهینه‌سازی‌ها را برای کد انجام می‌دهند. یک کامپایلر معمولی از چندین جزء اصلی تشکیل شده است. اولین مؤلفه اسکنر (همچنین به عنوان تحلیلگر واژگانی شناخته می شود) است. اسکنر برنامه را می خواند و آن را به رشته ای از توکن ها تبدیل می کند. جزء دوم تجزیه کننده است. رشته توکن ها را به درخت تجزیه (یا درخت نحو انتزاعی) تبدیل می کند که ساختار نحوی برنامه را به تصویر می کشد. مؤلفه بعدی روال های معنایی است که معنایی ساختار نحوی را تفسیر می کند. بهینه سازی کد و تولید کد نهایی به دنبال این است.

اسمبلر چیست؟

Assembler نرم افزار یا ابزاری است که زبان اسمبلی را به کد ماشین ترجمه می کند. بنابراین، اسمبلر نوعی کامپایلر است و کد منبع آن به زبان اسمبلی نوشته شده است. اسمبلی یک زبان قابل خواندن برای انسان است اما معمولاً با کد ماشین مربوطه رابطه یک به یک دارد. بنابراین گفته می شود که اسمبلر ترجمه ایزومورفیک (نگاشت یک به یک) را انجام می دهد. اسمبلرهای پیشرفته ویژگی های اضافی را ارائه می دهند که از فرآیندهای توسعه برنامه و اشکال زدایی پشتیبانی می کند. برای مثال، نوع اسمبلرهایی که اسمبلرهای ماکرو نامیده می شوند، تسهیلات ماکرو را فراهم می کنند.

تفاوت بین اسمبلر و کامپایلر چیست؟

کامپایلر یک برنامه کامپیوتری است که یک برنامه نوشته شده به یک زبان را می خواند و آن را به زبان دیگری ترجمه می کند، در حالی که اسمبلر را می توان نوع خاصی از کامپایلر در نظر گرفت که فقط زبان اسمبلی را به کد ماشین ترجمه می کند. کامپایلرها معمولاً کد اجرایی ماشین را مستقیماً از یک زبان سطح بالا تولید می‌کنند، اما اسمبلرها یک کد شی تولید می‌کنند که ممکن است برای اجرا روی ماشین، با استفاده از برنامه‌های پیوند دهنده پیوند داده شود.از آنجایی که زبان اسمبلی نگاشت یک به یک با کد ماشین دارد، ممکن است از اسمبلر برای تولید کدی استفاده شود که برای مواردی که عملکرد بسیار مهم است (برای مثال موتورهای گرافیکی، سیستم‌های تعبیه‌شده با منابع سخت‌افزاری محدود در مقایسه با رایانه شخصی، بسیار کارآمد اجرا می‌شود. مانند مایکروویو، ماشین لباسشویی، و غیره).

توصیه شده: