OberonCore
https://forum.oberoncore.ru/

Бинарные модули OCF
https://forum.oberoncore.ru/viewtopic.php?f=2&t=708
Страница 4 из 4

Автор:  Wlad [ Суббота, 17 Ноябрь, 2007 21:05 ]
Заголовок сообщения:  Re: Бинарные модули OCF

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

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

Автор:  CheshireCat [ Среда, 16 Январь, 2008 16:01 ]
Заголовок сообщения:  Re: Бинарные модули OCF

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

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

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

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

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

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

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

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

Автор:  batyrmastyr [ Среда, 16 Январь, 2008 17:26 ]
Заголовок сообщения:  Re: Бинарные модули OCF

мда, с обсуждением слимов бардак какой-то, хоть в обе теме посты дублируй :(

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

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

Автор:  Valery Solovey [ Среда, 16 Январь, 2008 17:49 ]
Заголовок сообщения:  Re: Бинарные модули OCF

batyrmastyr писал(а):
Может кто - нибудь в кратце расскажет что есть "четверки"?
Есть кое-что на intuit.ru. В двух словах говорится, что из себя представляют тройки и четвёрки.

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

Автор:  batyrmastyr [ Среда, 16 Январь, 2008 18:57 ]
Заголовок сообщения:  Re: Бинарные модули OCF

Valery Solovey писал(а):
batyrmastyr писал(а):
Может кто - нибудь в кратце расскажет что есть "четверки"?
Есть кое-что на intuit.ru. В двух словах говорится, что из себя представляют тройки и четвёрки.

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

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

Автор:  Илья Ермаков [ Среда, 16 Январь, 2008 20:03 ]
Заголовок сообщения:  Re: Бинарные модули OCF

Цитата:
При генерации объектного кода каждой переменной, как временной, так и определенной в исходной программе, назначается память периода исполнения, адрес которой обычно хранится в таблице генератора кода.


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

Автор:  Сергей Оборотов [ Среда, 16 Январь, 2008 20:41 ]
Заголовок сообщения:  Re: Бинарные модули OCF

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

Автор:  Valery Solovey [ Четверг, 17 Январь, 2008 12:33 ]
Заголовок сообщения:  Re: Бинарные модули OCF

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

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

Автор:  CheshireCat [ Пятница, 01 Февраль, 2008 10:14 ]
Заголовок сообщения:  Re: Бинарные модули OCF

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


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

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

Автор:  kekc_leader [ Пятница, 30 Апрель, 2021 04:02 ]
Заголовок сообщения:  Некорректная спецификация формата OCF

Относительно долго я искал описание формата 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).

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

Автор:  adimetrius [ Пятница, 30 Апрель, 2021 10:59 ]
Заголовок сообщения:  Re: Бинарные модули OCF

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

Автор:  Trurl [ Пятница, 30 Апрель, 2021 18:14 ]
Заголовок сообщения:  Re: Некорректная спецификация формата OCF

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

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

Автор:  SovietPony [ Суббота, 08 Май, 2021 12:20 ]
Заголовок сообщения:  Re: Некорректная спецификация формата OCF

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

Автор:  Trurl [ Суббота, 08 Май, 2021 18:51 ]
Заголовок сообщения:  Re: Бинарные модули OCF

68k тупоконечный же.

Автор:  SovietPony [ Воскресенье, 09 Май, 2021 14:40 ]
Заголовок сообщения:  Re: Бинарные модули OCF

На всех платформах всё в файл записывается одинаково. Пруфы в версии ББ для macos.

Страница 4 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/