Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб май 26, 2018 13:58

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Пн май 14, 2018 19:20 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 342
Благодарил (а): 15 раз.
Поблагодарили: 1 раз.
+ в голове ))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Пн май 14, 2018 20:18 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6310
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
_KROL писал(а):
А можно, опять таки, посмотреть с другой стороны: почему вы все используете строку с нулевым оканчанием, а?

Я уже отмечал - WinAPI использует такое представление для строк, передаваемых в качестве параметров. Кроме того, описывать программный объект единственным идентификатором выглядит правильнее, чем описывать двумя, из которых второй может быть получен из первого.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Пн май 14, 2018 20:18 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6310
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
_KROL писал(а):
иногда нормальные мысли предлагал (правда я уже не помню где)

:))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Пн май 14, 2018 22:39 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 535
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
mOleg писал(а):
Victor__v писал(а):
Прим. к коду. Можно было и циклы использовать, но мне лень уже.

ну, и что выглядит проще?

Вот это:
Цитата:

: to-str \ addr g m d h m s -- addr
7 REVERSE
DUP >R
6 >R
BEGIN
R@ WHILE
SWAP usign num>s{ >R OVER R@ MOVE R> + }num
-1 RP@ +!
REPEAT
RDROP
S" .dat" >R OVER R@ MOVE R> +
0!
R>
;

: TEST
1000 ALLOCATE THROW
0x0A BASE KEEP!
gmdhms
to-str
;


При этом легко сделать универсальную реализацию для подобных ситуаций. Были б они ещё

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Пн май 14, 2018 22:46 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4917
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Victor__v писал(а):
При этом легко сделать универсальную реализацию для подобных ситуаций. Были б они ещё

что ни говори, решение сложнее выглядит. Тяжеловеснее. Я ведь тоже могу несколько сократить код
лишь выделив: S>D # # DDROP в отдельное определение (тут просто лень победила меня на момент создания)
заметь, я не думаю о памяти (куда класть) я не думаю как перемещать (нет MOVE), не приходится использовать стек возвратов для хранения промежуточных результатов.
Пока меня не убедили ваши доводы по поводу стандартного форматного преобразования,
у того же ВОПРОСа где-то был более интригующий, но, все же чужеродный и излишний по сложности реализации вариант.
И, главное, у вас нет формализованного синтаксиса, который вы заменяете и который достаточно удобен, если уметь пользоваться.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Пн май 14, 2018 22:54 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 535
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
_KROL писал(а):
Разве он писал по тому вопросу, который ты задал?

Хищник таки писал.
А то, что тема превратилась в очередной человеческий самогон, так это почти везде.
Надо же поговорить о наболевшем. А тему поднимать лень. Вот и бьют несчастные форт-посылы.

P.S.
Это ещё тов. аднин не начал подозревать неограниченный круг лиц в связях с западом :))

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Пн май 14, 2018 23:02 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 535
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
mOleg писал(а):
И, главное, у вас нет формализованного синтаксиса, который вы заменяете и который достаточно удобен, если уметь пользоваться.

Ну часто нужен показанный код, а? Поэтому и синтаксиса нет за ненадобностью.
Если уж мне понадобится, что-то похожее для конкретной задачи.
Я сделаю так:
\ xt g m d h m s -- \ xt: addr
: TEST 6 REVERSE 10 BASE KEEP! R:STR 1000 "{un}{un}{un}{un}{un}{un}.dat" SWAP EXECUTE ;
Самый, блин, короткий и высокоуровневый вариант в моём арсенале.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Вт май 15, 2018 19:52 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4917
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Victor__v писал(а):
Ну часто нужен показанный код, а? Поэтому и синтаксиса нет за ненадобностью.

ну, бывает нужно, но даже не это главное - он, синтаксис, уже есть в форте и очень удачный 8) достаточно только освоить его

Victor__v писал(а):
Если уж мне понадобится, что-то похожее для конкретной задачи.
Я сделаю так:

То есть, кроме решения задачи еще и парсер делать будете?
Ведь я не против альтернативных вариантов и нововведений,
но они должны быть по крайней мере не хуже существующих
(считаю это справедливым требованием).

Victor__v писал(а):
: TEST 6 REVERSE 10 BASE KEEP! R:STR 1000 "{un}{un}{un}{un}{un}{un}.dat" SWAP EXECUTE ;
Самый, блин, короткий и высокоуровневый вариант в моём арсенале.

выглядит забавно, но непонятно
собственно, не ясно совсем вот что: R:STR 1000 "{un}{un}{un}{un}{un}{un}.dat" SWAP EXECUTE

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Вт май 15, 2018 21:06 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 535
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Цитата:
То есть, кроме решения задачи еще и парсер делать будете?

Это значит, что тупо у меня есть либа для создания строк во время исполнения с возможностью включения символов, чисел и строк. Использовать её для форматного преобразования конечно лишнее, но можно как вариант.
Эх,
R:STR -- слово немедленного исполнения. Берёт из входного потока число: столько байт будет выделено под строку. Далее сама строка вплоть до кавычки. Во время выполнения возвращает адрес начала созданной строки.
При этом команды подстановки {''} {un} {n} и пр. являются обычными форт-словами.
{un} - беззнаковое число.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 16, 2018 01:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6310
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
Код:
// some quark magic


: GENERATE-FNAME
  FROM EMIT
  ?.SPACE @

    USE C, AS EMIT
    ?.SPACE OFF
   
    TIME&DATE . . . . . .
    0 C,

  ?.SPACE !
  TO EMIT
;

CREATE FILENAME GENERATE-FNAME

FILENAME PRINT


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 16, 2018 09:47 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4917
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Хищник, прикольно, но и только.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Пт май 18, 2018 14:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6310
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
Код:
: GENERATE-FNAME
    ?.SPACE OFF
    USE C, AS EMIT
    TIME&DATE . . . . . .    0 C,
;

CREATE FILENAME GENERATE-FNAME


А вот это сущностная часть, если убрать все обрамления. И тут, как бы сказать, видна логика описываемых действий.


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

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


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

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


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

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