Common Intermediate Language
Когда разработчик пишет программы для Microsoft Windows на C/C++, в результате он получает файл с расширением. exe, то есть файл в формате PE (portable executаble). Файлы в таком формате всегда содержат код, специфичный для процессора, на котором они выполняются. Файлы, созданные в технологии. NET, также имеют расширение. exe и внешне подобны файлам в формате PE. Однако на самом деле внутри они содержат не машинные инструкции процессора, а инструкции некоторого промежуточного языка, который известен под несколькими названиями (аббревиатурами) – Common Intermediate Language (CIL), Microsoft Intermediate Language (MSIL) или просто Intermediate Language (IL) . Этот язык имеет одинаковый формат для любой платформы, на которой выполняется. NET Framework. Окончательная компиляция запускаемого файла в машинные инструкции. NET Framework производится в момент запуска. При этом выполняется оптимизирующая компиляция, то есть компилятор отслеживает вызовы всех методов и компилирует только те методы, которые реально вызываются в программе. Такой способ запуска программ приводит к повышению эффективности потребления ресурсов и называется JIT-compilation . Скомпилированный код помещается в native image cache , что приводит к быстрому повторному обращению к уже вызывавшимся методам.
Common language runtime
Этот общий промежуточный язык, независимый от платформы и являющийся результатом работы разных программных средств, позволяет обеспечивать взаимодействие между программным кодом, написанным на разных языках. Модуль, написанный на одном языке, может быть с легкостью использован программой, написанной на другом языке. К межъязыковой среде выполнения относится и сборщик мусора (garbage collector), который должен следить не только за памятью каждой программы, но и за уборкой памяти. Естественно, автоматическое распределение памяти также относится к области ответственности межъязыковой среды выполнения.
Common Language Specification
Общеязыковая спецификация – это набор стандартов, определяющих основные требования к архитектуре языка, соблюдение которых делают программы, написанные на разных языках «прозрачными» друг для друга. На самом деле, если промежуточный язык один и тот же, среда выполнения одна и та же, то нужна только небольшая синхронизация общих правил, чтобы программа, написанная на одном языке, ничем не отличалась от программы, написанной на другом языке после компиляции обеих программ в IL. А если на уровне IL отличий нет, то значит программы, написанные на одном языке, могут с легкостью использовать модули, написанные на другом языке. Мало того, извечный спор и противостояние языков C и VB в. NET теряет смысл, посколько на уровне IL разница в коде между ними стирается.
Common type system
Общая система типов является основой построения общеязыковой спецификации и определяет типы, которые в обязательном порядке должен поддерживать любой компилятор, совместимый с. NET.
Common Language Infrastructure
Этот набор правил, процедур и низкоуровневых деталей реализации. NET зарегистрирован как открытый стандарт в ECMA. Он предназначен для создания компиляторов, средств разработки программ и отладки любыми разработчиками, желающими создавать подобные инструменты для. NET.
NET Compact Framework это подмножество полной версии. NET Framework, которое предоставляет программисту большинство возможностей, присутствующих в полной версии для настольных и серверных машин. К этим возможностям относятся межъязыковая среда выполнения, JIT-компиляция, защита кода и управление памятью при помощи сборщика мусора. Также в. NET CF разработчик может использовать Windows Forms, средства доступа к данным, XML и веб-сервисы на основе XML.
Application domains
Каждое приложение, запускаемое под управлением. NET Compact Framework, выполняется в некоторой совокупности ресурсов системы, называемой доменом приложения. Функционально домен приложения подобен процессу для приложений Win32, но в одном реальном процессе Win32 может быть запущено несколько доменов приложений.
Управление памятью
В.NET Compact Framework управление памятью оптимизировано таким образом, чтобы как можно меньше загружать память и ресурсы процессора. В частности, такая часть. NET Framework, как native image cache , в Compact Framework отсутствует.
Сборка мусора
Сборка мусора в. NET Compact Framework также подчинена оптимизации использования памяти. Сборщик мусора гарантирует, что вся память, захваченная приложением, будет корректно освобождена после завершения его работы.
Основные отличия между базовой версией. NET Framework и Compact Framework
Читать дальше
Конец ознакомительного отрывка
Купить книгу