Информация об изменениях

Сообщение Терминология Nitra от 14.03.2015 0:48

Изменено 23.03.2015 21:56 VladD2

Дерево разбора (ДР, Parse Tree, PT) – это то дерево строящееся для конкретного исходника по конкретной грамматике языка. Оно содержит много не важной типизации/компиляции информации. Например: пробельные символы, ключевые слова, операторы, избыточное ветвление, разделители списков (вроде запятых в списке параметров) и т.п.

Абстрактное Синтаксическое Дерево (АСД, Abstract Syntax Tree, AST) – это дерево, содержащее только информацию важную для дальнейшего анализа. AST значительно компактнее ДР и имеет более простую структуру. В нем устраняются излишние ветвления которые могут появиться в ДР в виду особенностей грамматики.

Декларация (declaration) – ветка AST описывающая декларацию (описание) сущности языка, на которую можно ссылаться (reference) по имени. Такими сущностями являются классы в C++, поля классов, локальные переменные и т.п. Одна сущность языка может иметь одну или более декларацию. Например, partial class или пространства имен в C#.

Символ – описывает сущность языка, на которую можно ссылаться по имени. Для одной сущности всегда существует один символ, даже если она декларируется несколькими декларациями. Символы получаются путем преобразования деклараций или путем загрузки из внешних библиотек.

Ссылка (имя, reference) – базовая конструкция языка позволяющая указать на то, что в некоторой конструкции языка нужно сослаться на какую-то сущность языка, то есть на символ языка.

Связывание имен (связывание, binding) – процесс поиска символа (или группы символов) на который ссылается некоторое имя (ссылка). Например, в большинстве языков программирования в выражении «a + 42» имя «a» является ссылкой на некоторую сущность языка (переменную, поле, функцию, тип, и т.п.). Процесс связывания позволяет определить на какие конкретные символы может ссылаться это имя.

Область видимости (Scope) – часть программы в которой «видны» (доступны) некоторые имена. Например, областью видимости локальных переменных в языке C является блок (содержимое заключенное в фигурные скобки). Области видимости могут быть иерархическими. При этом они могут затенять внешние области видмости. Так же они могут проецироваться в другие области видимости. Для процесса связывания необходимо указать области видимости языка и отношения между ними (затенения или проекции). Например, конструкция using в C# может проецировать содержимое пространства имен (которое является областью видимости в C#) в другое пространство имен.

Разрешение имен (name resolving, name resolution) – процесс, позволяющий определить, на какой конкретный символа ссылается некоторое имя в случае, если в результате связывания найдено более одного имени. Обычно этот процесс тесно интегрирован с процессом типизации или выводом типов.
Терминология Nitra
Дерево разбора (ДР, Parse Tree, PT) – это то дерево строящееся для конкретного исходника по конкретной грамматике языка. Оно содержит много не важной типизации/компиляции информации. Например: пробельные символы, ключевые слова, операторы, избыточное ветвление, разделители списков (вроде запятых в списке параметров) и т.п.

Абстрактное Синтаксическое Дерево (АСД, Abstract Syntax Tree, AST) – это дерево, содержащее только информацию важную для дальнейшего анализа. AST значительно компактнее ДР и имеет более простую структуру. В нем устраняются излишние ветвления которые могут появиться в ДР в виду особенностей грамматики.

Декларация (declaration) – ветка AST описывающая декларацию (описание) сущности языка, на которую можно ссылаться (reference) по имени. Такими сущностями являются классы в C++, поля классов, локальные переменные и т.п. Одна сущность языка может иметь одну или более декларацию. Например, partial class или пространства имен в C#.

Символ – описывает сущность языка, на которую можно ссылаться по имени. Для одной сущности всегда существует один символ, даже если она декларируется несколькими декларациями. Символы получаются путем преобразования деклараций или путем загрузки из внешних библиотек.

Ссылка (имя, reference) – базовая конструкция языка позволяющая указать на то, что в некоторой конструкции языка нужно сослаться на какую-то сущность языка, то есть на символ языка.

Связывание имен (связывание, binding) – процесс поиска символа (или группы символов) на который ссылается некоторое имя (ссылка). Например, в большинстве языков программирования в выражении «a + 42» имя «a» является ссылкой на некоторую сущность языка (переменную, поле, функцию, тип, и т.п.). Процесс связывания позволяет определить на какие конкретные символы может ссылаться это имя.

Область видимости (Scope) – часть программы в которой «видны» (доступны) некоторые имена. Например, областью видимости локальных переменных в языке C является блок (содержимое заключенное в фигурные скобки). Области видимости могут быть иерархическими. При этом они могут затенять внешние области видмости. Так же они могут проецироваться в другие области видимости. Для процесса связывания необходимо указать области видимости языка и отношения между ними (затенения или проекции). Например, конструкция using в C# может проецировать содержимое пространства имен (которое является областью видимости в C#) в другое пространство имен.

Разрешение имен (name resolving, name resolution) – процесс, позволяющий определить, на какой конкретный символа ссылается некоторое имя в случае, если в результате связывания найдено более одного имени. Обычно этот процесс тесно интегрирован с процессом типизации или выводом типов.