هر کدام از فاز هایی که در pipeline کامپایلر تا به قبل یکی بوده اند جدا شده و در کامپنیت های جدا گانه ای قرار گرفته اند.
در فاز اول سورس شکسته شده و سینتکس آن با توجه به اینکه با چه زبانی است پارس می شود.
در فاز دوم که فاز اعلامیه است ،اعلامیه ها و metadata های وارد شده تجزیه و تحلیل می شوند.
فاز بعدی فازی است که شناسه ها با symbols تطبیق داده می شوند.
در آخر هم اطلاعات ساخته شده در داخل اسمبلی گنجانده می شوند.
در فاز اول سورس شکسته شده و سینتکس آن با توجه به اینکه با چه زبانی است پارس می شود.
در فاز دوم که فاز اعلامیه است ،اعلامیه ها و metadata های وارد شده تجزیه و تحلیل می شوند.
فاز بعدی فازی است که شناسه ها با symbols تطبیق داده می شوند.
در آخر هم اطلاعات ساخته شده در داخل اسمبلی گنجانده می شوند.
همانطور که در بالا مشاهده میکنید به ازای هر فازی که توضیج داده شد API متناظرش نیز به وجود آمده که این API ها هر کدام برای گرفتن یک سری از اطلاعات از کامپایلر در رابطه با کد مفید است . لیست کامل آن را در زیر مشاهده می کنید:
نگاهی به Roslyn
همانطور که در این پست اشاره کردم Roslyn نگاهی جدید به کامپایلر است.مایکروسافت کد نوشته شده با C++ را در کامپایلر دات نت با managed code جایگزین و با سی شارپ و ویژوال بیسیک باز نویسی کرده است.حالا بعد از پنح سال Roslyn انتشار یافته آن هم به صورت سورس باز.
کامپایلر ها عموما بسیار پیچیده طراحی شده اند و کوچکترین تغییرات زبانی نیاز به کارهای بسیار زیادی دارد. کامپایلرها در C# و VB از ریشه با هم تفاوت های اساسی داشتند و این باعث بوجود آمدن و پیاده سازی business های پیچیده در IDE و همچنین باعث بروز رفتار های متفاوت درIDE های C# و VB می شد.
مزایای Roslyn چیست؟
سورس باز است.شما می توانید از این جا سورس کدش را مطالعه کنید.
همانطور که در این پست اشاره کردم Roslyn نگاهی جدید به کامپایلر است.مایکروسافت کد نوشته شده با C++ را در کامپایلر دات نت با managed code جایگزین و با سی شارپ و ویژوال بیسیک باز نویسی کرده است.حالا بعد از پنح سال Roslyn انتشار یافته آن هم به صورت سورس باز.
کامپایلر ها عموما بسیار پیچیده طراحی شده اند و کوچکترین تغییرات زبانی نیاز به کارهای بسیار زیادی دارد. کامپایلرها در C# و VB از ریشه با هم تفاوت های اساسی داشتند و این باعث بوجود آمدن و پیاده سازی business های پیچیده در IDE و همچنین باعث بروز رفتار های متفاوت درIDE های C# و VB می شد.
مزایای Roslyn چیست؟
سورس باز است.شما می توانید از این جا سورس کدش را مطالعه کنید.
با مدلی زبانی که بوجود آورده می توان به راحتی یک سری ابزار برای analyze کد نوشت.
می توان یک سری ابزار refactorings و حتی هشدارهای اختصاصی نوشت.
این نکته قابل توجه است که کامپایلر زبان با خود آن زبان نوشته شده است.
البته در این بین واکنش jetbrains هم برای استفاده از Roslyn در ریشارپر جالب بود.که آنها معتقدند که از Roslyn استفاده نکنند.یکی به این دلیل که نوشتن ،تست کردن و پایدار کردن فرایندی زمان گیر است و همچنین آنها ده سال است که روی ریشارپر کار کرده اند.علاوه بر آن معماری که در ریشارپر استفاده شده با Roslyn سازگار نیست.
حالا سوالی که ممکن است برای همه پیش بیاید این است که واقعا کد نوشته شده C++ که بسیار سریعتر است چگونه با کد های C# و VB جایگزین شده اند و آیا از لحاظ سرعت افت کرده اند یا نه.
می توان یک سری ابزار refactorings و حتی هشدارهای اختصاصی نوشت.
این نکته قابل توجه است که کامپایلر زبان با خود آن زبان نوشته شده است.
البته در این بین واکنش jetbrains هم برای استفاده از Roslyn در ریشارپر جالب بود.که آنها معتقدند که از Roslyn استفاده نکنند.یکی به این دلیل که نوشتن ،تست کردن و پایدار کردن فرایندی زمان گیر است و همچنین آنها ده سال است که روی ریشارپر کار کرده اند.علاوه بر آن معماری که در ریشارپر استفاده شده با Roslyn سازگار نیست.
حالا سوالی که ممکن است برای همه پیش بیاید این است که واقعا کد نوشته شده C++ که بسیار سریعتر است چگونه با کد های C# و VB جایگزین شده اند و آیا از لحاظ سرعت افت کرده اند یا نه.
linke channel baraye erjae mataleb:
https://telegram.me/Programminglanguages
https://telegram.me/Programminglanguages