spf писал(а):
DPANS94 хорош в роли общеизвестной спецификации. Я бы сказал, что это лучший вирант из широко известных.
"Широко известной в узких кругах"?
spf писал(а):
Вполне допустимо делать совместимость лишь с произвольными частями общеизвестных спецификаций. Т.е., не обязательно поддерживать совместимость целиком с какой-либо спецификацией; принцип "или все или ничего" здесь совершенно неуместен. Частичная совместимость тоже приносит пользу: автору достаточно сослаться на спецификации (и их части), и незачем описывать то, что уже описано; пользователю форт-системы проще начать ее использовать, если он уже знаком с теми спецификациями, которые поддерживает форт-система.
Это имеет смысл делать только в том случае, если с документом, на который делается ссылка, ассоциируются широко известные примеры достижения положительных результатов. Есть две основные стратегии разработки: делаем сами или берем готовое. В сочетании, естественно. Если делаем сами, то начинаем с обзора вариантов реализации и достигнутых результатов, продолжаем через принятие решения о том, что же будем делать, и чем это будет лучше существующего. Если берем готовое, нужно оттолкнуться от того, чего достигли те, кто этим готовым пользовался. Ну и чего достигли те, кто использовал DPANS94? И они достигли этого именно
благодаря DPANS94?
spf писал(а):
Верно. (хотя, "length character" намекает)
Да не так чтобы намекает. Это "символ длины", если дословно. В сочетании с другими частями описания получается, что это как раз не тот же самый символ, что и "символ в строке".
spf писал(а):
Но, слово COUNT полагает именно вариант "ровно столько же места [на счетчик], сколько и каждый символ", цитирую: "u is the contents of the character at c-addr1"
Ничего подобного тут не предполагается в явном виде. "U это содержание символа по c-addr1". Смотрим выше - там лежит lenght character. Дальше берем спецификацию, в которой написано, что строка имеет implementation-defined максимальный размер. И что, для однобайтовых символов это не больше 255? Написано-то как раз "не меньше". А для двухбайтовых это должно быть 65535? То есть иметь 64К символов по одному байту такая спецификация запрещает? Я этого в тексте не вижу, вижу ровным счетом наоборот - там
разрешено....
spf писал(а):
Хотя, к Кварку это все отношения не имеет, там COUNT работает как ASCIIZ> ("Определить количество символов в строке, заданной адресом первого символа. Конец строки определяется по байту-ограничителю 0" — Quark-Forth 1.0.11 build 30).
Вообще, там и счетчик в начале строки лежит
Только asciiz указывает на первый символ самой строки, а счетчик по отрицательному смещению. Опять же, чтобы при случае можно было совместиться, зная, зачем это надо.
А вот что делать с функциями API, которые могут, к примеру, вернуть указатель на ASCIIZ? Писать в Microsoft, чтобы WinAPI перед строкой клало счетчик символов? Причем однобайтовый для ASCII и двухбайтовый для Unicode - там строковые функции в двух версиях.