بایتکد
بایتکد یک شکل از مجموعه دستورالعمل میباشد که برای اجرای کارآمد توسط مفسر طراحی گشتهاست. آنها برعکس کد منبع که برای انسان قابل خواندنند، کدهای عددی فشرده، ثابتها و ارجاعاتی (معمولا آدرسهای عددی) هستند که نتیجه تجزیهکننده و تحلیلگر معنایی از چیزهایی مانند نوع، دامنه، عمق تودرتو از اشیای برنامه را کد میکنند.
اجرای برنامه |
---|
مفاهیم عمومی |
انواع کد |
راهبردهای کامپایل |
|
زمان اجرای قابل ذکر |
|
کامپایلرها و زنجیرابزارهای قابل ذکر |
استفاده از آنها به جای کد منبع به مفسر اجازه میدهد عملکرد بهتری داشته باشد.
نام بایتکد از مجموعه دستورالعملها که آپکد یک بایتی که با پارامترهای اختیاری دنبال میشوند دارند، ریشه میگیرد. نمایشهای سطح متوسطی مانند بایتکد احتمالا خروجی زیانهای برنامهنویسی اند یا برای کاهش وابستگی به سختافزار یا سیستمعامل با اجازه دادن اجرای یک کد بر روی بسترهای نرمافزاری متفاوت استفاده میگردند. بایتکدها اغلب ممکن است بر روی ماشین مجازی اجرا گردند یا برای اجرای بهتر به زبان ماشین کامپایل گردند.
از آنجایی که دستورالعملهای بایتکد توسط نرمافزار پردازش میشوند، پردازش ممکن است دلبخواه گردد اما با این وجود اغلب وابسته به دستورالعملهای سختافزار هستند. ماشین پشتهای مجازی معروفترین آنهااند. ماشین ثبات مجازی نیز ساخته گشتهاند. بخشهای مختلف ممکن است در بخشهای مختلف ذخیره گردند؛ اما به صورت پویا همگی بارگذاری خواهند گشت.
اجرا
یک برنامه بایتکد ممکن است توسط تجزیه و اجرای مستقیم دستورالعملها در یک زمان اجرا گردد. بعضی سامانهها که ترجمهگرهای پویا نام دارند (به انگلیسی: dynamic translator) در زمان اجرا هر وقت لازم بود بایتکد را به زبان ماشین ترجمه میکند، این باعث که ماشین مجازی متناسب با سختافزار باشد اما این خللی به جابهجا پذیر بودن بایتکد نمیزند. برای مثال کدهای جاوا بهطور معمول به فرمت بایت کد ذخیره میگردند، بعد قبل اجرا به زبان ماشین ترجمه میگردد، این کار سرعت اجرا را بهطور قابل توجه نسبت به تفسیر مستقیم از کد منبع افزایش میدهد.
به خاطر مزایای این کار امروزه بیشتر پیادهسازی زبانها در دو مرحله صورت میگیرد، ابتدا کد منبع به بایتکد ترجمه سپس با ماشین مجازی اجرا میشود
منابع
- مشارکتکنندگان ویکیپدیا. «Bytecode». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۱۷ دسامبر ۲۰۱۳.