AXForum  
Zurück   AXForum > Прочие обсуждения > Курилка
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

Umfrageergebnis anzeigen: К какому типу Вы относите язык X++ ?
К компилируемому 15 45,45%
К интерпретируемому 11 33,33%
Затрудняюсь ответить 7 21,21%
Teilnehmer: 33. Sie dürfen bei dieser Umfrage nicht abstimmen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 21.04.2009, 11:18   #21  
DSPIC ist offline
DSPIC
Боец
 
1.077 / 1243 (44) ++++++++
Registriert seit: 11.04.2008
Да, тема потихоньку сползла в терминологический спор.
Хочется освежить. Почему встал вопрос о том, к какому типу языков отнести Х++?
Потому что было проведено некорректное сравнение Х++ с С++:

Zitat:
Zitat von sukhanchik Beitrag anzeigen
... . Я просто провожу параллель со сборкой exe-шника. При сборке из командной строки - в exe-шник копируются куча библиотек, причем можно задать - копировать их, либо использовать только ссылки (в последнем случае exe-шник не запустится без наличия библиотек).
Если взглянуть - сколько всего "пихается" в простой exe-шник на С++ Builder в простой программе Hello world... - то невольно подумаешь - что тут тоже самое. Ведь братья дамгарды не писали с нуля свой компилятор - они (насколько мне рассказывали) - взяли некие заготовки - ведь почему X++ так удивительно похож на Java и С++, а не на бейсик, паскаль, фортран и т.д.

Для отладчика добавляется специальная отладочная информация (и это тоже одна из опций компилятора) - поэтому на нее нельзя ориентироваться. Кстати - перед финальной сборкой exe-шника эту отладочную информацию обязательно удаляют (выполняют сборку без указания спецключика) для того, чтобы не давать легкую возможность дизассемблировать + уменьшить размер файла.
Zitat:
Zitat von sukhanchik Beitrag anzeigen
Как я уже описал выше - я пришел к выводу на основе работы C++-ного компилятора еще в досе. Плюс пообщался на эту тему еще со своими приятелями (разработчиками в аксапте, которые видели исходные сишные коды ax32.exe) - которые независимо от меня пришли к такому же мнению. А т.к. 2 абсолютно независимых человека пришли к одинаковым выводам - я обрел некоторую уверенность в своей гипотезе.

Тем более, что внешние симптомы не позволяют в ней сомневаться.
Т.е. под компиляцией хочется понимать построение кода, способного на самостоятельное исполнение.

Zitat:
Zitat von belugin Beitrag anzeigen
Считайте, что в аксапте каждый класс - DLL отдельная
Это ж как нужно извратиться, чтобы так сделать... А главное - зачем применительно к X++. DLL - это кусок самостоятельно исполняемого кода. Ну да ладно.

Zitat:
Zitat von fed Beitrag anzeigen
2. Аналогичным образом - можно в случае возникновения runtime-ошибки просто подправить ручками значения переменных. То есть - поделили на ноль случайно - можно пока не разбираться, а просто впендюрить не-ноль в нужную переменную.
Это можно сделать и в компилируемых языках. Например, если установлена VS, она всегда предлагается как отладчик при возникновении run-time ошибки. В общем случае вываливается ASM, в частном - исходный код, напр. C++ (если я ничего не путаю)

Zitat:
Zitat von fed Beitrag anzeigen
3. Заметную часть операторов можно исполнять в режиме командной строки. Написал чего-то типа print 45*SIN(29) и тут же получил результат.
ф-я runBuf как раз подходит под это описание. Можно из обычной формы сделать что-то наподобие командной строки на основе этой ф-ции.

Zitat:
Zitat von belugin Beitrag anzeigen
Не как раз нельзя на лету изхменить - надо сначала перекомпилировать и чтобы он перезакгрузился. Попробуйте в форме или в созданном классе что-нибудь порменять на ходу и не пересоздавать класс.
Zitat:
Zitat von fed Beitrag anzeigen
1. Можно остановить программу, поменять кусочек кода (скажем - вставить строку внутрь исполняющегося в данный момент цикла), а потом продолжить выполение этой программы.
Попробую доказать обратное.
  1. Объявляем на уровне класса строковую переменную, инитим её в new()
  2. Создаем класс с 2мя методами. 1й метод содержит инфолог с одним текстом. 2й метод - с другим. Оба текста пусть строятся на основе строковой переменной, объявленной в классе. - так, на всякий случай.
  3. Делаем пустую форму, в которой создаём объект нашего класса и периодически (setTimeOut) вызываем его методы, один за другим.

    Что видим - чередующиеся строки из 1-го и 2-го методов класса.
  4. Не закрывая форму (т.е. объект класса не разрушается), меняем текст в одном из методов, сохраняем.

    Что видим - текст в инфологе для измененного метода поменялся. При этом объект класса не пересоздавался.

(прикрепил готовый проект, если кто-то хочет поэксперементировать)

Если это не является доказательством того, что X++ правильнее относить с интерпретируемому типу языка, нежели к компилируемому, то IMHO дальнейший спор лишен всякого смысла...

P.S. 2Admins: Можно ли подредактировать опцию опроса, включив возможность проголосовать снова, на случай, если кто-нибудь изменит (ещё раз ) своё мнение
Angehängte Dateien
Dateityp: xpo PrivateProject_RunTimeTest.xpo (3,3 KB, 254x aufgerufen)

Geändert von DSPIC (21.04.2009 um 11:22 Uhr)
Alt 21.04.2009, 11:24   #22  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Вообще говоря, никто не мешает находу перекомпилировать меод и подпатчить работающий код даже компилируемый в нейтив код
Alt 21.04.2009, 11:42   #23  
DSPIC ist offline
DSPIC
Боец
 
1.077 / 1243 (44) ++++++++
Registriert seit: 11.04.2008
Zitat:
Zitat von belugin Beitrag anzeigen
Вообще говоря, никто не мешает находу перекомпилировать меод и подпатчить работающий код даже компилируемый в нейтив код
Это runtime теория. Несколько постов назад вы утверждали обратное.
Это слишком круто для X++. А так, да - теоретически можно.
Alt 21.04.2009, 11:46   #24  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Zitat:
Zitat von DSPIC Beitrag anzeigen
Это runtime теория. Несколько постов назад вы утверждали обратное.
Это слишком круто для X++. А так, да - теоретически можно.
Ну -
1. X++ компилирует не в нейтив.
2. Возможно просто DLL это метод а не класс в целом. Интересно, что получится, елси на ходу убрать поле класса в class decl.
Alt 21.04.2009, 12:41   #25  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von fed Beitrag anzeigen
Я вот начинал учится программировать еще на MSX-Basic
...
можно в случае возникновения runtime-ошибки просто подправить ручками значения переменных.
Эх... msx... Я начинал не на Ямахе, но MSX до сих пор помню и люблю.

А народ похоже уже такими трюками не пользуется. Может и правильно.
Там можно было не только подправить, но и руками выполнить команду resume после исправления переменных... Basic продолжал выполнение программы с места возникновения ошибки. Сейчас такое возможно только если заранее предусмотрена команда retry в catch-блоке.
__________________
полезное на axForum, github, vk, coub.
Alt 21.04.2009, 12:42   #26  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von fed Beitrag anzeigen
P.S. 2Admins: Можно ли подредактировать опцию опроса, включив возможность проголосовать снова, на случай, если кто-нибудь изменит (ещё раз ) своё мнение
Нет. Только создавать новый опрос.
__________________
полезное на axForum, github, vk, coub.
Alt 21.04.2009, 19:10   #27  
db ist offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Registriert seit: 01.04.2004
Ort: Москва
Во, блин, написали. Оказывается я породил вторую серию войнушки
Ну что же, пусть будет третья ....

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

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

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

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

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

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

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

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

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

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

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

а вот книжка с дракончиком от Ахо, Сети и Ульман - авторитет, так что всех за определением компилятора посылаю туда
This post has been rated by: Ruff (2), sukhanchik (10), Lucky13 (2).
Alt 21.04.2009, 20:42   #28  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Zitat:
Zitat von Ruff Beitrag anzeigen
...на языке вертится Грин, но не уверен...
Вспомнил!
Грис Д., Конструирование компиляторов для цифровых вычислительных машин.

Но книжка с драконом, пожалуй, получше.
Alt 21.04.2009, 21:16   #29  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
Zitat:
Zitat von Ruff Beitrag anzeigen
Но книжка с драконом, пожалуй, получше.
ОФФ топ. Да, "Книга дракона" (неофициальное название труда Ахо) это классика. Правда теории многовато. Когда в 92 году сдавали компиляторы, этих книг в Москве вообще было всего несколько штук - пришлось под удостоверением знакомого аспиранта в Политехническую библиотеку пробираться.
Alt 22.04.2009, 00:00   #30  
sukhanchik ist offline
sukhanchik
Administrator
Benutzerbild von sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3.342 / 3563 (125) ++++++++++
Registriert seit: 13.06.2004
Ort: Москва
Нашел книжку с дракончиком.
Name:  pic1.jpg
Hits: 1293
Größe:  73,7 KB

Klicken Sie auf die Grafik für eine größere Ansicht

Name:	pic2.jpg
Hits:	248
Größe:	52,2 KB
ID:	4569
__________________
Возможно сделать все. Вопрос времени
Alt 22.04.2009, 00:08   #31  
sukhanchik ist offline
sukhanchik
Administrator
Benutzerbild von sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3.342 / 3563 (125) ++++++++++
Registriert seit: 13.06.2004
Ort: Москва
Zitat:
Zitat von belugin Beitrag anzeigen
Вообще говоря, никто не мешает находу перекомпилировать меод и подпатчить работающий код даже компилируемый в нейтив код
Если уж никто не спорит с утверждением о том, что компиляция идет из X++ в p-код, а после этого идет интерпретация в чистом виде - то совершенно логично, что перекомпилированный (но запущенный ранее) класс "видит" все изменения.
__________________
Возможно сделать все. Вопрос времени
Alt 22.04.2009, 12:52   #32  
Megacrusher ist offline
Megacrusher
NavAx
Benutzerbild von Megacrusher
NavAx Club
 
175 / 19 (1) ++
Registriert seit: 18.08.2003
Ort: Москва
Ух, сколько понаписали... Мдя, "компиляторы" с небольшим отрывом рулят ! А если опрос покажет что форумчане склоняются к версии о компиляторной версии Axы, то высказывания об интерпретаторной версии станут запретными? Может не много глупый вопрос, но я бы назвал его уточняющим... Другими словами будет ли опрос влиять на дальнейшее распространение этого мнения? И будет ли форум бороться с инакомыслием?
Alt 22.04.2009, 13:09   #33  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Zitat:
Zitat von sukhanchik Beitrag anzeigen
Если уж никто не спорит с утверждением о том, что компиляция идет из X++ в p-код, а после этого идет интерпретация в чистом виде - то совершенно логично, что перекомпилированный (но запущенный ранее) класс "видит" все изменения.
Мне кажется, что это не зависит от того, исполняется ли код виртуальной машиной или железной.

Машинный же код тоже интепретируется процессором. Тут скорее зависит от того, что является единицей загрузки и в каком режиме происходить выгрузка и загрузка.
Alt 22.04.2009, 13:10   #34  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Zitat:
Zitat von Megacrusher Beitrag anzeigen
И будет ли форум бороться с инакомыслием?
Конечно, а если победит партия итепретаторщиков, то под страхом бана заставим всех изменить термины на "инкрементная интерпретация" и "рекомендуем переинтерпретацию всего приложения"
This post has been rated by: db (1), oip (1).
Alt 22.04.2009, 13:27   #35  
Megacrusher ist offline
Megacrusher
NavAx
Benutzerbild von Megacrusher
NavAx Club
 
175 / 19 (1) ++
Registriert seit: 18.08.2003
Ort: Москва
Zitat:
Zitat von belugin Beitrag anzeigen
Конечно, а если победит партия итепретаторщиков, то под страхом бана заставим всех изменить термины на "инкрементная интерпретация" и "рекомендуем переинтерпретацию всего приложения"
Я не это имел ввиду. И спросил неспроста. Вероятнее всего, что будут отсылать к результатам опроса и говорить, мол было обсуждение и решили таким то образом. Типа пользуйся поиском и читай внимательней... У будут указывать на это даже если ты с этим не согласен
Alt 22.04.2009, 14:28   #36  
sukhanchik ist offline
sukhanchik
Administrator
Benutzerbild von sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3.342 / 3563 (125) ++++++++++
Registriert seit: 13.06.2004
Ort: Москва
Форум есть форум. Курилка есть курилка. Никто не обязывает изменять свое представление в зависимости от трепа в курилке. Можно создать опрос - типа - хотите ли вы чтобы в аксапте появилась к примеру разноска от склада. И всем проголосовать за. Но пока МС не посчитает нужным это сделать - ничего не будет.
Так и тут. Пока у нас есть официальный термин от МС-- "компиляция". Поэтому пока от него никто не отказывается.
Но если возникнет еще раз спор на эту тему - то можно будет отослать к опросу и сказать что холивар уже был и закончился со счетом Х:Y в пользу того-то
__________________
Возможно сделать все. Вопрос времени
Alt 22.04.2009, 15:09   #37  
Megacrusher ist offline
Megacrusher
NavAx
Benutzerbild von Megacrusher
NavAx Club
 
175 / 19 (1) ++
Registriert seit: 18.08.2003
Ort: Москва
Zitat:
Zitat von sukhanchik Beitrag anzeigen
Форум есть форум. Курилка есть курилка. Никто не обязывает изменять свое представление в зависимости от трепа в курилке. Можно создать опрос - типа - хотите ли вы чтобы в аксапте появилась к примеру разноска от склада. И всем проголосовать за. Но пока МС не посчитает нужным это сделать - ничего не будет.
Так и тут. Пока у нас есть официальный термин от МС-- "компиляция". Поэтому пока от него никто не отказывается.
Но если возникнет еще раз спор на эту тему - то можно будет отослать к опросу и сказать что холивар уже был и закончился со счетом Х:Y в пользу того-то
Ясна.
Alt 23.04.2009, 10:40   #38  
DSPIC ist offline
DSPIC
Боец
 
1.077 / 1243 (44) ++++++++
Registriert seit: 11.04.2008
Uppp !!!
Не стесняемся голосовать, высказывать и обосновывать свои мнения!
Stichworte
p-код, x++, интерпретатор, компилятор, ядро, трансляция

 

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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 08:49 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.