Рабочим названием платформы .NET было |
Язык CIL: обработка исключений. Синтаксис ILASM
Синтаксис 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#:
- Если в строке программы встречается "//", то остаток строки считается комментарием.
- Текст, начинающийся с "/*", оканчивающийся на "*/" и не содержащий "*/", считается комментарием.