(۱۹ بهمن ۱۳۹۲ ۰۸:۴۴ ب.ظ)hosshah نوشته شده توسط: (19 بهمن ۱۳۹۲ ۰۸:۳۰ ب.ظ)fulgent نوشته شده توسط: کامپایلر A برای اصلاح توصیف کننده در زمان اجرا محاسباتی را انجام می دهد که باعث می شود فضای اشغالی آن از B بیشتر شود.
کامپایلر B در زمان کامپایل به اصلاح توصیف کننده های آرایه می پردازد و همچنین تعداد کد سه آدرسه ی تولید شده توسط کامپایلر B بیشتر از A است. در نتیجه کد تولید شده توسط B در مجموع برای آماده سازی توصیف کننده ی آرایه و ترجمه ی هر ارجاع، زمان بیشتری می گیرد و کد تولید شده A سریع تر است.
تشکر از پاسخت لطف کردی
اما یه سوال: تو صورت سوال گفته کامپایلر A برای اصلاح توصیف کننده آرایه عملیاتی رو انجام میده شما چرا میگی B?
توصیف کننده آرایه رو مسلما جفتشون دارن اما همین که میگه A اصلاحش میکنه به این معنی نیست که حجمشو کم میکنه مثلا؟
من میگم کامپایلر A زمان بیشتری میبره تا کد رو ایجاد کنه یا به عبارتی کامپایلش تموم شه اما کد اجراییش نسبت به B سرعت بیشتری داره 
خواهش می کنم.
کامپایلر A دارای توصیف کننده است ولی کامپایلر B باید در زمان کامپایل (ترجمه) خودش این اصلاح رو انجام بده و فاقد توصیف کننده است.
ببیننید من یه مثال میزنم واسه درک بهتر شاید ربطی به این موضوع شاید نداشته باشه:
شما وقتی توی برنامه حلقه دارید اگر بیاید و به ازا هر بار این کد رو بنویسید یعنی از حالت تکرار خارجش کنید و تماما کد بنویسید چه اتفاقی می افته؟ حجم کد زیاد میشه پس زمان کامپایل بیشتر میشه اما سرعت اجرا افزایش پیدا میکنه.
حالا کامپایلر B توصیف کننده نداره پس باید زمان کامپایل زحمت بیشتری بکشه(یه قابلیت از A کمتر داره) و انگار خودش کد توصیف کننده رو بسازه. اما کامپایلر A توصیف کننده داره پس زمان اجراش سریع تره.