Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 01:31

...
Google Search
Forth-FAQ Spy Grafic

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




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

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


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

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

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


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

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

:))


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
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
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
При этом легко сделать универсальную реализацию для подобных ситуаций. Были б они ещё

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

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


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

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

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

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

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


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
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
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
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
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Цитата:
То есть, кроме решения задачи еще и парсер делать будете?

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

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Код:
// 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
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник, прикольно, но и только.

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


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

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

CREATE FILENAME GENERATE-FNAME


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


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

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
(комментарий взят из темы "О плюсах и минусах Форта")
vikt писал(а):
mOleg писал(а):
Однако, что значит учебный форт?
Что должно быть в нем в отличие от боевого форта, и как переходить с учебного на боевой?


Учебный форт, в моем понимании, это грамотно написанный проект.
Первое, что бы были видны все структуры.
Это еще и методичка, для создания своих фортов.
Поскольку, разумеется, реализуется не на ассемблере, то естественно должны быть проработаны
затруднения, которые возникнут при реализации на языках высокого уровня.
Например, память может представлять не массив байт, а массив 2 или 4 байтовых слов.
И как хранить строки в словарях и тд.

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

Согласен. Так, пусть будет на Си (ради остальных, чтобы понимали лучше + у меня уже кое-что есть).
Вопросы:
1. Нужна полноценная ВФМ? (точнее, нужен ли стек возвратов?)
2. Команды для общения с внешней средой должны быть "статическими"? Т.е. EMIT допустим как примитив.
P.s. Прошу прощение за долгое отсутствие. После сессии вообще буду активным)


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

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

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

_KROL писал(а):
2. Команды для общения с внешней средой должны быть "статическими"? Т.е. EMIT допустим как примитив.

вообще, никто никому ничего не должен, в Форте уж точно.
Часто EMIT определяется, как векторное слово, а, значит переопределяемое.

Кстати, никто не мешает при переопределении слова связывать новое поведение с уже существующим и используемым.
Другое дело, что глюкало получится знатное.

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


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

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


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

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


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

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