Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср апр 17, 2024 02:46

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 152 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11  След.
Автор Сообщение
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 03:03 
"Mihail писал(а):
Код:
: TYPE  0 ?DO COUNT EMIT LOOP DROP ;

`Kopa писал(а):
P.S.. Михаил привёл ошибочный код который не должен работать и его сообщение лучше удалить.

А вы проверьте ;)

На самом деле, Михаил очень интересно и элегантно употребил слово COUNT :)
И, кроме того, исправил ошибку в приведеных ранее определениях, которые сваливаются на 0 0 TYPE


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 03:21 
Хищник писал(а):
WingLion_from_Work писал(а):
выводит не 16 символов, какие бы они ни были, а только пока не встретится символ с кодом 00

Это из-за того, что в Windows основным форматом строк является ASCIIZ.

Позвольте полюбопытствовать, — это оправдание указанного поведение, или объяснение причины бага?
Если первое, то описание этой особенности было бы хорошо внести в документацию.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 08:49 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
А чего спорить-то? В описании TYPE cказано - печатать u символов начиная с адреса addr. Вот пускай так и печатает. А вдруг нам надо будет через него например бинарные данные слать куда-то в порт или файл, а он тут на нуле будет спотыкаться? Зачем усложнять его поведение? Для az строк - PRINT, для a u - TYPE.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 12:00 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
spf писал(а):
На самом деле, Михаил очень интересно и элегантно употребил слово COUNT :)

Только вот при визуальном анализе текста человек "споткнется" на таком куске. К тому же его поведение зависит от формата представления строки, так что путешествия по символам может и не получиться. Hint: а что, если строки ограничены не 255 символами, а большим количеством?

spf писал(а):
Позвольте полюбопытствовать, — это оправдание указанного поведение, или объяснение причины бага?
Если первое, то описание этой особенности было бы хорошо внести в документацию.

Ни то, ни другое. Это документированное поведение системы при печати строк (оправдываться тут незачем).

VoidVolker писал(а):
В описании TYPE cказано - печатать u символов начиная с адреса addr. Вот пускай так и печатает. А вдруг нам надо будет через него например бинарные данные слать куда-то в порт или файл, а он тут на нуле будет спотыкаться? Зачем усложнять его поведение?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 14:35 
Хищник писал(а):
spf писал(а):
На самом деле, Михаил очень интересно и элегантно употребил слово COUNT :)

Только вот при визуальном анализе текста человек "споткнется" на таком куске. К тому же его поведение зависит от формата представления строки, так что путешествия по символам может и не получиться. Hint: а что, если строки ограничены не 255 символами, а большим количеством?


По спецификации DPANS94, слово COUNT сдвигает адрес ровно на размер символа (считая, что размер счетчика совпадает с размером символа). Если в форт-системе слово COUNT ведет себя по другому, то лучше его и по другому называть. Например, в SPF4 есть слово XCOUNT, которое полагает размер счетчика в размер ячейки; есть слово STR@ ( addr-str -- c-addr u ), которое из объекта "строка" дает адрес и длину блока памяти; есть слово ASCIIZ> ( addr -- addr u ) которое из адреса ASCIIZ-строки (т.е., завершаемый кодом 0) дает адрес и длину.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 16:45 
Хищник писал(а):
spf писал(а):
Позвольте полюбопытствовать, — это оправдание указанного поведение, или объяснение причины бага?

Ни то, ни другое.
Это документированное поведение системы при печати строк

Учитывая стандартное (де-факто среди современных форт-систем) поведение, слово TYPE документированно недостаточно. Было бы лучше упоминуть там о коде 0 так же, как для слов "S=", "SMOVE" и т.п.

Хищник писал(а):
(оправдываться тут незачем)

не "оправдываться", а "оправдывать" — в смысле обосновывать.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 17:05 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
spf писал(а):
Учитывая стандартное (де-факто среди современных форт-систем) поведение, слово TYPE документированно недостаточно. Было бы лучше упоминуть там о коде 0 так же, как для слов "S=", "SMOVE" и т.п.

Возможно, этому и стоит уделить больше внимания в подробном описании слов. На "стандарты" и "де-факто" у меня не то чтобы стойкая аллергия, а скорее попросту игнорирование, если есть далеко перекрывающие стандарт требования рынка или отрасли. В 90-х годах, в эпоху Borland, были строки со счетчиком. Сейчас - ASCIIZ и Unicode. Если "Баба-Яга против", то это проблемы Бабы-Яги. Работа со словами, поддерживающими оборудование или стандартные интерфейсы программной платформы, идет от этой платформы, а не от устаревших стандартов.
spf писал(а):
не "оправдываться", а "оправдывать" — в смысле обосновывать.

"Оправдывать" и "обосновывать" - разные вещи.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 17:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
spf писал(а):
(считая, что размер счетчика совпадает с размером символа

Я как раз и обратил внимание на случай, когда размер счетчика с размером символа не совпадает. Причем тут уже идет "возможность работать с большими строками" vs "когда-то давно написали вот так". Зачем мне помнить, как именно думали 20 лет назад? Я вон уже и от круглых скобок в качестве комментариев отказался - это 20-30 лет назад фортерам было удобно троллить скобками-комментариями противников постфиксной записи :) Почему вообще современные приемы программирования должны учитывать реалии прошлых поколений?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 18:25 
Часть темы можно уже отделить "Баг или Фича" :)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 18:27 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Имхо, просто достаточно указать, что система не является совместимой со стандартом(ами) и отправить за справками к документации.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 18:32 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
Имхо, просто достаточно указать, что система не является совместимой со стандартом(ами) и отправить за справками к документации.

к документции по C++ что ли?

Речь то о том, что В ОПИСАНИИ КВАРКА отсутствует объяснение этой особенности поведения TYPE, а приведено описание именно стандартного TYPE...
Потому в баги и записал. Если не баг кварка - значит баг описания.
Либо то, либо другое третьего не дано.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 18:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Мне таки проще поправить TYPE. Все равно я им не пользуюсь.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 18:47 
Хищник писал(а):
spf писал(а):
(считая, что размер счетчика совпадает с размером символа

Я как раз и обратил внимание на случай, когда размер счетчика с размером символа не совпадает.
Для такого случая лучше определить другое слово (с другим именем), вместо "COUNT".

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

Например, слову TYPE можно дать семантику ( addr-asciiz -- ) и даже аккуратно описать это в документации. Но, до каких пор систему оправдано называть форт-системой, если давать известным словам другую семантику?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 19:03 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
spf писал(а):
Для такого случая лучше определить другое слово (с другим именем), вместо "COUNT".

Лучше иметь одно и то же слово для действий с одинаковым алгоритмическим смыслом. Если в Форте уже есть несколько представлений строк, то для COUNT ожидаемым действием является "из представления строки в виде начального адреса некоей структуры дать представление вида АдресПервогоСимвола, ДлинаСтроки".
spf писал(а):
Иначе, пользователи будут "спотыкаться" не то что глазом при анализе оригинальных решений, а на реальном падении программ, которые работают в других форт-системах.

Переносимое решение - это отдельный серьезный разговор. За переносимость нужно чем-то платить, в том числе и менее удобным синтаксисом, который вынужден учитывать варианты "а вдруг где-нибудь что-нибудь..."
spf писал(а):
Например, слову TYPE можно дать семантику ( addr-asciiz -- ) и даже аккуратно описать это в документации

В документации вполне аккуратно описано слово PRINT с таким действием. Более того, так сложилось, что это основное слово для вывода строк.
spf писал(а):
Но, до каких пор систему оправдано называть форт-системой, если давать известным словам другую семантику?

У TYPE стековая нотация (c-addr u -- ). С дополнительным механизмом контроля недопустимых символов в строке.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 21, 2012 19:16 
spf писал(а):
Для такого случая лучше определить другое слово (с другим именем), вместо "COUNT".

Имеет смысл, объявить малоинформативное слово COUNT устаревшим и заменить например, c той же семантикой
для байтовых символов на C@++ :)


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 152 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB