زمان کامپایل
در علوم رایانه، زمان کامپایل (به انگلیسی: Compile time) ممکن است به چهار مورد اشاره کند[۱]:
- به عملیات انجامشده توسط کامپایلر (که به آن عملیات زمان کامپایل گفته میشود)[۱].
- نیازمندی زبان برنامهنویسی که باید توسط کد منبع برآورده شود، برای آنکه بهصورت موفقیتآمیز کامپایل شود (که به آن نیازمندیهای زمان کامپایل گفته میشود)[۱].
- ویژگیهای برنامه، که در مدت کامپایل در مورد آن بحث میشود[۱].
- یا زمان کامپایل بهمدت زمانی اشاره دارد که در آن کد برنامهنویسی به کد ماشین تبدیل میشود (مثلا کد دودویی) و معمولاً قبل از زمان اجرا رخ میدهد[۱].
توضیحات
ویرایش- عملیاتی که در زمان کامپایل انجام میشود معمولاً شامل: تحلیل نحوی، انواع مختلفی از تحلیل معنایی (مثلاً بررسی نوع و نمونه برداری از الگو) و تولید کد[۱].
- تعاریف زبانهای برنامهنویسی معمولاً نیازمندیهای زمان کامپایل را که کد منبع باید برآورده نماید تا بهصورت موفقیتآمیز کامپایل گردد، را مشخص میکند. برای مثال، زبان میتواند قید کند که مقدار حافظهٔ مورد نیاز انواع و متغیرها میتواند کمینه گردد[۱].
- ویژگیهای برنامه که میتوان در زمان کامپایل در مورد آنها بحث کرد، شامل بررسی های محدوده (مثلاً اثبات آنکه یک اندیس آرایه از محدودهٔ آرایه خارج نمیشود)، آزادی بنبستها (deadlock) در زبانهای همزمان، یا زمانبندی (مثلاً اثبات آنکه یک ترتیب از فعالیتهای کدی بیشتر از یک مقدار زمان تخصیصدادهشده نیست)[۱]. زمان کامپایل که قبل از زمان اتصال رخ میدهد (زمانی که خروجی یک یا بیشتر فایل کامپایلشده به همدیگر متصل میگردد) و زمان اجرا (زمانی که یک برنامه اجرا میگردد). در بعضی از زبانهای برنامهنویسی ممکن است نیاز باشد که بعضی از کامپایلها یا اتصالها در زمان اجرا رخ دهد. یک سبک سنگینی بین زمان اجرا و زمان اتصال وجود دارد، از آن جهت که خیلی از عملیات زمان کامپایل میتواند تا زمان اتصال به تعویق بیافتد، بدون وارد آمدن زمان اجرای اضافی[۱].
- «زمان کامپایل» همچنین میتواند بهمیزان زمانی که برای کامپایل نیاز است اشاره کند[۱].