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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 80 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 20:18 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Вопрос чисто риторический: - Какое дело стандарту до того, какого цвета трусы у строк?

Стандарт должен определить, что:

1. Строки должны быть!
2. Строки можно выводить на экран;
3. Строки можно сохранять в файлах;
4. Строки можно складывать;
5. Строкам можно делать обрезание;
6. и т.д. и т.п.

ЗАЧЕМ стандарту определять, где у строки какой байт и что он означает?
Чтобы программист хакерить мог?

Да, конечно, Форт этого не запрещает, но в настоящее время имеет место быть дикий разнобой с представлениями строк, форматом символов и т.д. и т.п.
Зачем все эти возможности укладывать в прокрустово ложе какого-то одного стандарта на строки?

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

Я пишу программу, и в начале делаю инструкцию:
Дай-мне-библиотеку-строк-с-32-битными-символами-длиной-не-меньше-терабайта,
Если сия библиотека есть в моем форте, она подключается и я с ней работаю. Нет - значит, бегу на КлозетСорс ее искать. Может, даже не сам иду, а мой вумный-вумный-Форт ищет, и рапортует, НА!

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 20:23 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Вопрос чисто риторический: - Какое дело стандарту до того, какого цвета трусы у строк?
Не какого цвета, а откуда взять длину ...
зачем? чтобы WingLion тратил в 3 раза меньше времени на разницу в реализации. И больше на само кодирование.

Цитата:
Стандат должен зафиксировать набор функций, которые со строками можно выполнять,

вот именно, я предложил только "если к строке можно применить ещё какую-то функцию, пусть автор строки это укажет явно"

P.S.
ОДНО дополнительное поле не может быть причиной каких-либо проблем.

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 20:32 
Не в сети
Administrator
Administrator
Аватара пользователя

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


Для этого не нужно фиксировать реализацию.
Я пишу: S" моя любимая строка" TYPE
и все! строка напечатана. Зачем мне знать, в какое место попал счетчик длины, какого он размера, и с какой кодировкой строка в память легла? Мне надо только, чтобы она напечаталась и ничего более.
Все остальное - сугубо интимное дело конкретного форт-компилятора.

вопрос писал(а):
от именно, я предложил только "если к строке можно применить ещё какую-то функцию, пусть автор строки это укажет явно"

У автора в распоряжении вся строка. Надо в нее признак вставить, пусть пишет
S" шенаревый признак: строка -ля-ля-ля", и все. при работе со строками автор сам позаботится о том, чтобы признак не попал на дисплей, а был принят кем и как надо. И незачем это в стандарт втюхивать.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 20:42 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Для этого не нужно фиксировать реализацию.
хорошо, пусть будет не реализацию ... (хотя так было экономнее)
пусть будет так - к адресу строки можно применить функцию ВЗЯТЬ_ОСОБЕННОСТИ - если таковые имеются.
WingLion, о чём речь - я с этим только что столкнулся. Получил совет поизучать исходники.

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 21:07 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
вопрос писал(а):
пусть будет так - к адресу строки можно применить функцию ВЗЯТЬ_ОСОБЕННОСТИ - если таковые имеются.


Если "особенности" - это 1,2,3..NN байт в начале строки, то эта функция просто делается через функцию ВЗЯТЬ_СИМВОЛ ( String NN -- Char ) а дальше с ним можно что угодно делать

вопрос писал(а):
WingLion, о чём речь - я с этим только что столкнулся. Получил совет поизучать исходники.


Боюсь, что это самый распространенный "универсальный" совет на данном форуме и вообще у фортеров.
И чем-то он смахивает на столь нелюбимый мною посыл "нагугль" :(

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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 21:42 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Но не заставляйте всех делать то, что в другом месте будет выглядеть как ненужный мешающий атавизм.

не уловил ход мысли - что будет так выглядеть? :o

Цитата:
Боюсь, что это самый распространенный "универсальный" совет на данном форуме и вообще у фортеров.
И чем-то он смахивает на столь нелюбимый мною посыл "нагугль"
ну да, и это закономерно и это нехорошо. Кстати, прошу обратить внимание - в других языках, где тоже стандарты неглупые люди писали по поводу функций - да - стандартизируется поведение, как и хотел бы WingLion, но вот по поводу строк стандартизируется ... реализация. Именно это есть в С++, именно это в Паскале, только в Прологе - нет и то - он слишком высокоуровневый и ... если почитать документацию - всё-таки кажется, можно обнаружить.

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

Цитата:
Внутренняя реализация строк важна для программирования функций работы со строками, а это уже должно определяться конкретной реализацией и не должно вести к стандартизации конкретного "удобного" механизма.
Тем не менее, строки в С++ реализованы одинаково, чтобы можно было с ними работать и ассемблером и подключать модули на других языках (тот же Пролог для синтакс. разбора или YACC )
ИМХО ...

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 22:31 
Не в сети
Administrator
Administrator
Аватара пользователя

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


Дополнительные вкрапления в структуру строки.
Обычно достаточно указания на начало и конец строки. И все.
Способ этого указания (0 в конце, счетчик вначале, прямое указание Addr Len на стеке) - есть реализация строки. Все остальное - лишнее.

вопрос писал(а):
но вот по поводу строк стандартизируется ... реализация. Именно это есть в С++, именно это в Паскале, только в Прологе - нет и то - он слишком высокоуровневый и ... если почитать документацию - всё-таки кажется, можно обнаружить.


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

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

Надо четко осмыслить, что нам со строками делать, и обозначить это рамками стандарта на работу со строками, а не на то, как эти строки реализованы. А реализацию оставить на усмотрение авторам библиотек и форт-систем.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 22:51 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
WingLion писал(а):
вот, почему-то кажется, что от 0 до 15. 0 байт длины - значит 20=1 - чисто односимвольная строка.

Я имел в виду, что 0b0000 - это 1 (меньше как-то не имеет смысла), а 0b1111 тогда получается 16


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 23:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
Я имел в виду, что 0b0000 - это 1 (меньше как-то не имеет смысла), а 0b1111 тогда получается 16

0 байт длины - можно считать как строка фиксированной длины. Имхо, фиксация какого либо иного числа символов кроме 1 не имеет смысла.
В то же время, односимвольные строки вполне имеют право на жизнь, тогда как строки длиной более чем 256<sup>15</sup> символов вряд ли будут иметь смысл в ближайшем будущем. Если сейчас смысл может иметь строка длиной 256<sup>4</sup>...256<sup>5</sup>, то перескок через 80 двоичных порядков по закону Мура ожидается лет этак через 160.
С другой стороны, 1 символьную строку спокойно можно закодировать с однобайтовым счетчиком, и экономить этот байт в общем-то и незачем.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 23:14 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 23:16 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
супер-пупер

скромно замечу, что долго думал, как сделать реализацию именно не "супер-пупер" и пришёл к выводу, что
достаточно 1-2 полей, надеюсь, это заметно.
Кроме того, если реализовано это - уже нет (мне не видно) никаких возможностей ещё создать какие-либо бессмысленные трудности программисту.
Я не против бороться с любыми осмысленными программерскими трудностями, но из-за чьей-то прихоти - пусть целесообразной - изучать по 1 исходнику функций работы со строками (если нужно перенести на другой форт) - это именно бессмысленная трата времени. Это трудности, которые ничему не учат и никакой пользы не приносят.

Ну хорошо, а что правильно в таком случае?
Я не спорю против здравости рассуждений WingLion'а , но как бороться с трудностями, которые возникают в форте сплошь и рядом вследствие чужой оригинальности???

Цитата:
В наше время, когда уже есть куча разных стандартов на реализацию строк

можно сделать чуть более целесообразный стандарт, предусмотрев минимальное изменение

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 23:17 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
Ну кстати, мы плавно переходим к вопросу "как себя должны вести строки". А разные варианты реализации становятся просто примерами, с указанием особенностей работы с ними. Тут даже получается принцип "наиболее вероятные к использованию параметры строки находятся ближе к тексту", чтобы можно было их безболезненно отсечь, указав адрес начала строки больший, чем адрес самых-самых экзотических данных, ее описывающих. В самом деле, если у меня формат

+0 - тип строки
+1 (4 байта) - счетчик, старший байт записан первым
+5 - начало символов
+xxx - байт 0

то я могу передать и сам адрес, и адрес +1 (тогда это строка с длинным счетчиком), и адрес +4 (тогда это строка с байтовым счетчиком), и адрес +5, тогда это просто ASCIIZ. Останется только напомнить, что слова работают в зависимости от используемого формата.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 23:18 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
mOleg писал(а):
все гораздо проще!
надо фиксировать не формат строк, а интерфейсы работы с ним!
если длина счетчика строки может меняться, то надо зафиксировать слова для работы со счетчиком:
SCNT@ SCNT! SCNT,
и все, никаких проблем

А откуда мы знаем- в какой системе меняется длина счётчика а в какой нет?

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 23:21 
Не в сети
Moderator
Moderator
Аватара пользователя

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

а нам этого знать не надо :)
надо только интерфейс знать

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 07, 2009 23:22 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
то я могу передать и сам адрес, и адрес +1 (тогда это строка с длинным счетчиком), и адрес +4 (тогда это строка с байтовым счетчиком), и адрес +5, тогда это просто ASCIIZ. Останется только напомнить, что слова работают в зависимости от используемого формата.
что-то подобное я и предлагаю, + ещё одно поле на "оригинальность" если кому-то захочется, чтоб остальные не встречали проблем

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 80 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

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


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

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


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

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