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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.04.2009, 19:10   #31  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Во, блин, написали. Оказывается я породил вторую серию войнушки
Ну что же, пусть будет третья ....

в традиционных понятиях линковка это сборка готовых кусков кода (уже на языке целевой машины) с подменой абсолютных адресов в соответсвии в местом
на котором будет этот кусок располагаться в адресном пространстве всей программы. никакого p-кода.

То что в акспте юзается p-код и он независим от исходников, говорит что в аксапте ЕСТЬ компилятор в p-код. Плюс виртуальная машина, которая его выполняет. Называйте ее (не аксапту, а виртуальную машину) интерпретатором
p-кода если хотите. Так ще как любой железный процессор можно назвать интерпретатором машинного кода. Вы же, надеюсь не думаете, что процессор в чистом виде исполняет MOV A,C какой нито. У него внутрях самый что ни на есть железный интерпретатор и микропрограммы, которые раскладывают все до простейших логических операций и операций сдвига.

Так что я считаю что внутри аксапты компилятор в p-код и виртуальный софтовый процессор, который радостно жужжа его хавает, о чем и говорил Ruff

Дальше. Что является основным "первичным половым признаком" компилятора? Линковки? Необходимость программиста что то нажимать или наоборот
не нажимать? Увы, нет.
Компилятор, чтобы таковым назыаваться, должен всего лишь считать текст программы на одном языке - исходном (x++), и транслировать (да, именно транслировать, т.е перевести) его в эквивалентный текст на другом языке (нечто даамгарное). Заметьте, всего навсего в другой (а не конкретно машинный, рыбий или албанский).

После этапа трансляции компиятором исходники не нужны. Заметьте - всего навсего не нужен исходный текст, а не то что результат должен уметь исполняться
или какие нито еще умения. На выходе может быть текст на ассемблере или с (он тоже не умеет исполняться), пресловутый экзешник, набор древнеегипетских иероглифов или микросхема, например, с 8 ножками
Главное чтобы исходное и целевое значили одно и то же, на исходном языке и в виде иероглифов

Интерптетатор то же транслирует, но на ходу и подглядывает в исходники, без которых он никак не может. И компилятор и интерпретатор это все равно по своей сути переводчики - трансляторы.

Все остальные навороты
- возможность замены кода на лету
- динамическая компоновка исполняемого кода из охрененного куска мелких кусочков (IMHO мин кусочек то что хранится отдельной строкой в UtilElements)
- возможность выполнения сгенеренного в рантайме кода
- интерфейс в рантайме к самому себе
и т.д.это уже навороты и особенности виртуального аксаптовского процессора и среды разработки

эффективно это, или нет? что курили разработчики? слишком ли это круто для Х++? и прочие подобные вопросы к теме отношения не имеют.

про пример со строковой переменной в двух методах класса- это как раз тот случай когда среда разработки вызывает компиляцию при сохранении (надеюсь не для кого не секрет) и тут же делает этот код доступным виртуальному процессору или ставит метку что код кривой. Опять же правильно это, неправильно и кто что курил к теме отношения не имеют.

есть среды разработки в которых вообще нету отдельной кнопки "компилировать", но тем не менее они это прекрасно умеют (Eclipse, например)

в википедию и прочие "интернеты" не посылать - не авторитет - можно одновременно доказать и опровергнуть что хочешь ,
"если на одном канале скажут "тыква это овощ", то другой канал ответит "врете, тыква это фрукт" (с) Т.Шаов

а вот книжка с дракончиком от Ахо, Сети и Ульман - авторитет, так что всех за определением компилятора посылаю туда
За это сообщение автора поблагодарили: Ruff (2), sukhanchik (10), Lucky13 (2).
Теги
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, время: 04:10.