Найти в Дзене
.Net Review

Что такое CLR? Нужно ли это знать .Net разработчику?

На собеседовании на позицию .Net разработчика (мобильного, веб, десктоп) часто спрашивают, что такое CLR? И это правильно, потому что если человек знает, как работает технология изнутри, то ему будет проще решать задачи и выбирать лучшее решение. Поэтому ответ - да. Далее описано моё краткое видение CLR на основе книги Рихтера. Критика приветствуется. Что такое CLR? CLR (Common language runtime) — общеязыковая исполняющая среда. Она обеспечивает интеграцию языков и позволяет объектам благодаря стандартному набору типов и метаданным), созданным на одном языке, быть «равноправными гражданами» кода, написанного на другом. Ничего не понятно! Для того, чтобы понять весь процесс работы CLR, необходимо вначале разобраться во всей цепочке понимания кода компьютером. Файл с исходным кодом на языке включенным в список .Net компилируется с помощью компилятора языка (например C# - компилятор C#) в IL (Intermediate Language, промежуточный код). IL/CIL(Common Intermediate Language)/MSIL(Microsof
Оглавление

На собеседовании на позицию .Net разработчика (мобильного, веб, десктоп) часто спрашивают, что такое CLR? И это правильно, потому что если человек знает, как работает технология изнутри, то ему будет проще решать задачи и выбирать лучшее решение. Поэтому ответ - да.

Далее описано моё краткое видение CLR на основе книги Рихтера. Критика приветствуется.

Что такое CLR?

CLR (Common language runtime) — общеязыковая исполняющая среда. Она обеспечивает интеграцию языков и позволяет объектам благодаря стандартному набору типов и метаданным), созданным на одном языке, быть «равноправными гражданами» кода, написанного на другом.

Ничего не понятно!

Источник картинки: https://ru.wikipedia.org/wiki/Common_Language_Runtime
Источник картинки: https://ru.wikipedia.org/wiki/Common_Language_Runtime

Для того, чтобы понять весь процесс работы CLR, необходимо вначале разобраться во всей цепочке понимания кода компьютером.

Файл с исходным кодом на языке включенным в список .Net компилируется с помощью компилятора языка (например C# - компилятор C#) в IL (Intermediate Language, промежуточный код).

IL/CIL(Common Intermediate Language)/MSIL(Microsoft IL) - промежуточный байт код, подготовленный к компилированию в язык assembler, который понимает компьютер.

Нельзя забывать, что для .Net в помощь CLR, передаются метаданные. Метаданные - вспомогательные данные о коде языка. К примеру описание типов данных языка.

Финальная часть!

Остается финишная прямая. Входными данными для CLR являются метаданные и IL код, на выходе готовый код ассемблера. Таким образом работают программы .Net.

Зачем так сложно?

Можно же было сделать компилятор, который сразу бы код языка компилировал к assembler'у.

Тут всё зависит от задачи. .Net тем и славится, что позволяет использовать множество языков вместе. Это возможно благодаря совместимости всех языков в IL. Также код не привязан к архитектуре процессора, все нюансы реализует CLR.

Телеграмм канал: https://t.me/dotnetreview