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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.04.2009, 11:18   #24  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Да, тема потихоньку сползла в терминологический спор.
Хочется освежить. Почему встал вопрос о том, к какому типу языков отнести Х++?
Потому что было проведено некорректное сравнение Х++ с С++:

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

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

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

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

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

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

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

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

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

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

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

P.S. 2Admins: Можно ли подредактировать опцию опроса, включив возможность проголосовать снова, на случай, если кто-нибудь изменит (ещё раз ) своё мнение
Вложения
Тип файла: xpo PrivateProject_RunTimeTest.xpo (3.3 Кб, 236 просмотров)

Последний раз редактировалось DSPIC; 21.04.2009 в 11:22.
Теги
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, время: 21:17.