Опубликован: 28.06.2006 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный технический университет им. Н.Э. Баумана
Лекция 7:

Язык CIL: обработка исключений. Синтаксис ILASM

< Лекция 6 || Лекция 7: 123456 || Лекция 8 >

Синтаксис ILASM

В составе .NET Framework SDK поставляется ассемблер ILASM, который позволяет компилировать текстовые файлы, содержащие CIL-код и метаданные. В этом разделе мы проведем краткий обзор формата, в котором записываются эти файлы, и рассмотрим несколько примеров программ. Будем называть IL-форматом формат файлов, поддерживаемый ассемблером ILASM, а программы, записанные в IL-формате, - IL-программами.

Основные элементы лексики

Программы в IL-формате состоят из следующих лексических элементов:

  • идентификаторы;
  • метки;
  • константы;
  • зарезервированные слова;
  • специальные знаки;
  • комментарии.

Идентификаторы и метки чаще всего представляют последовательности символов, начинающиеся с латинской буквы (или с символов "_", "$", "@" и "?"), за которой следуют латинские буквы, цифры или символы "_", "$", "@" и "?". Кроме того, для идентификаторов и меток существует особая форма записи в апострофах: она позволяет включать в идентификаторы любые символы Unicode. Например:

Label_1 $Name 'Идентификатор'

Несколько идентификаторов могут быть объединены в один идентификатор с помощью точек. Например:

System.Console.WriteLine

Целочисленные константы записываются либо в десятичной системе счисления, либо в шестнадцатеричной (тогда перед ними ставится префикс "0x"). Например:

128 -10 0xFF10B000

В вещественных константах точка используется для разделения целой и дробной части, а символы "e" и "E" служат для указания экспоненциальной части. Кроме того, поддерживается особая форма записи float32 (целая_константа) и float64 (целая_константа), позволяющая представить целое число в виде числа с плавающей точкой. Например:

5.5 -1.05e10 float32(128) float64(50)

Строковые константы записываются в двойных кавычках и могут содержать Escape-последовательности "\t", "\n" и "\xxx", где восьмеричное число xxx задает код символа от 0 до 255. Для переноса строковой константы на другую строку программы используется символ "\". Кроме того, для строковых констант поддерживается операция конкатенации "+". Например:

"Alpha Beta Gamma" "Hello, World\n" "Concat"+"enation"

Комментарии в IL-программах записываются так же, как в языке C#:

  • Если в строке программы встречается "//", то остаток строки считается комментарием.
  • Текст, начинающийся с "/*", оканчивающийся на "*/" и не содержащий "*/", считается комментарием.
< Лекция 6 || Лекция 7: 123456 || Лекция 8 >
Анастасия Булинкова
Анастасия Булинкова
Рабочим названием платформы .NET было
Bogdan Drumov
Bogdan Drumov
Молдова, Республика
Azamat Nurmanbetov
Azamat Nurmanbetov
Киргизия, Bishkek