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-к и прочего. А почему это четвёрки не универсальны? Это же элементы, из которых состоит синтаксическое дерево? Если Вы после построения дерева остановитесь и сохраните результат на диск, то и получится слим. Если продолжите дальше - получите исполняемый файл. Или я чего-то не понимаю?.Ну, хотя бы: Вы ужЕ вводите ограничения на арность операций, выражаемых четвёрками... Кроме того, неплохо бы вспомнить, ЧЕМ (и какого "типа") являлись аргументы в оных "четвёрках" в Инферно/Лимбо - вот вам и ещё одно ограничение (причём ДАЛЕКО не несущественное!)... Дальше продолжать или - сами ещё "покопаете"? |
Автор: | 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 |
Владимир Лось писал(а): Ну, хотя бы: Вы ужЕ вводите ограничения на арность операций, выражаемых четвёрками... Кроме того, неплохо бы вспомнить, ЧЕМ (и какого "типа") являлись аргументы в оных "четвёрках" в Инферно/Лимбо - вот вам и ещё одно ограничение (причём ДАЛЕКО не несущественное!)... Дальше продолжать или - сами ещё "покопаете"? ...каррирование. операция любой арности может быть представлена МНОЖЕСТВОМ четверок... ...аргументы четверок могут быть "указателями" на любые обьекты, записанные в области данных. и их в общем случае может быть произвольное число. под четверкой ведь не обязательно понимать машинную команду а под ее аргументами - регистры. ...более того, никто не запрещает иметь например "двойки" или любую бОльшую арность... и хватит уже. я не говорю что четверки так уж хороши во всем. я просто привел их как пример что вот мол существуют и другие варианты с аналогичными преимуществами, НАПРИМЕР четверки. или ДРУГИЕ варианты. ключевое слово СУЩЕСТВУЮТ. я лишь привел 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/ |