GT.M - компилятор в прямом режиме

Я работаю с исходным кодом GT.M и читаю эту информацию в файле mumps.hlp:

ZCOMpile

Команда ZCOMPILE вызывает компилятор GT.M из среды выполнения GT.M.

Внутри самого GT.M ZCOMPILE обеспечивает функциональность команды mumps, за исключением mumps -direct.

Итак... какой компилятор использовать в режиме "mumps-direct", в каком файле хранится исходный код для этого компилятора? Я имею в виду, что когда вы вводите:

GTM> SET ^FOO="BAR"

Какой компилятор отвечает за компиляцию этой команды


person Ryo    schedule 24.09.2015    source источник


Ответы (1)


Рио,

Он скомпилирован в памяти. Он не хранится ни в одном файле.

--Сэм

person Sam Habiel    schedule 24.09.2015
comment
Спасибо за ваш ответ. Но я думаю, что для компиляции команд, которые пользователь вводит в прямом режиме, также нужен компилятор, не так ли? .Кто отвечает за это? - person Ryo; 25.09.2015
comment
Я не знаю, где это происходит в исходном коде GT.M; двоичный файл mumps создает AST в памяти вашего источника, компилирует его и помещает результат в другую область памяти; а затем он передается среде выполнения для запуска. Все это происходит в C; за исключением того, что часть среды выполнения находится на ассемблере. Если у вас много времени, вы можете прочитать dm_mode.c. - person Sam Habiel; 25.09.2015
comment
Спасибо, мне нужно это знать, потому что я хочу написать модуль, который перехватывает все вводимые пользователем команды для целей анализа и безопасности. Я имею в виду, что когда вы вводите: SET ^FOO="BAR", я могу поймать эту команду, и если у вас нет роли для выполнения SET на FOO, я перехвату ее и выдам ошибку об отказе в доступе. - person Ryo; 25.09.2015
comment
Ответ: Я не смог найти dm_mode.c в исходниках GT.M, он появляется в другой программе? - person Ryo; 25.09.2015
comment
Цитирование по памяти снова доставляет мне неприятности. Это dm_read.c. - person Sam Habiel; 27.09.2015
comment
спасибо, этот файл мне теперь пригодится! , отличный ответ - person Ryo; 29.09.2015