Московский государственный технический университет им. Н.Э. Баумана
Опубликован: 28.06.2006 | Доступ: платный | Студентов: 1741 / 13 | Оценка: 4.54 / 3.83 | Длительность: 22:03:00
ISBN: 978-5-9556-0055-0
Лекция 1:

Введение в архитектуру Microsoft .NET Framework

Лекция 1: 123456 || Лекция 2 >
Аннотация: Обзор учебного курса. Предшественники платформы .NET, составные части платформы .NET, спецификация CLI. Роль типизации в языках программирования. Ядро и дополнительные элементы системы типов .NET.
Ключевые слова: net, project, COM, Object, lightning, NEXT, generation, Web, ECMA, computer, manufacturer, association, корпорация, системное программирование, RAD, целевая платформа, PDP-11, микрокомпьютер, program counter, intermediate language, neutral, OSF/1, open software foundation, распространение программного обеспечения, Common Language Runtime, class library, автоматическое управление памятью, Common Language Infrastructure, Common Type System, CTS, metadata, промежуточный язык, CLS, пользователь языка, JIT, dangling pointer, memory leak, fragment, управляемые данные, illegal, legal, безопасность кода, safe code, верифицируемость, verifiability, система типов, trap, error, деление, адрес, динамическая, safe, безопасность, целостность данных, класс, подмножество, Checked, время выполнения, dynamic, тип данных, reference type, примитивный тип данных, число с плавающей запятой, object reference, heap, narrow, DESCRIBE, static method, instance method, массивы объектов, абстрактный метод, статическое поле, абстрактное свойство, суперкласс, отношение эквивалентности, рефлексивность, примитивный тип, виртуальный метод, переопределение метода

Знакомство с .NET

Без всякого преувеличения можно сказать, что платформа .NET стоит в одном ряду с самыми значительными достижениями корпорации Microsoft. Более того, с точки зрения программиста, работающего в области создания компиляторов и других средств разработки программ, .NET является технологией неизмеримо более привлекательной, чем все продукты, ранее созданные в Microsoft.

Разработка платформы .NET началась в 1998 году. Изначально ей дали рабочее название Project 42, которое затем было изменено на COM Object Runtime (сокращенно, COR). Видимо, аббревиатура COR использовалась достаточно длительное время, так как ее до сих пор можно найти в названиях dll-файлов и именах библиотечных функций. Потом платформа сменила еще несколько названий: Lightning, COM+ 2.0, Next Generation Web Services и, в конце концов, стала называться .NET Framework.

Спецификация основной части платформы .NET стандартизована ассоциацией ECMA (European Computer Manufacturers Association). Это означает, что корпорация Microsoft приветствует независимые реализации платформы.

Главные темы

В этой книге, рассматривая возможности системного программирования в .NET, мы будем преследовать две главные цели: разработка метаинструментов и конструирование компиляторов.

Разработка метаинструментов

Создание любого программного продукта подразумевает знакомство программиста с предметной областью. То есть разработчик бухгалтерской программы должен в какой-то степени разбираться в бухучете, а создатель Интернет-магазина - в принципах ведения торговли. Нетрудно догадаться, что создание новых инструментов для разработки программ требует от программиста знакомства с тем, с чем он и так хорошо знаком - с разработкой программ! Наверное, поэтому это занятие столь увлекательно.

Мы будем называть метаинструментами программы, для которых другие программы выступают в роли данных. Метаинструменты используются для разработки, тестирования, анализа и преобразования программ. Это могут быть компиляторы, средства быстрой разработки приложений (RAD), оптимизаторы, отладчики, верификаторы, профайлеры и т.п. Знания, полученные из этого учебника, вы сможете применять для создания метаинструментов, которые работают на платформе .NET.

Конструирование компиляторов

В структуре практически любого современного компилятора можно выделить, по крайней мере, две части: "front-end" и "back-end". "Front-end" осуществляет лексический и синтаксический анализ программы и переводит программу в некоторое промежуточное представление. А "back-end" на основе этого промежуточного представления генерирует код для целевой аппаратной платформы. Между этими двумя частями может находиться оптимизатор, анализирующий и преобразующий промежуточное представление программы (см. рис. 1.1).

Структура современного компилятора

Рис. 1.1. Структура современного компилятора

В нашем учебнике мы будем рассматривать представление кода в виде графа потока управления, узлы которого соответствуют инструкциям языка, а ребра обозначают передачу управления между ними. Такое представление можно использовать в качестве промежуточного представления кода в компиляторе.

Резюмируя вышесказанное, можно сказать, что в большинстве учебников и учебных курсов, посвященных разработке компиляторов, основное внимание уделяется алгоритмам лексического и синтаксического анализа, то есть они учат в основном программированию "front-end'ов". В нашем учебнике мы концентрируем внимание на архитектуре и языке целевой платформы (.NET), а также изучаем работу с графами потоков управления. Это означает, что мы ориентируемся на программирование "back-end'ов".

Лекция 1: 123456 || Лекция 2 >
Анастасия Булинкова
Анастасия Булинкова
Рабочим названием платформы .NET было