AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
CRM
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

Результаты опроса: К какому типу Вы относите язык X++ ?
К компилируемому 15 45.45%
К интерпретируемому 11 33.33%
Затрудняюсь ответить 7 21.21%
Голосовавшие: 33. Вы ещё не голосовали в этом опросе

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2009, 18:39   #1  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от 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. Ответил компилятор, хотя все три варианта правильные
За это сообщение автора поблагодарили: Megacrusher (1), belugin (3).
Старый 20.04.2009, 20:55   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от db Посмотреть сообщение
Вот простой пример, доказывающий что при исполнении исходники не юзаются никаким боком
Юзается p-код. Но это не делает Аксапту компилятором

Цитата:
Сообщение от db Посмотреть сообщение
при запуске из редактора сначала случится компиляция
только не компиляция, а трансляция в p-код

как раз то, что программист не управляет явным образом процессом компиляции и говорит о том, что Аксапта не компилятор.
__________________
полезное на axForum, github, vk, coub.
Старый 20.04.2009, 23:42   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
Юзается p-код. Но это не делает Аксапту компилятором
....
только не компиляция, а трансляция в p-код
...
как раз то, что программист не управляет явным образом процессом компиляции и говорит о том, что Аксапта не компилятор.
Тогда в опросе не хватает термина "транслируемый". Тогда можно было бы честно ответить - "транслируемый в p-код"

Наверное более правильно было бы ответить "Затрудняюсь" - т.к.
а) на мой взгляд - "компилируемый" - легче для понимания "а как это работает"
б) "интерпретируемый" - более правильно было бы ответить (если подходить к вопросу терминологически).
Но проработав с VBA - где код программы можно менять прям в рантайме - я психологически не могу отнести Аксапту к интерпретируемому языку. А компилируемый - мне ближе

Программист также управляет процессом компиляции как и в каких-нибудь С++ или дельфи, где есть интегрированная среда разработки, которая весь процесс компиляции и линковки (и создания exe-шника) делает за программиста, который нажимает всего одну кнопку (как в аксапте). Просто в Аксапте вызов этой кнопки еще "зашит" на сохранении кода в редакторе. Это я к тому, что неделание в явном виде линковки еще не говорит о том, что язык некомпилируемый.

runbuf вызывает код.. Но ведь нет никаких гарантий что исходный код не транслируется в p-код в этом случае (равно как и доказательств трансляции)! Более того - есть утверждение - что отладчик не работает из-под runBuf. Может это следствие того, что трансляция все-таки какая-никакая а есть?
Классы же Dict* лишь позволяют в рантайме запустить тот или иной объект. Их наличие не говорит о том - запускают они исходный код или p-код. Поэтому - их наличие - тоже не доказательство интерпретируемости языка.

Резюме: Голосую за "компилируемый"
__________________
Возможно сделать все. Вопрос времени
Старый 21.04.2009, 00:02   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Андре Посмотреть сообщение
Это компиляция в некий промежуточный байт-код.
Только в байт-код (p-код) всю жизнь не компилировалось, а транслировалось.
Компиляция - это все-таки в язык хост-машины.

Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Тогда в опросе не хватает термина "транслируемый". Тогда можно было бы честно ответить - "транслируемый в p-код"
Скорее да.
__________________
полезное на axForum, github, vk, coub.
Теги
p-код, x++, интерпретатор, компилятор, ядро, трансляция

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
А по какому принципу отбираются блоги axbegin Обсуждение форума 54 14.04.2023 16:23
На главной странице для русского языка объединены блоки... Стало ли лучше? mazzy Информация для участников 4 23.03.2007 19:14
Бьерн Страустрап, один из разработчиков языка С++: KMV Курилка 3 17.03.2006 13:42

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:46.