Forth http://fforum.winglion.ru/ |
|
СПФ и оптимизатор http://fforum.winglion.ru/viewtopic.php?f=18&t=159 |
Страница 3 из 25 |
Автор: | ygrek [ Ср авг 16, 2006 11:46 ] |
Заголовок сообщения: | |
oleg писал(а): можно и так. Но в моем случае смещения расчитываются автоматически
последовательность: OVER + SWAP CONSTAN можно заменить на : field: OVER + SWAP CONSTANT ; тогда текст будет чище. Но сути это не изменит. Кстати для этого есть слово -- Код: 0
CELL -- a0 1 -- a4 CELL -- a5 2 CELLS -- a9 1 -- a17 CONSTANT /RecSize |
Автор: | вопрос [ Ср авг 16, 2006 12:17 ] |
Заголовок сообщения: | |
Михаил, в чём-то Олег прав - оптимизация создаёт дополнительные формальные сложности Но перспектива Форта - в развитии оптимизации |
Автор: | ArtemKAD [ Ср авг 16, 2006 16:32 ] |
Заголовок сообщения: | |
oleg писал(а): ArtemKAD писал(а): Не хотелось бы Вас разочаровывать, но написанное Вами на порядок непонятнее чем HERE 0 , 0 , 0 , 0 , ; в чем сложнее и почему на порядок? Стековая нотации 0 - ( -- 0 ) , - ( a -- ) Результат стековая нотация 0 , ( -- ). Отбросив все эквивалентные куски доходим до HERE который имея нотацию ( -- а ) и оставляет wid. Вот разбор Вашего варианта: HERE #VocRec ALLOT \ зарезервировали место под словарь VOC-LIST @ OVER VocBackLink + ! DUP VOC-LIST ! \ связали в список 0 OVER VocLastWord + ! 0 OVER VocName + ! 0 OVER VocParentID + ! 0 OVER VocClass + ! VocLastWord + ; Стековая нотации + - ( a б -- а ) VocLastWord - ( -- а ) \ это надо еще найти - совсем не факт, что константа ! - ( a б -- ) VocClass - ( -- а ) \ это надо еще найти - совсем не факт, что константа OVER ( a б -- а б а ) 0 ( -- 0 ) С какой попытки Вы в уме сможете правильно отследить стековую нотацию куска 0 OVER VocClass + ! если не Вы его написали? 0 ( -- 0 ) OVER ( a 0 -- а 0 а ) VocClass ( а 0 а -- а 0 а б ) + - ( а 0 а б -- а 0 с) ! - ( а 0 с -- а ) Стековая нотация этого куска ( а -- а ) Далее смотрим "похожие" куски с участием VocParentID VocName VocLastWord предварительно найдя в тексте, что это все-таки так-же константы. Одбрасываем эти 4-е куска оставив их стековую нотацию ( а -- а ) Разбираем следующий кусок: DUP VOC-LIST ! .... В общем вспоминаем, что VOC-LIST это переменная и того этот кусок так-же имеет нотацию ( а -- а ) Разбираем следующий кусок: VOC-LIST @ OVER VocBackLink + ! ...... В общем я уже закипел, но что такое wid так еще и не нашел... Мне известно только, что он вычисляется как сумма VocLastWord с каким-то числом. А вот что за число... Так понятнее слова "на порядок сложнее" ? Цитата: ArtemKAD писал(а): Если Вам захотелось все-же обозвать поля заголовка словаря, то лучше всего что-то типа : VocLastWord ( wid -- VocLastWord ) ; : VocName ( wid -- VocName ) 4 + ; ( или CELL + ; ) можно и так. Но в моем случае смещения расчитываются автоматически последовательность: OVER + SWAP CONSTAN можно заменить на : field: OVER + SWAP CONSTANT ; тогда текст будет чище. Но сути это не изменит. Не "можно и так", а НУЖНО именно так. Вы ввели в код 6 новых имен, а теперь приведите пример как Вы их будете использовать например для чтения поля VocName скажем словаря FORTH (или любого другого словаря). Еще 6 имен введете? Намек ясен или показать "в примерах"? Цитата: ArtemKAD писал(а): И хотя VocLastWord стоит в самом конце совсем не очевидно, что это wid. Причина - приходится отслеживать стековую нотацию всего вышестоящего для поиска того с чем же складывается VocLastWord , а там в каждой строке работа как минимум с тремя уровнями стека. У меня обычно при разборе таких записей пар из ушей валит. здесь не понял утверждения 8( причем тут отслеживание стековой нотации? есть всего лишь один базовый адрес! Для того, что-бы найти чему он равен. У Вас в примере он закопан так глубоко, что надо перерыть почти весь код слова. Цитата: ArtemKAD писал(а): Сразу понятно, что wid это то, что вернуло ALLOCATE + CELL ( 4 ) т.к. найти >R не составляет проблем. а что делают остальные поля Дык там-же и комментарии рядом лежат. Большего ответа на вопрос "что делают остальные поля" получить из того кода нельзя. Цитата: и где они распологаются? что такое 6 cells + ? cells ( a -- a*cell ) 6 cells - ( -- 6*cell ) Далее R@ 6 cells + это адрес выделенный по ALLOCATE + 6 ячеек Цитата: что будет, если я захочу добавить еще одно поле? убрать лишнее? Добавить - почти наверняка ничего, а вот убирать я бы Вам не советовал - мало ли какие либы пользуются убраным полем.... Цитата: ArtemKAD писал(а): Тут собственно вопрос спорный. Бо в 99,999% случаев знать поля заголовка словаря и даром не надо, при этом в 99% знать эти поля вредно - программа становится зависимой от реализации. О заголовке надо знать только одно - он идентифицируется wid ( так-же как слово - xt ). Все, что работает с заголовком должно работать через wid. хорошо, давайте делать каждый свой форт и будем счастливы. Мне понадобилось уже несколько раз (при переносе либ со смал32 на спф ) залезть в структуру словаря 8( я использую такую практику. Надеюсь в последствии при переносе перенесенных Вами либ на еще какую нибудь Форт-систему не понадобиться еще раз залезать в структуру словаря той ФОРТ-системы. Бо проблемы как раз и возникли по указанной мной причине - причене смал32-зависимости этих либ. Возможно именно такой подход к либам и не дал развиваться этой Форт-системе . Цитата: И я натыкаюсь на немодифицируемый код, то есть его конечно можно модифицировать, но для этого нужно весь форт перебрать потратив на это достаточно времени, вместо того, чтобы просто добавить еще одно поле в структуру?!
А может стоит попробывать изменить либу так, что-бы она работала на существующем ядре. Иначе достаточно мелкие изменения ядра могут катастрофически отразиться на работе либы . |
Автор: | mOleg [ Чт авг 17, 2006 00:37 ] |
Заголовок сообщения: | |
Mihail писал(а): oleg писал(а):
хорошо, давайте делать каждый свой форт и будем счастливы. Мне понадобилось уже несколько раз (при переносе либ со смал32 на спф ) залезть в структуру словаря 8( я использую такую практику. С этого и надо было начинать. Проблему нужно представить, как она есть. Только нужно еще конкретнее. А то ты предлогаешь решение проблемы, о которой люди не в курсе. Подобное происходит постоянно. я в самом начале описал проблему. |
Автор: | mOleg [ Чт авг 17, 2006 01:40 ] |
Заголовок сообщения: | |
ArtemKAD писал(а): В общем я уже закипел, но что такое wid так еще и не нашел... Мне известно только, что он вычисляется как сумма VocLastWord с каким-то числом. А вот что за число... Так понятнее слова "на порядок сложнее" ? скипаю примеры. Но по сути с тобой я не согласен. К тому же я очень удивлен непониманием общественности сути проблемы 8( если структуры слованой статьи и словаря выделены отдельно, то их легче и понимать и главное модифицировать. Сейчас модифицировать саму статью очень большая проблема, хотя таковой быть не должна. Возможно я назвал достаточно неправильно поля. можно обозвать и так: 0 Cell -- voc_lfa Cell -- >wid и так далее. Но это уже немного другая проблема. Приведенный мною код, даже чужой я читаю гораздо легче, чем простые 0 , \ вместе с комментарием так как по сути коментарий ничего не дает в дальнейшем. А при обращении к полям по имени всегда в тексте можно отождествить то, что делается не вникая в то, как устроена сама словарная статья либо словарь. ArtemKAD писал(а): можно и так. Но в моем случае смещения расчитываются автоматически последовательность: OVER + SWAP CONSTAN можно заменить на : field: OVER + SWAP CONSTANT ; тогда текст будет чище. Но сути это не изменит. Не "можно и так", а НУЖНО именно так. Вы ввели в код 6 новых имен, а теперь приведите пример как Вы их будете использовать например для чтения поля VocName скажем словаря FORTH (или любого другого словаря). Еще 6 имен введете? Намек ясен или показать "в примерах"? Можно ввести хоть еще 20 новых, если текст станет от этого чище и полезнее. (смотри в реализацию парсера СПФ, предложенную Черезовым. Там вместо одного слова WORD десяток более мелких, но зато более полезных.) Кстати насчет показывания в примерах - давай, покажи примеры. ArtemKAD писал(а): здесь не понял утверждения 8( причем тут отслеживание стековой нотации? есть всего лишь один базовый адрес! Для того, что-бы найти чему он равен. У Вас в примере он закопан так глубоко, что надо перерыть почти весь код слова. и закопан адрес не глубоко - нет ни pick ни roll для его доставания. с чего бы это? по-моему все ясно. ( тут одна проблема есть - при постах в форум форматирование улетает 8( все пробелы с начала строки уходят. Тогда да не так понятно получается 8( ) И еще насчет перерывания кода слова - там всего несколько строк. И при желании можно добавить коментарии. Но формат статьи будет задокументирован уже в коде, а не на словах. ArtemKAD писал(а): Цитата: ArtemKAD писал(а): Сразу понятно, что wid это то, что вернуло ALLOCATE + CELL ( 4 ) т.к. найти >R не составляет проблем. а что делают остальные поля Дык там-же и комментарии рядом лежат. Большего ответа на вопрос "что делают остальные поля" получить из того кода нельзя. И как мне получить информацию о полях из интерпретатора? Каким образом? парсить комментарии исходников? не слишком ли? ArtemKAD писал(а): Цитата: и где они распологаются? что такое 6 cells + ? cells ( a -- a*cell ) 6 cells - ( -- 6*cell ) Далее R@ 6 cells + это адрес выделенный по ALLOCATE + 6 ячеек И что там находится? Могу еще один перл привести: : CLASS! ( cls wid -- ) CELL+ CELL+ CELL+ ! ; и что бы это значило? И что здесь делать, если добавлено еще одно поле? А таких слова в СПФ мноого! Если бы использовалась структура мне не пришлось бы лезть в этот код! А так при копании в СПФ руки опускаются 8((( ArtemKAD писал(а): Цитата: что будет, если я захочу добавить еще одно поле? убрать лишнее? Добавить - почти наверняка ничего, а вот убирать я бы Вам не советовал - мало ли какие либы пользуются убраным полем.... Вот это самое неприятное - использование хаков при написании либ. Вот в результате таких вещей и не работают многие либы 8( А совместимость обеспечить просто. ArtemKAD писал(а): Надеюсь в последствии при переносе перенесенных Вами либ на еще какую нибудь Форт-систему не понадобиться еще раз залезать в структуру словаря той ФОРТ-системы. Бо проблемы как раз и возникли по указанной мной причине - причене смал32-зависимости этих либ. Возможно именно такой подход к либам и не дал развиваться этой Форт-системе . Смал здесь не причем. Развиваться он перестал из за создателя - он не открыл код 8( Хотя порт смала под винду есть, но тоже без исходников. Смал спроектирован гораздо лучше СПФа и встреченных в спф-е проблем в смале нет. Залезать в структуру словарной статьи придется по любому. Но это не проблема, когда она описана нормально, все что необходимо добавляется максимум двумя-тремя строчками. ArtemKAD писал(а): И я натыкаюсь на немодифицируемый код, то есть его конечно можно модифицировать, но для этого нужно весь форт перебрать потратив на это достаточно времени, вместо того, чтобы просто добавить еще одно поле в структуру?!
А может стоит попробывать изменить либу так, что-бы она работала на существующем ядре. Иначе достаточно мелкие изменения ядра могут катастрофически отразиться на работе либы . Мне необходимо иметь возможность попадать в нужное поле слова и добавлять при необходимости свои поля в структуру слова. Тут нет ничего страшного, если все сделано как положено, а не через хак. |
Автор: | WingLion [ Чт авг 17, 2006 08:39 ] |
Заголовок сообщения: | |
oleg писал(а): ( тут одна проблема есть - при постах в форум форматирование улетает 8( все пробелы с начала строки уходят. Тогда да не так понятно получается 8( )
Кстати, чтобы пробелы не улетали, надо использовать окружение code, т.е. вот так: Код: текст с длиннными пробелами
Можно еще в качестве табулятоа использовать html-тег < dd > (без пробелов внутри скобок). Но с dd проблема в том, что не все браузеры его правильно отрабатывают ("правильно" - я называю так, как в IE). <dd>Тогда <dd><dd>можно <dd><dd><dd>сделать <dd><dd><dd><dd>и так |
Автор: | Mihail [ Чт авг 17, 2006 13:20 ] |
Заголовок сообщения: | |
oleg писал(а): Смал спроектирован гораздо лучше СПФа и встреченных в спф-е проблем в смале нет.
Залезать в структуру словарной статьи придется по любому. Но это не проблема, когда она описана нормально, все что необходимо добавляется максимум двумя-тремя строчками. Приведи конкретный пример. И как он решается в СМОЛ и какие проблемы в СПФ? |
Автор: | ArtemKAD [ Чт авг 17, 2006 15:06 ] |
Заголовок сообщения: | |
oleg писал(а): К тому же я очень удивлен непониманием общественности сути проблемы 8( Может потому, что для остальных этой проблемы просто не существует ?Цитата: если структуры слованой статьи и словаря выделены отдельно, то их легче и понимать и главное модифицировать. Сейчас модифицировать саму статью очень большая проблема, хотя таковой быть не должна. Проблема добавить 0 , и свой комментарий, что-бы стало ясно, что это место уже кто-то забил? Цитата: Возможно я назвал достаточно неправильно поля. можно обозвать и так: Уже вижу, что Вы не поняли. Проблема была не в том, как написан этот кусок, а в том, что у Вас получились не функциональные слова - их НИГДЕ кроме определения слова WORDLIST нельзя использовать т.к. только в этом месте заголовок адресуется с начала. В остальных местах он адресуется с wid .0 Cell -- voc_lfa Cell -- >wid Цитата: Приведенный мною код, даже чужой я читаю гораздо легче, чем простые 0 , \ вместе с комментарием так как по сути коментарий ничего не дает в дальнейшем. А при обращении к полям по имени всегда в тексте можно отождествить то, что делается не вникая в то, как устроена сама словарная статья либо словарь. А зачем вникать если Вы его (поле) не используете? Там ведь 0 , на всех полях кроме 3-х только это и означает - кто-то подумал, что в будущем может понадобиться в заголовке дополнительное поле. Вот он его и добавил, и добавил слова для работы с этим полем относительно wid. Причем совсем не факт, что это поле было использовано. Например попробуйте найти использование слов PAR@ PAR! .... Цитата: ArtemKAD писал(а): Не "можно и так", а НУЖНО именно так. Вы ввели в код 6 новых имен, а теперь приведите пример как Вы их будете использовать например для чтения поля VocName скажем словаря FORTH (или любого другого словаря). Еще 6 имен введете? Намек ясен или показать "в примерах"? Можно ввести хоть еще 20 новых, если текст станет от этого чище и полезнее. (смотри в реализацию парсера СПФ, предложенную Черезовым. Там вместо одного слова WORD десяток более мелких, но зато более полезных.) Вы спросите у Черезова как он смотрит на подобное разнообразие слов . Добавив 20 новых слов текст практически НИКОГДА чище не станет. Цитата: Кстати насчет показывания в примерах - давай, покажи примеры. А че показывать-то. В коде словарь мы обычно видим как CONTEXT @ ( wid ), а все Ваши константы построены относительно поля VocBackLink которое надо еще как-то получить... Т.е. они стали "мертвым грузом". Цитата: и закопан адрес не глубоко - нет ни pick ни roll для его доставания. Используйте CODE. Пример смотрите Выше. Но это не выход - что Вы имели ввиду форматируя код отступами кроме Вас мало кто поймет...с чего бы это? по-моему все ясно. ( тут одна проблема есть - при постах в форум форматирование улетает 8( все пробелы с начала строки уходят. Тогда да не так понятно получается 8( ) Цитата: ArtemKAD писал(а): а что делают остальные поля Дык там-же и комментарии рядом лежат. Большего ответа на вопрос "что делают остальные поля" получить из того кода нельзя. И как мне получить информацию о полях из интерпретатора? Каким образом? парсить комментарии исходников? не слишком ли? Цитата: И что там находится? Могу еще один перл привести: Значит абсолютно то, что значит - записать число в поле "CLASS". Что значит это поле - как говориться "догадуйся сам". Пока я видел использование этого поля только у Немцова. Если хочешь иметь совместимость с ним используй с учетом того как он это делает. Иначе это поле полностью на твое усмотрение.: CLASS! ( cls wid -- ) CELL+ CELL+ CELL+ ! ; и что бы это значило? И что здесь делать, если добавлено еще одно поле? По поводу "если добавлено еще одно поле?" - добавляй. Слово CLASS! при этом не изменится. Естественно, если ты нормально его добавишь... Цитата: Если бы использовалась структура мне не пришлось бы лезть в этот код! Пришлось... По крайней мере при такой структуре как ты привел . Цитата: Вот это самое неприятное - использование хаков при написании либ. Вот в результате таких вещей и не работают многие либы 8( А совместимость обеспечить просто. Ты не поверишь - все работают и хаков не используют . Там далее в файле есть все, что может понадобиться для работы с заголовком словаря. Вот тем все и работают. Т.е. гарантируется, что CLASS! запишит в поле "CLASS" вот этим словом в его и пишут. При этом как-бы не менялся заголовок результат не изменится! Цитата: ArtemKAD писал(а): И я натыкаюсь на немодифицируемый код, то есть его конечно можно модифицировать, но для этого нужно весь форт перебрать потратив на это достаточно времени, вместо того, чтобы просто добавить еще одно поле в структуру?! А может стоит попробывать изменить либу так, что-бы она работала на существующем ядре. Иначе достаточно мелкие изменения ядра могут катастрофически отразиться на работе либы . Мне необходимо иметь возможность попадать в нужное поле слова и добавлять при необходимости свои поля в структуру слова. Тут нет ничего страшного, если все сделано как положено, а не через хак. ДОБАВЛЯЙ, но с учетом сохранения работоспособности всего предыдущего. Например - адрес с которого исполняется любое слово лежит в CFA. НИЧЕГО не мешает изменить этот адрес с учетом хоть сотни новых полей в слове и при этом эти слова все еще чесно будут работать. |
Автор: | mOleg [ Чт авг 17, 2006 22:23 ] |
Заголовок сообщения: | |
Mihail писал(а): oleg писал(а):
Смал спроектирован гораздо лучше СПФа и встреченных в спф-е проблем в смале нет. Залезать в структуру словарной статьи придется по любому. Но это не проблема, когда она описана нормально, все что необходимо добавляется максимум двумя-тремя строчками. Приведи конкретный пример. И как он решается в СМОЛ и какие проблемы в СПФ? : ShowMe Create Archive Does> Body> >name 20 + Print ; ShowMe напиши то же на СПФ |
Автор: | mOleg [ Чт авг 17, 2006 22:59 ] |
Заголовок сообщения: | |
ArtemKAD писал(а): Цитата: если структуры слованой статьи и словаря выделены отдельно, то их легче и понимать и главное модифицировать. Сейчас модифицировать саму статью очень большая проблема, хотя таковой быть не должна. Проблема добавить 0 , и свой комментарий, что-бы стало ясно, что это место уже кто-то забил? Да, проблема, так как править нужно в десятке мест. ArtemKAD писал(а): Цитата: Возможно я назвал достаточно неправильно поля. можно обозвать и так: 0 Cell -- voc_lfa Cell -- >wid Уже вижу, что Вы не поняли. Проблема была не в том, как написан этот кусок, а в том, что у Вас получились не функциональные слова - их НИГДЕ кроме определения слова WORDLIST нельзя использовать т.к. только в этом месте заголовок адресуется с начала. В остальных местах он адресуется с wid . а какая разница, с какого поля идет адресация? Если я использую струкутуру для описания статьи, то порядок полей я могу поменять, например для того же выравнивания полей. ( сейчас в спф поля идут в таком порядке CELL BYTE CELL BYTE - хотя правильнее было бы CELL CELL BYTE BYTE А теперь давайте поменяем поля местами !8) сколько сразу всего перестанет работать? а ведь не должно переставать! : <wid ( wid --> start ) 0 VocLastWord - ; : FREE-WORDLIST ( wid --> ) <wid FREE THROW ; : CLASS! ( cls wid --> ) <wid VocClass ! ; Еще примеры? Я не утверждаю, что это лучший подход! Но тот же wid мог бы находиться в начале записи и мой подход не вызвал бы у вас данного замечания. А какая разница, как в памяти расположены поля?! ArtemKAD писал(а): Цитата: Приведенный мною код, даже чужой я читаю гораздо легче, чем простые 0 , \ вместе с комментарием так как по сути коментарий ничего не дает в дальнейшем. А при обращении к полям по имени всегда в тексте можно отождествить то, что делается не вникая в то, как устроена сама словарная статья либо словарь. А зачем вникать если Вы его (поле) не используете? Там ведь 0 , на всех полях кроме 3-х только это и означает - кто-то подумал, что в будущем может понадобиться в заголовке дополнительное поле. Вот он его и добавил, и добавил слова для работы с этим полем относительно wid. Причем совсем не факт, что это поле было использовано. Например попробуйте найти использование слов PAR@ PAR! .... А вот я захочу память поберечь! К тому же я говорил о том, что приходится вникать в код и править его во многих местах вместо одного. ArtemKAD писал(а): Цитата: ArtemKAD писал(а): Добавив 20 новых слов текст практически НИКОГДА чище не станет. Он станет не чище, а легче. Впрочем и чище тоже. И проще. ArtemKAD писал(а): Цитата: Кстати насчет показывания в примерах - давай, покажи примеры. А че показывать-то. В коде словарь мы обычно видим как CONTEXT @ ( wid ), а все Ваши константы построены относительно поля VocBackLink которое надо еще как-то получить... Т.е. они стали "мертвым грузом". я привел начало работы, в качестве примера. Простейшим вариантом было бы поменять порядок полей так, чтобы wid оказался в самом начале и небыло бы тогда "отрицательных полей"(смещений). Сам я еще до конца не решил, как сделать лучше. К тому же я наткнулся на ряд неудобств, связанных с тем, что тот же HEADER определен в двух местах(одинаковый почти) то есть нужно либо оба править, либо выносить его в отдельный файл и подключать в двух местах. Я считаю ваши замечания некорректными, так как они(замечания) не по сути проблемы, а по методике решения(которых может быть много). ArtemKAD писал(а): И как мне получить информацию о полях из интерпретатора? Каким образом? парсить комментарии исходников? не слишком ли? Нет, посмотреть как используются поля в либах. Другого способа просто нет т.к. часть полей там была просто "заложена на будущее" Воот! А меня это не должно заботить! И все поля слова должны быть доступны через слова, которые должны их сами находить( это могут быть смещения, а может быть и что-то другое). При этом добавления хоть десятка полей в словарную статью не должно повредить ни одной внешней либе. ArtemKAD писал(а): Цитата: И что там находится? Могу еще один перл привести: : CLASS! ( cls wid -- ) CELL+ CELL+ CELL+ ! ; и что бы это значило? И что здесь делать, если добавлено еще одно поле? Значит абсолютно то, что значит - записать число в поле "CLASS". Что значит это поле - как говориться "догадуйся сам". да причем тут значение поля? что значит Cell+ Cell+ Cell+ ???? мне это ничего не говорит! и не может сказать! ArtemKAD писал(а): По поводу "если добавлено еще одно поле?" - добавляй. Слово CLASS! при этом не изменится. Естественно, если ты нормально его добавишь... да, а как это нормально? а если перед этим полем я свое захочу добавить?) тоже не изменится? ArtemKAD писал(а): Мне необходимо иметь возможность попадать в нужное поле слова и добавлять при необходимости свои поля в структуру слова. Тут нет ничего страшного, если все сделано как положено, а не через хак.
ДОБАВЛЯЙ, но с учетом сохранения работоспособности всего предыдущего. Например - адрес с которого исполняется любое слово лежит в CFA. НИЧЕГО не мешает изменить этот адрес с учетом хоть сотни новых полей в слове и при этом эти слова все еще чесно будут работать. Ладно, разговор перерастает в что-то нехорошее 8( Доделаю, приведу окончательный код, если конечно у меня хватит терпения все это перыть 8( |
Автор: | ArtemKAD [ Чт авг 17, 2006 23:53 ] |
Заголовок сообщения: | |
oleg писал(а): : ShowMe Create Archive Does> Body> >name 20 + Print ;
ShowMe напиши то же на СПФ Че делает ARCHIVE да и PRINT то-же? А вообще : SHOWME CREATE LAST @ , DOES> @ COUNT TYPE ; |
Автор: | ArtemKAD [ Пт авг 18, 2006 00:03 ] |
Заголовок сообщения: | |
oleg писал(а): да, а как это нормально? За пределами уже определенных полей (до, после - без разницы) oleg писал(а): если перед этим полем я свое захочу добавить?) тоже не изменится? Ну тогда не обижайся, что для того, что-бы заработали хоть какие-то либы на полученной тобой форт-системе тебе придется все переписывать самому. oleg писал(а): да причем тут значение поля? что значит Cell+ Cell+ Cell+ ???? мне это ничего не говорит! и не может сказать! И не должно сказат !!!! Ты эти Cell+ Cell+ Cell+ не должен использовать НИ КАКИМ образом. Бо иначе будет тот самый хак... Цитата: Да, проблема, так как править нужно в десятке мест Не-а . Просто не трогать это . Тогда и править не придется .
|
Автор: | ArtemKAD [ Пт авг 18, 2006 00:11 ] |
Заголовок сообщения: | |
oleg писал(а): сейчас в спф поля идут в таком порядке CELL BYTE CELL BYTE - хотя правильнее было бы CELL CELL BYTE BYTE
Это где Вы нашли в SPF такой порядок полей? Там-же по человечески написано 0 , 0 , 0 , 0 , т.е. CELL CELL CELL CELL ... И кстати что значит "правильнее было бы "? Чем правильнее? |
Автор: | mOleg [ Пт авг 18, 2006 00:21 ] |
Заголовок сообщения: | |
ArtemKAD писал(а): oleg писал(а):
: ShowMe Create Archive Does> Body> >name 20 + Print ; напиши то же на СПФ Че делает ARCHIVE да и PRINT то-же? А вообще : SHOWME CREATE LAST @ , DOES> @ COUNT TYPE ; : PRINT COUNT TYPE ; ARCHIVE - это уже к целевому компилятору относится. Говорит что данное слово при сохранении в готовый ехешник нужно оставить целиком( вместе со словарной статьей) Теперь, то же самое, но без LAST @ , в части create? |
Автор: | mOleg [ Пт авг 18, 2006 00:30 ] |
Заголовок сообщения: | |
ArtemKAD писал(а): oleg писал(а):
сейчас в спф поля идут в таком порядке CELL BYTE CELL BYTE - хотя правильнее было бы CELL CELL BYTE BYTE Это где Вы нашли в SPF такой порядок полей? Там-же по человечески написано 0 , 0 , 0 , 0 , т.е. CELL CELL CELL CELL ... И кстати что значит "правильнее было бы "? Чем правильнее? сейчас у спф формат словарной статьи ( а не словаря, о чем говорилось ранее:) на сколько я понимаю такой: cell cfa - sheader byte flags - sheader cell backlink - +sword byte #name - +sword string name - +sword cell [wid] - +sword aligned - sheader --- отсюда начинается cfa а правильнее располагать поля по адресам кратным 4 или даже 16 то есть выравнивать. |
Страница 3 из 25 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |