Высокоуровневые методы информатики и программирования. Тузовский А.Ф. - 9 стр.

UptoLike

Составители: 

9
выполнить операторы, обращающиеся к участкам оперативной памяти,
к которым у приложения нет разрешения на доступ.
Помимо устранения наиболее распространенных ошибок, влияю-
щих на приложения, процедура верификации кода значительно затруд-
няет написание вредоносных программ, пытающихся нарушить работу
операционной системы.
Среда CLR также может организовать выполнение нескольких
приложений внутри одного процесса, в результате разделения процесса
на домены приложений (application domains), которые полностью изо-
лированы друг от друга. Среда CLR следит за использованием опера-
тивной памяти. Если участки оперативной памяти, выделяемые управ-
ляемым кодом, уже не используются (на них нет ссылок в программе),
то они автоматически освобождаются сборщиком мусора. В результате
этого, разработчик может выделять оперативную память создавать но-
вые объекты, и не заботиться об ее освобождении за него это делает
CLR. Благодаря сборщику мусора, в управляемых приложениях не бы-
вает проблем «утечки памяти».
1.3. Языки программирования
Так как управляемые приложения, разработанные в платформе
.Net, компилируется не в команды процессора (настоящие машинные
инструкции), а в промежуточный код на языке CIL, то и выбор языка
программирования становится практически вопросом личных предпоч-
тений. Термин «общеязыковая» в словосочетании "общеязыковая ис-
полняющая среда" указывает на то, что CLR безразлична к языку про-
граммирования. Независимо от языка, на котором написаны управляе-
мые приложения, они используют один и тот же интерфейс прикладно-
го программирования (Application Program Interface, API): библиотеку
классов .NET Framework FCL.
Microsoft поставляет компиляторы создающие модули на проме-
жуточном языке CIL для четырех исходных языков программирования:
С#, C++, Visual Basic и JScript. В .NET Framework Software Development
Kit (SDK) входит и сам ассемблер CIL ILASM, так что при желании
можно писать приложения непосредственно на языке CIL. Разные ком-
пании поставляют компиляторы для других языков, включая Perl,
Python, Eiffel и даже COBOL.
1.3.1. Управляемые модули
В результате обработки программы компилятором С#, Visual Ba-
sic .NET или любым другим компилятором способным генерировать
CIL, получается управляемый модуль (managed module), т. е. просто ис-
полняемый файл, предназначенный для выполнения под управлением