OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 29 Июль, 2021 15:07

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




Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Суббота, 17 Ноябрь, 2007 21:05 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1649
Valery Solovey писал(а):
Евгений Темиргалеев писал(а):
slim универсален, в отличие от всяких 4-к и прочего.
А почему это четвёрки не универсальны? Это же элементы, из которых состоит синтаксическое дерево? Если Вы после построения дерева остановитесь и сохраните результат на диск, то и получится слим. Если продолжите дальше - получите исполняемый файл. Или я чего-то не понимаю?.

Ну, хотя бы: Вы ужЕ вводите ограничения на арность операций, выражаемых четвёрками...
Кроме того, неплохо бы вспомнить, ЧЕМ (и какого "типа") являлись аргументы в оных "четвёрках" в Инферно/Лимбо - вот вам и ещё одно ограничение (причём ДАЛЕКО не несущественное!)...
Дальше продолжать или - сами ещё "покопаете"? :twisted:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Среда, 16 Январь, 2008 16:01 

Зарегистрирован: Вторник, 04 Июль, 2006 13:04
Сообщения: 88
Откуда: Novosibirsk
Евгений Темиргалеев писал(а):
slim универсален, в отличие от всяких 4-к и прочего.
- фронт-енд строит синт. дерево и это дерево фактически и есть slim. по нему загрзучик бэк-енд генерит код непосредственно под конкретную платформу. Если язык прост (Оберон), то реализовать бэк-енд с нуля надо 3-4 мес. одному человеку (прикидки Франца).
- фронт-енд строит (получает в процессе разбора) дерево, бэк-енд выдает код некоей виртуальной машины. Загрузчик должен преобразовать этот код под конкретную платформу. Всегда найдется (или появится) платформа, сильно отличная от виртуальной машины и от неё придется отказаться.

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

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

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

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

внутренний формат гсс тоже много чего хранит и что?
надо его писать в файл и встроить бэкенд гсс в ядро?

ладно, это все лишнее...

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Среда, 16 Январь, 2008 17:26 

