OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 18 Октябрь, 2019 01:39

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 131 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 30 Декабрь, 2005 20:12 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Короче оно машинного кода или нет, не столь важно. Важно то, что оно может быть дано без обращения к тексту как таковому. Я имею в виду манипуляции с самим этим представлением через нетекстовый интерфейс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 30 Декабрь, 2005 23:46 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Работают через Disp. Для пользователя - обычные объекты ББ, типа:
Browser = POINTER TO RECORD (CtlT.Object)


Откуда эти обертки берутся? Compiler-magic как раз в том, что никакие обертки не нужны.

Илья Ермаков писал(а):
(Вот, кстати, классический пример уродливого решения - двойная объектная модель.


Все нормально. Для статически типизированных языков удобнее Vtabe, для динамических - IDispatch. На дельфе удобно и то и другое ;)

Илья Ермаков писал(а):
После этого любой уважающий общепризнанные стандарты программист должен был писать к своим приложениям уродливые IDispatch, и COM-программирование превратилось в пытку...


Я писал COM-сервера на С++. Поддержка двойной дисчпетчеризации включается одной галочкой в визарде. Про какую пытку речь?

Илья Ермаков писал(а):
Причину Microsoft назвала единственную: без IDispatch с COM не будет работать Visual Basic :-)


Ты вообще работал с  COM или VB?

Илья Ермаков писал(а):
Это так называемый Direct-To-COM компилятор, задействуется подключением псевдомодуля COM.


И в чем там magic? Ссылки хотя-бы считаются (без помощи GC)?

Илья Ермаков писал(а):
In contrast to C and C++, programmers using the DTC Component Pascal compiler do not need to worry about reference counting. The compiler automatically generates calls of an object's AddRef and Release methods where necessary,


Типа компилятор считает ссылки. Хотя все равно было бы интересно проглялеть, что он сгенерит при копировании двух рекордов с указателями на интерфейсы. Кстати, уважающие себя программисты на С++ подсчетом ссылок никогда не заморачивались.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 30 Декабрь, 2005 23:49 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Сохраняющее ту часть высокоуровневой семантики, которая нужна для оптимизации.


И где эта граница между имеющей значение семантики и не имеющей?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 31 Декабрь, 2005 00:26 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9147
Откуда: Россия, Орёл
Цитата:
Ты вообще работал с COM или VB?

Он мне было понадобился для одного проекта (потом оказался не нужным), и в связи с этим я начал разбираться. Читал книжку от Microsoft: Дэвид Чеппел "ActiveX и OLE". Она раннего времени, когда COM был еще очень свежей технологией. Так вот, там "русским по белому" я прочитал, что IDispatch введен именно для поддержки работы с автоматизацией приложений на VB: "Хотя COM можно использовать для обеспечения программируемости, сама по себе COM не предоставляет такому простому языку, как VisualBasic, способа воспользоваться этой программируемостью. Для решения этой проблемы группа VisualBasic разработала стандартный COM-интерфейс IDispatch. Любое приложение, предоставляющее свои внутренние функции другим программам, - т.е. программируемое приложение, может осуществить это через данный интерфейс." А как же все красивые механизмы COM - вызовы через виртуальные таблицы, маршаллинг и т.п., если большинство интерфейсов автоматизации стало писаться через этот примитивизм IDispatch? Т.е. все эти концепции работают для IDispacth, а мы работаем только через него? По номерам методов и с ограниченными типами параметров... Чем это лучше pipes или filemapping? Такая непоследовательность меня очень раздражала...
Потому и пытка: "пытка работой с уродливым и концепциями" :-)

Цитата:

Откуда эти обертки берутся? Compiler-magic как раз в том, что никакие обертки не нужны.
Я и сказал, что, насколько я понял, для IDispcatch compiler-magic нет. Какие мы все невнимательные :-) Или скорочитающие...

Цитата:
И где эта граница между имеющей значение семантики и не имеющей?

Я не специалист по кодогенерации и точно не скажу. Но машинный код для одного типа процессоров крайне сложно перевести в оптимальный машинный код для другого типа. Не говоря о стековой машине, которая вообще неэффективнна на CISC-процессорах. Не говоря о том, что код в обратной польской записи для такой стековой машины не поддается оптимизации вообще. (См. Пратта и Зелковица "ЯП" или Ахо, Рави, Сети "Компиляторы - принципы, технологии инструменты". Там это все разжевывается).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 31 Декабрь, 2005 00:55 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Потому и пытка: "пытка работой с уродливым и концепциями" :-)


1) Я не знаю как древние VB, но начиная с 98 года точно VB может (и предпочитает по возможности) работать через VTable.
2) Поддержка IDispatch (для тебя как разработчика COM-сервера) дается нахаляву при доступности библиотеки типов (грубо говоря - если ты описываешь интерфейсы в IDL,  а не изобретаешь велосипед).
3) В языках без прямой поддержки IDispatch работают или через VTable или через обертки, генерируемые из библиотек типов.

Илья Ермаков писал(а):
Я не специалист по кодогенерации и точно не скажу. Но машинный код для одного типа процессоров крайне сложно перевести в оптимальный машинный код для другого типа. Не говоря о стековой машине, которая вообще неэффективнна на CISC-процессорах. Не говоря о том, что код в обратной польской записи для такой стековой машины не поддается оптимизации вообще. (См. Пратта и Зелковица "ЯП" или Ахо, Рави, Сети "Компиляторы - принципы, технологии инструменты". Там это все разжевывается).


Конкретно у "Ахо, Рави, Сети" я такого ограничения не припомню. Гляну еще раз на досуге.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 31 Декабрь, 2005 14:39 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Рави и Сети - это один человек Рави Сети. Действительно, повнимательнее надо быть. А постфиксная запись сама по себе относится к способу трансляции выражений. То - что калькуляторы делали. И оптимизации там нет не из-за неё, а потому, что самой памяти маловато.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 31 Декабрь, 2005 15:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9147
Откуда: Россия, Орёл
Постфиксную запись очень сложно преобразовать в хороший код для регистровых процессоров. Потому JVM даже с JIT не шибко быстро работает. На выполнение постфиксного кода приходится очень много push и pop, а большинство, например, CISC-инструкций не используется. В результате обычный процессор работает в том режиме, под который он не предназначался, вообще говоря.

Именно поэтому в компиляторах постфиксная запись как промежуточная форма для кодогенерации используется в основном в учебных целях.
А так - трехадресный код в основном - ему уделено основное внимание у Ахо, УЛЬМАНА (да, забыл вот его тогда, бедного) и Рави Сети (которые есть одно и то же лицо :-), либо различные древовидные представления (у того же Франца - дерево, свертнутое в компактный линейный код со словарем - похоже на некоторые алгоритмы архивации).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 01 Январь, 2006 03:45 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Так это два разных вопроса. Неэффективность использования регистров стековой машиной и невозможность оптимизации постфиксной записи. Я, кстати говоря, с первым и не спорил. А оптимизировать постфиксную запись ( запись, а не код ) не сложнее чем непостфиксную.
P.S. Стоит наверное упомянуть и стек регистров арифметики чисел с плавающей точкой. Круг операций над ними ограничен и сами они заменяют математические функции. Поэтому и стек вполне органично выглядит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 01 Январь, 2006 19:05 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9147
Откуда: Россия, Орёл
Ну да, ошибся, погорячился, исправлюсь :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 02 Январь, 2006 01:10 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Серьёзные слова. А представление Франца дает возможность подставить вместо процедуры её определение?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 02 Январь, 2006 01:18 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9147
Откуда: Россия, Орёл
Посмотрите его дисер - я же ссылку давал... Я изучал в общих чертах, давно, сейчас не скажу точно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 02 Январь, 2006 12:27 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Спасибо Вам за неё. Если будет свободное время загрузите следующий файл:http://www.southern-storm.com.au/download/libjit-0.0.4.tar.gz.Интересно будет сравнить впоследствии эти подходы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 04 Январь, 2006 19:07 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 18:08
Сообщения: 76
2 Илья Ермаков
Цитата:
Реализованная система предоставляет компилятор Oberon-SDE, который преобразует программы, написанные на языке программирования Oberon [Wir88] в файлы с SDE-представлением, а также кодогенерирующий загрузчик (code-generating loader), который считывает SDE-файлы и использует содержащуюся в них информацию для динамической кодогенерации под процессор Motorola 68020 [Mot87].


Это цитата из диссертации, на которую Вы давали ссылку http://www.uni-vologda.ac.ru/oberon/infoart/otherfly.htm

Может Вы знаете, где можно взять тот самый компилятор и загрузчик? Ссылки на сайте http://www.uni-vologda.ac.ru/oberon/index.html по Juice - не работают.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 04 Январь, 2006 20:11 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4313
Откуда: Россия, Орёл
Обратитесь к сайту http://www.oberon2005.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 04 Январь, 2006 22:09 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Juice, насколько мне известно - язык апплетов. То есть, как только апплет готов к исполнению сразу исполняется. Я думаю, Cardinal говорил об обычных приложениях и замене объектных модулей новым представлением. Или это не интересно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 04 Январь, 2006 22:58 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 18:08
Сообщения: 76
Нашел то, что искал: http://blackbox.thundersign.su/Files/Juice.zip. А вот что я имел в виду, сам не знаю :wink: . Мне интересно использование Oberon-а вообще, а кроме того сама идея Juice мне нравится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 04 Январь, 2006 23:05 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 18:08
Сообщения: 76
Во! Меня интересует реализация Активного Оберона под MS-DOS! Только нету такой. А приходится мне по роду работы пользоваться Borland Pascal + RTKernel - для многозадачности. Вот только после знакомства с оберонами хочется оберонов...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 05 Январь, 2006 00:21 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9147
Откуда: Россия, Орёл
А что за область такая, что приходится использовать DOS (если не секрет)? Не PTS DOS 2000 от Физтехсофта используете часом?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 05 Январь, 2006 07:56 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 18:08
Сообщения: 76
Контроллеры на базе http://www.octagonsystems.com. В тех, которые использую я, прошита MS-DOS (немного отличается от стандартной, паскалевский модуль CRT использовать нельзя, в остальном - всё тоже самое). Возможно было бы лучше, если была QNX да библиотека Активных Объектов от Владимира Лося, но этого не будет - qnx-а то есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 05 Январь, 2006 09:28 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
А С там можно использовать?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 131 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB