
- •1 Введение
- •2.1 Синтаксис языковых конструкций
- •2.1.1 Синтаксис описания переменных
- •2.1.1.1 Язык Pascal
- •2.1.1.2 Язык C/C++
- •2.1.1.3 Язык C#
- •2.1.2 Синтаксис описания записей и структур
- •2.1.2.1 Язык Pascal
- •2.1.2.2 Язык C/C++
- •2.1.2.3 Язык C#
- •2.1.3 Синтаксис описания функций, процедур и делегатов
- •2.1.3.1 Язык Pascal
- •2.1.3.2 Язык C++
- •2.1.3.3 Язык C#
- •2.2.1 Построение дерева
- •2.2.2 Лексический анализ
- •2.2.3 Работа с таблицей имен
- •2.2.4 Синтаксический анализ
- •2.2.5 Генерация кода
- •2.2.6 Оптимизация кода
- •2.3.1 Основные определения
- •2.3.2 Способы задания ДМП-автомата
- •2.3.3 Включение действий в синтаксис и алгоритм разбора
- •2.4.1 Основные определения
- •2.4.3 Программирование регулярных выражений
- •2.4.4 Включение действий и поиск ошибок
- •2.4.5 Сбалансированные определения
- •2.5.1 Составление правил грамматик
- •2.5.2 Включение действий в синтаксис
- •2.5.3 Разбор по символам и по лексемам
- •2.5.4 LL(1)-грамматики
- •2.5.4.1 Общие определения
- •2.5.4.2 Определение множеств направляющих символов
- •2.5.4.3 Построение таблицы разбора
- •2.5.4.4 Разбор цепочки по таблице
- •2.5.5 LR(1)-грамматики
- •2.5.5.1 Общие определения
- •2.5.5.2 Определение множества состояний и графа переходов
- •3.5.5.2 Построение таблицы разбора
- •2.5.5.4 Разбор цепочки по таблице
- •3 Задание на лабораторные работы
- •3.1 Лабораторная работа №1
- •3.2 Лабораторная работа №2
- •3.3 Лабораторная работа №3
- •3.4 Лабораторная работа №4
- •4 Отчет по лабораторным работам
- •Список литературы
10
2.1.1.3 Язык C#
Описание локальных переменных на языке C# может выглядеть следу-
ющим образом:
double? a, b, c;
int[,] d;
string s1, s2;
long n;
Во-первых, в отличие от языков C/C++, модификаторы здесь отсут-
ствуют, т.е. long – это отдельный тип данных. Также требуется реализация всех остальных целых типов, типов с плавающей точкой, символьного и бу-
левского типа, массивов и строк, а также обнуляемых типов и типа object.
При указании типа можно использовать как имя класса, так и соответствую-
щий ему синоним языка C# (см. табл. 2.1).
Таблица 2.1 – Описание типов языка C#
Класс |
Синоним |
Описание |
|
|
|
System.SByte |
sbyte |
Байт со знаком |
|
|
|
System.Int16 |
short |
Короткое целое со знаком |
|
|
|
System.Int32 |
int |
Целое со знаком |
|
|
|
System.Int64 |
long |
Длинное целое со знаком |
|
|
|
System.Byte |
byte |
Байт |
|
|
|
System.UInt16 |
ushort |
Короткое целое без знака |
|
|
|
System.UInt32 |
uint |
Целое без знака |
|
|
|
System.UInt64 |
ulong |
Длинное целое без знака |
|
|
|
System.Single |
float |
Число с плавающей точкой одинарной |
|
|
точности |
|
|
|
System.Double |
double |
Число с плавающей точкой двойной точ- |
|
|
ности |
|
|
|