Зарегистрирован: Среда, 28 Февраль, 2007 00:08
Сообщения: 142
Откуда: Нижний Новгород
мда, с обсуждением слимов бардак какой-то, хоть в обе теме посты дублируй :(

свое нынешнее понимание слимов высказал тут: viewtopic.php?p=12454#p12454

Может кто - нибудь в кратце расскажет что есть "четверки"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Среда, 16 Январь, 2008 17:49 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
batyrmastyr писал(а):
Может кто - нибудь в кратце расскажет что есть "четверки"?
Есть кое-что на intuit.ru. В двух словах говорится, что из себя представляют тройки и четвёрки.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Среда, 16 Январь, 2008 18:57 

Зарегистрирован: Среда, 28 Февраль, 2007 00:08
Сообщения: 142
Откуда: Нижний Новгород
Valery Solovey писал(а):
batyrmastyr писал(а):
Может кто - нибудь в кратце расскажет что есть "четверки"?
Есть кое-что на intuit.ru. В двух словах говорится, что из себя представляют тройки и четвёрки.

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

Спасибо, теперь ясно о чем речь. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Среда, 16 Январь, 2008 20:03 
Модератор
Аватара пользователя

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


Если хорошо подумать... То почему вообще это должно фиксироваться на этапе компиляции, а не диспетчироваться оборудованием? Вот в Эльбрусах старых это и делало железо... А Бурцев отметил, что Бабаян в новых Э-х перешёл на распределение компилятором...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Среда, 16 Январь, 2008 20:41 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Илья Ермаков писал(а):
Если хорошо подумать... То почему вообще это должно фиксироваться на этапе компиляции, а не диспетчироваться оборудованием? Вот в Эльбрусах старых это и делало железо... А Бурцев отметил, что Бабаян в новых Э-х перешёл на распределение компилятором...
Если хорошо поискать в старых Эльбрусах мы бинарные модули OCF не увидим. Увидеть бы их самих где-нибудь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Четверг, 17 Январь, 2008 12:33 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Илья Ермаков писал(а):
Если хорошо подумать... То почему вообще это должно фиксироваться на этапе компиляции, а не диспетчироваться оборудованием?
Там, конечно, сложновато написано. Просто это было первое подходящее описание, поэтому его и указал. А имеется в виду там именно назначение памяти, а не её выделение. Как оборудование узнает (или компоновщик) узнает количество требуемой памяти и её структуру, если на этапе компиляции об этом не сообщить?

Или другими словами: есть переменная s, сколько под неё выделить памяти и как отследить правильность её использования? Если не знать типа переменной (не "назначить память периода исполнения"), то это становится проблематичной задачей (хотя и не всегда неразрешимой).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Пятница, 01 Февраль, 2008 10:14 

Зарегистрирован: Вторник, 04 Июль, 2006 13:04
Сообщения: 88
Откуда: Novosibirsk
Владимир Лось писал(а):
Ну, хотя бы: Вы ужЕ вводите ограничения на арность операций, выражаемых четвёрками...
Кроме того, неплохо бы вспомнить, ЧЕМ (и какого "типа") являлись аргументы в оных "четвёрках" в Инферно/Лимбо - вот вам и ещё одно ограничение (причём ДАЛЕКО не несущественное!)...
Дальше продолжать или - сами ещё "покопаете"? :twisted:


...каррирование. операция любой арности может быть представлена МНОЖЕСТВОМ
четверок...
...аргументы четверок могут быть "указателями" на любые обьекты, записанные в
области данных. и их в общем случае может быть произвольное число.
под четверкой ведь не обязательно понимать машинную команду а под ее
аргументами - регистры.
...более того, никто не запрещает иметь например "двойки" или любую бОльшую
арность...

и хватит уже. я не говорю что четверки так уж хороши во всем. я просто привел их
как пример что вот мол существуют и другие варианты с аналогичными преимуществами,
НАПРИМЕР четверки. или ДРУГИЕ варианты. ключевое слово СУЩЕСТВУЮТ.
я лишь привел E-пример опровергающий чрезмерно общее A-утверждение.
ни на что более он не претендует


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Апрель, 2021 04:02 
Аватара пользователя

Зарегистрирован: Среда, 22 Апрель, 2015 23:51
Сообщения: 233
Откуда: г. Рига, Латвийская ССР
Относительно долго я искал описание формата OCF. Слышал, что оно есть, зашёл в ББшное меню по F1, рылся там полчаса, потом поискал на форуме и нашёл пост, где Илья Евгеньевич пишет, что описание находится в Dev/Spec. Как я должен был это найти нормальными путями, если бы не было форума, не знаю.

Файл с описанием называется "ObjFile.odc". Далеко не сразу становится очевидно, что это описание именно Oberon Code File (так ведь расшифровывается OCF, и поэтому ведь подкаталоги называются "Code"?). Логичнее было бы назвать его "CodeFile.ocf".

В описании написано (ссылаюсь на русскую версию из BBCP):
OFTag = 6FX 4FX 43X 46X.

Если же посмотреть в hex-редакторе содержимое любого файла OCF, то начинается оно со следующих четырёх байтов: 46, 43, 4F, 6F.
Я знаю про проблему порядка байтов в целом числе. Обратите внимание, в описании формата не идёт речи о числе 6F4F4346H, а каждый байт выделен чётко и записан в форме литерала типа SHORTCHAR (имеет X на конце, а не H).

Как так вышло? Или я что-то не понимаю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Пятница, 30 Апрель, 2021 10:59 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 494
В упомянутом документе, кроме этой, есть еще несколько неточностей. В процессе работы над Гершелем я его подправляю, см. документ Hr/Docu/ObjFile в репозитории github.com/adimetrius/Herschel. Кроме того, я сделал для чтения этого формата набор сканеров в модуле HrOcf; правда, работа над ним еще не завершена.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Апрель, 2021 18:14 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1382
kekc_leader писал(а):
Если же посмотреть в hex-редакторе содержимое любого файла OCF, то начинается оно со следующих четырёх байтов: 46, 43, 4F, 6F.

А если в текстовом, "FCOo". Очевидно, предполагалось, что там будет "oOCF" и, скорее всего, так и было на 68000.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 08 Май, 2021 12:20 
Аватара пользователя

Зарегистрирован: Воскресенье, 09 Декабрь, 2018 15:14
Сообщения: 74
Откуда: Equestria
Trurl писал(а):
А если в текстовом, "FCOo". Очевидно, предполагалось, что там будет "oOCF" и, скорее всего, так и было на 68000.
Нет, на m68k всё так же записывается в little endian. А вот в исхониках всегда записывается в big endian. т.е. 6F4F4346H.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Суббота, 08 Май, 2021 18:51 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1382
68k тупоконечный же.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бинарные модули OCF
СообщениеДобавлено: Воскресенье, 09 Май, 2021 14:40 
Аватара пользователя

Зарегистрирован: Воскресенье, 09 Декабрь, 2018 15:14
Сообщения: 74
Откуда: Equestria
На всех платформах всё в файл записывается одинаково. Пруфы в версии ББ для macos.


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

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


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

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


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

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