CLR چیست
زمان مطالعه 1 دقیقه
۳ مهر ۱۴۰۰
نویسنده پایدار سامانه
تعداد کامنت 0

CLR چیست؟

CLR که مخفف عبارت Common Language Runtime می باشد یک زبان میانی مشترک بین سیستم عامل و زبان های برنامه نویسی دات نت است. هر برنامه ای که به زبان های موجود در چارچوب دات نت نوشته می شود در ابتدا کامپایلر دات نت آن را به یک زبان میانی که به آن IL مخفف Intermediate Language می گوبند تبدیل می شود که برای تمامی زبان ها و در تمامی سیستم ها مشترک می باشد و CLR آن را متوجه می شود. CLR بعد از آن می تواند توسط یک کامپایلر در لحظه یا Just in Time Compiler این کد ها را با توجه سیستم عامل مورد استفاده ترجمه و آماده اجرا می کند.

 

معماری .NET Framework
معماری .NET Framework

همانطور که تصویر بالا مشاهده میفرمایید بعد از کامپایل زبان برنامه نویسی و تبدیل به کد های IL که زبان مشترکی برای کل زبان های دات نت است، این CLR است که کد های زبان مشترک را به زبان ماشین و قابل فهم برای کامپیوتر تبدیل می کند، یعنی کامپایل در دو مرحله انجام می شود و در تصویر این مراحل به صراحت مشخص هستند.

وظایف CLR

مهمترین بخش کل پلتفرم دات نت CLR است که یک ماشین مجازی به حساب می آید و در یک جمله CLR وظیفه اجرای برنامه را بر عهده دارد، برخی از وظایف مهم CLR بدین شرح می باشد:

  • خواندن اسمبلی ها (Assembly Resolver)
  • بارگذاری و لود اسمبلی ها (Assembly Loader)
  • مدیریت حافظه و Garbage Collection
  • مدیریت خطاها (Exception Manager)
  • مدیریت فرآیند ها (Thread Management)
  • کامپایل کدهای CIL به زبان ماشین (IL to Native compiler)

Garbage Collector

آبجکت ها و اشیائ بلا ستفاده را از فضای حافظه پاک میکند و آن را تمیز می کند و در کل وظیفه مدیریت خودکار حافظه را برعهده دارد

IL to Native compiler

همان موتور JIT compiler است که مخفف Just-in-time Compiler بوده و وظیفه تبدیل کد های IL به کد های خام سیستم عامل و به عبارتی قابل تبدیل به زبان ماشین می کند.

Exception Manager

مدیریت خطا ها و Exception های برنامه را بر عهده این بخش است، پردازش کد های داخل Catch را انجام می دهد و هندل می کند، اگر هم Exception ای تولید شود که داخل Catch نباشد برنامه از حالت اجرا خواهد شد.

اشتراک گذاری در شبکه های اجتماعی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *