ماشین پشته ای

دانشنامه عمومی

در مهندسی کامپیوتر و پیاده سازی زبان های برنامه نویسی، ماشین پشته ای ( به انگلیسی: Stack machine ) یک کامپیوتر واقعی یا شبیه سازی شده است که به جای استفاده از ثبات های تکی، از یک پشته برای ارزیابی زیردستورها در برنامه استفاده می کند. کامپیوتر پشته ای با مجموعه دستورالعمل هایی که به روش نشانه گذاری لهستانی معکوس ( نشانه گذاری پسوندی ) نوشته شده اند، برنامه نویسی شده است.
جایگزین متداول ماشین پشته ای، ماشین ثبات است که در آن هر دستور به روشنی ثبات مشخصی را نام می برد که از آن برای مقدار عملوندها و نتیجه استفاده کند.
ماشین پشته ای، ثبات ها را با یک پشته پیاده سازی می کند. عملوندهای واحد محاسبه و منطق همواره دو ثبات بالایی موجود در پشته هستند و نتیجهٔ واحد محاسبه و منطق در ثبات بالایی پشته ذخیره می شود. مجموعه دستورالعمل تقریباً تمام عملیات واحد محاسبه و منطق را با نشانه گذاری پسوندی ( روش لهستانی معکوس ) ، که فقط در پشته به کار می آید نه در رجیسترها و سلول های حافظه، پیش می برد.
ماشین های پشته ای از انواع دیگر ماشین ها دستورهای کوتاه تری دارند. اما بارگذاری عملوندها جداگانه صورت می گیرد و بنابراین کد پشته تقریباً به دو برابر دستورالعمل نسبت به کد معادل برای ماشین ثبات نیاز دارد. به طور کلی سایز کد ( از نظر تعداد بایت ) برای ماشین پشته ای کمتر است.
کامپایلرهای برای ماشین پشته ای ساده تر و سریع تر از کامپایلرها برای سایر ماشین ها هستند. تولید کد بسیار جزئی و مستقل از کد اولیه یا کد بعدی است. برای مثال، برای دستور x+y*z+u، درخت معادل به صورت روبرو است:
کد ترجمه شده برای یک ماشین پشته ای ساده فرم زیر را می گیرد:
push x push y push z multiply add push u add به خاطر سادگی، چنین ترجمه هایی به سادگی با روند تجزیه ادغام می شوند. هیچ مدیریت ثباتی نیاز نیست، و هیچ بهینه سازی برای ثابت ها و ارجاع های تکراری به حافظه نه لازم است و نه اجازه داده شده است. آپ کد مشابهی که از پس مورد تکراری مشترک یک عملیت جمع، یا بارگذاری، یا فراخوانی تابع برمی آید، موردهای کلی تری مثل زیردستورهای پیچیده و فراخوانی های تودرتو را هم کنترل می کند.
بعضی از مجموعه دستورالعمل های ماشین پشته ای به منظور اجرای مفسری یک ماشین مجازی هستند، تا اجرای مستقیم سخت افزار. ساخت مفسرها برای ماشین پشته ای مجازی آسان تر است از ساخت آن ها برای ماشین های حافظه به حافظه یا ثبات ها. ماشین های پشته ای همچنین تمایل دارند اشتقاق های کمتری از یک آپ کد داشته باشند.
عکس ماشین پشته ای
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس