Цитата:
Сообщение от
Megacrusher
Думаю, что ближе всего что это интерпретатор компилирующего типа. Проголосовал.
полностью согласен.
Не существует чисто "компилируемых" и "интерпретируемых" языков.
Существуют компиляторы и интерпретаторы. Да, некоторые проще реализуются в виде интерпретаторов, но и только.
Вот спрошу с чего вы взяли С++ компилируемый? С того что на него чаще обращали внимание разработчики компиляторов?
Ну так никто не мешает написать интерпретатор для С++. А уж написание компиляторов с бейсика это любимая
практическая задача при обучении теории компиляторов. Так что все зависит от конкретной реализации. И ничто не мешает в одной реализации использовать и компилятор и интерпретатор.
В аксапте исходный код на Х++ заранее целиком преобразуется в нечто промежуточное, которое потом исполняется машиной
внутри аксапты без обращения к исходному коду. Т.е компиляция есть.
Просто компиляция не в машинный код, а промежуточный
Вот простой пример, доказывающий что при исполнении исходники не юзаются никаким боком
создаем baseEnum baseenumtest, в нем Element1, enumvalue = 0
пишем джоб
X++:
static void Job24(Args _args)
{
;
info(int2str(baseenumtest::Element1 +0));
}
запускаем, видим в инфологе 0, радуемся
обязательно закрываем редактор кода
идем и меняем enumvalue на 1
запускаем наш джоб из аот (ctrl-o). именно из аот, при запуске из редактора сначала случится компиляция
и что мы види в инфологе? Правильно, 0
компилируем джоб, и снова запускаем. в инфологе отображатся 1
PS. Ответил компилятор, хотя все три варианта правильные