فرهاد خانلری
کارشناس ارشد شبکه مایکروسافت

کامپایلر Roslyn چیست؟ معرفی نسل جدید کامپایلرهای دات نت

نسل جدید کامپایلر های دات نت Roslyn برای سی شارپ و VB (ویژوال بیسیک) است.حتماً میدانید Compiler سی شارپ را با زبان با سی پلاس پلاس نوشته اند به تازگی این کامپایلر رو با خود NET. و زبان محبوب #C بازنویسی کردند و اسم جدیدش رو Roslyn گذاشتند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

کمی بیشتر در مورد بازنویسی این کامپایلر بدانیم :

JIT یا (Just-in-time) بسته به نوع معماری سیستم، native machine instructions را تولید کند به همین علت است که کدهای IL یا (Intermadiate Language) هیچگاه کاری به کار Prosessor ندارند پس بدون توجه به نوع سیستم میتوانند انتقال یابند و در قالب فیال های DLL یا exe بر روی سیستم های 32 یا 64 بیتی اجرا شوند . پس میتوان گفت این JIT است که کدهای ماشین مخصوص به نوع Prossesor جاری رو ایجاد و تولید میکنه .

JIT کامپایلر فعلی دات نت برای تولید سریع کد و نمایش سریع برنامه‌های دات نت طراحی شده‌است ولی این موضوع ربطی به بهینه سازی در این عملیات ندارد پس میتوان گفت تولید این کد ها میتواند بهینه نباشد ، در برنامه‌های سمت Server اهمیتی ندارد که زمان start up یک وب چه اندازه است زیرا در طول دوره Run بودن برنامه Web تا Restart شدن آن فقط یک بار اجرا میشود و از طرفی اکثر سرور های امروزی 64بیتی هستند که میتوان گفت زمانی که کد ها از سمت این کامپایلر تولید میشوند سرعت برنامه ها 30% بهبود یافته است.

کامپایلر فعلی سی‌شارپ یا csc.exe یک naitive windows استکه به صورت exe بود قوی بود ولی خیلی متد های پر کاربردی را در اختیار برنامه نویسان قرار نمیداد پس با بازنویسی آن توسط #C کدی با کیفیت بهتر و قابلیت نگهداری بیشتر روندی را طی کردند که در آینده میتوانند قابلیت‌های بیشتری را به صورت هرچه سریعتر به زبان‌های NET. ای اضافه کنند. با این کار انجام کارهای AOP در دات نت ساده‌تر از قبل خواهد شد و البته یکی از مواردی که مورد بحث هست در مورد آینده زبان‌های تحت دات نت، meta programming است که Roslyn زیرساخت افزودن این امکانات را در آینده خواهد داشت

در حال حاضر تمام اطلاعات و امکانات کامپایلر قبلی native سی شارپ غیر قابل دسترس است و نهایت کاری که میتوان انجام داد یک مسیر به فایل cs است و در نهایت گرفتن یک خروجی از آن ولی در Roslyn، امکان دسترسی به تمام اجزای یک Compiler واقعی را توسط یک سری API عمومی، برای برنامه نویس‌های NET. میسر می‌کند.اما از نظر زمان باید بگویم این JIT هست که بر روی سرعت اجرایی برنامه تاثیر دارد و کامپایلر فقط فاز اول این داستان را به عهده دارد.


فرهاد خانلری
فرهاد خانلری

کارشناس ارشد شبکه مایکروسافت

فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...

نظرات