تفاوت بین اسمبلر و مترجم

تفاوت بین اسمبلر و مترجم
تفاوت بین اسمبلر و مترجم

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

تصویری: تفاوت بین اسمبلر و مترجم
تصویری: بررسی تفاوت های بین ADSL و VDSL و فیبر نوری 2024, جولای
Anonim

Assembler در مقابل مترجم

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

اسمبلر چیست؟

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

مترجم چیست؟

مفسر یک برنامه کامپیوتری یا ابزاری است که دستورات برنامه نویسی را اجرا می کند. یک مفسر ممکن است کد منبع را مستقیماً اجرا کند یا منبع را به یک کد میانی تبدیل کند و مستقیماً آن را اجرا کند یا کد از پیش کامپایل شده تولید شده توسط یک کامپایلر را اجرا کند (برخی از سیستم های مفسر شامل یک کامپایلر برای این کار هستند).زبان هایی مانند Perl، Python، MATLAB و Ruby نمونه هایی از زبان های برنامه نویسی هستند که از کد میانی استفاده می کنند. UCSD پاسکال یک کد از پیش کامپایل شده را تفسیر می کند. زبان هایی مانند Java، BASIC و Samlltalk ابتدا منبع را در یک کد میانی به نام bytecode کامپایل می کنند و سپس آن را تفسیر می کنند.

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

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

توصیه شده: