arg,
argument
Выражение, передаваемое в качестве параметра в вызове
процедуры.
cast
Приведение типа изменяет тип данных во время компиляции
выражения и, либо вызывает преобразование (например float <-> int)
, либо переосмысление значения выражения представлением бит (например integer <-> uinteger).
comp,
compound
- Составные блоки в языке: Любые блоки кода, которые позволяют вложенный
код, такие как блоки IF, блоки SCOPE, блоки NAMESPACE , и
т.д.
- Составные символы: Определяемые пользователем типы, иногда также
пространства имен, потому что оба могут содержать вложенные (в пространстве
имен) символы и они разделяют общий код.
conv,
conversion
Преобразование — это операция, которая переводит два
разных представления того же значения (Например float <-> int,
или 32bit <-> 64bit).
cast и
conv часто используются как синонимы в
источниках компилятора. AST и CONV узлы представляют собой
приведения типов, независимо от того, выполняется преобразование
или нет.
Некоторые (но не все) требуют выполнения преобразования,
например:
short <-> integer
single <-> integer
single <-> double
Простое приведение типов равного класса и размера не требуется выполнения
преобразования, потому что битовое представление не будет
меняться в любом случае. Например:
short <-> ushort
integer <-> uinteger
Они также называются
noconv casts.
ctor,
constructor
- UDT конструктор
- модульный конструктор
ctx,
context
UDT/"классы" в исходнике fbc для проведения глобальной
информации, общей для нескольких процедур или модулей.
desc,
descriptor
- Дескриптор динамической строки
- Дескриптор динамического массива
dtor,
destructor
- UDT деструктор
- модульный деструктор
fbc
- FreeBASIC компилятор проекта в целом, Git-репозиторий, проекта на
Sourceforge
- Компилятор , двоичный/исполняемый файл программы (fbc или fbc.exe), как
построенный из источников компилятор
- Компилятор главный модуль/интерфейс/драйвер
fbctinf
FB информация во время компиляции, также смотрите objinfo.
fbgfx
Графика FB, обычно ссылается на использование ключевых
слов FB встроенной графики в gfxlib2
frontend stage 1
Компиляция входных файлов .bas в следующий промежуточный
формат: .asm (-gen gas), .c (-gen gcc) или .ll (-gen llvm)
frontend stage 2
Компиляция .c (-gen gcc) или .ll (-gen llvm)
промежуточных файлов в .asm файлы. (не применяется к -gen gas ,
потому что в этом случае FB компилятор генерирует .asm сам
непосредственно)
function
Процедура с возвращаемым значением; иногда также
используется вместо процедуры, как в C.
gfxlib2
Реализация FB графической runtime библиотеки из проекта fbc.
hashtb
Хеш-таблица, часто используется вместе с таблицей
символов, чтобы позволить выполнить быстрый поиск из символов в
этой таблице символов.
libfb,
libfbmt,
libfbgfx,
libfbgfxmt
Имена библиотек, построенных из исходников rtlib/gfxlib2.
Имена библиотек lib*mt являются потокобезопасными
версиями своих lib* . Они построены с ENABLE_MT #define.
local
- Временная: переменная выделяется в стеке
- Любой символ во вложенной области видимости, не глобального/верхнего уровня
пространства имен. Статические переменные в области видимости также имеют
аттрибут FB_SYMBATTRIB_LOCAL, даже несмотря на то, что они не
распределяются в стеке.
method
- Процедура-элемент с параметром THIS. Статические
процедуры-элементы (те, которые без параметра THIS) не
имеют FB_SYMBATTRIB_METHOD.
- Иногда: Любая процедура-элемент, с\без параметром\а THIS
noconv cast
Приведение, которое не требует преобразования.
normal build
objinfo
param,
parameter
Параметры процедуры, объявленные в декларировании
процедуры или определении тела процедуры.
paramvar
Для каждого параметра компилятор создаст соответствующую
локальную переменную в области действия процедуры, позволяя
параметрам иметь доступ к пользовательскому коду.
proc,
procedure
Любая процедура или функция, включая конструкторы и
деструкторы, перегрузку операторов, методы задания свойств setters/getters.
standalone build
static
- распределение памяти статической переменной: в куче вместо стека, но
по-прежнему в области видимости--также видимы локально.
- статические переменные-элементы: на самом деле внешние.
- статические процедуры-элементы: процедуры-элементы без параметра THIS,
также видны методам.
- "статический массив" часто используется вместо "массив фиксированного
размера" (язык QB)
struct, structure
TYPE или UNION, также известный как struct/union
в C.
sub
Процедура без возвращаемого значения (с результатом VOID).
symtb
Таблица символов: имеет связанный список FBSYMBOL
в определенной области видимости. Это где находятся FBSYMBOL(ы).
rtlib
Реализация runtime библиотеки
FB из проекта fbc
UDT,
user-defined type
TYPEs/UNIONs/ENUMs, иногда просто TYPEs/UNIONs.
vreg
Виртуальный регистры используются при выпуске AST. AST
создает vreg операнды и результаты всех операций, которые
составляют программу ввода. Каждый бэкэнд излучает их
по-разному:
- ASM бэкэнд действительно сопоставляет vregs настоящим
регистрам и также повторно использует их , когда они снова
становятся свободными. vregs также позволяют эмитеру x86
кода знать, какие точно используются регистры.
- C бэкэнд иногда испускает vregs как временные переменные, иногда просто
вставляет выражение, результатом которого представлена vreg
вместо первого использования этого vreg.
- LLVM бэкэнд просто излучает каждый vreg как нумерованное промежуточное
значение.
Поскольку C/LLVM движки не используют повторно
vregs, vregs находятся почти в форме статических
single значений; хотя не совсем,
потому что до сих пор есть самостоятельные операции и т.д..
производимые AST, которые не
учитывают форму SSA.