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

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Как сделать форт-систему без ошибок?
Автор Сообщение
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
_KROL писал(а):
1. Нужна полноценная ВФМ? (точнее, нужен ли стек возвратов?)

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

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

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

Кстати, никто не мешает при переопределении слова связывать новое поведение с уже существующим и используемым.
Другое дело, что глюкало получится знатное.
Сообщение Добавлено: Вт июн 05, 2018 17:55
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
(комментарий взят из темы "О плюсах и минусах Форта")
vikt писал(а):
mOleg писал(а):
Однако, что значит учебный форт?
Что должно быть в нем в отличие от боевого форта, и как переходить с учебного на боевой?


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

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

Согласен. Так, пусть будет на Си (ради остальных, чтобы понимали лучше + у меня уже кое-что есть).
Вопросы:
1. Нужна полноценная ВФМ? (точнее, нужен ли стек возвратов?)
2. Команды для общения с внешней средой должны быть "статическими"? Т.е. EMIT допустим как примитив.
P.s. Прошу прощение за долгое отсутствие. После сессии вообще буду активным)
Сообщение Добавлено: Вс июн 03, 2018 19:56
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
Код:
: GENERATE-FNAME
    ?.SPACE OFF
    USE C, AS EMIT
    TIME&DATE . . . . . .    0 C,
;

CREATE FILENAME GENERATE-FNAME


А вот это сущностная часть, если убрать все обрамления. И тут, как бы сказать, видна логика описываемых действий.
Сообщение Добавлено: Пт май 18, 2018 14:22
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
Хищник, прикольно, но и только.
Сообщение Добавлено: Ср май 16, 2018 09:47
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
Код:
// 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
Сообщение Добавлено: Ср май 16, 2018 01:21
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
Цитата:
То есть, кроме решения задачи еще и парсер делать будете?

Это значит, что тупо у меня есть либа для создания строк во время исполнения с возможностью включения символов, чисел и строк. Использовать её для форматного преобразования конечно лишнее, но можно как вариант.
Эх,
R:STR -- слово немедленного исполнения. Берёт из входного потока число: столько байт будет выделено под строку. Далее сама строка вплоть до кавычки. Во время выполнения возвращает адрес начала созданной строки.
При этом команды подстановки {''} {un} {n} и пр. являются обычными форт-словами.
{un} - беззнаковое число.
Сообщение Добавлено: Вт май 15, 2018 21:06
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
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
Сообщение Добавлено: Вт май 15, 2018 19:52
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
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 ;
Самый, блин, короткий и высокоуровневый вариант в моём арсенале.
Сообщение Добавлено: Пн май 14, 2018 23:02
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
_KROL писал(а):
Разве он писал по тому вопросу, который ты задал?

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

P.S.
Это ещё тов. аднин не начал подозревать неограниченный круг лиц в связях с западом :))
Сообщение Добавлено: Пн май 14, 2018 22:54
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
Victor__v писал(а):
При этом легко сделать универсальную реализацию для подобных ситуаций. Были б они ещё

что ни говори, решение сложнее выглядит. Тяжеловеснее. Я ведь тоже могу несколько сократить код
лишь выделив: S>D # # DDROP в отдельное определение (тут просто лень победила меня на момент создания)
заметь, я не думаю о памяти (куда класть) я не думаю как перемещать (нет MOVE), не приходится использовать стек возвратов для хранения промежуточных результатов.
Пока меня не убедили ваши доводы по поводу стандартного форматного преобразования,
у того же ВОПРОСа где-то был более интригующий, но, все же чужеродный и излишний по сложности реализации вариант.
И, главное, у вас нет формализованного синтаксиса, который вы заменяете и который достаточно удобен, если уметь пользоваться.
Сообщение Добавлено: Пн май 14, 2018 22:46
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
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
;


При этом легко сделать универсальную реализацию для подобных ситуаций. Были б они ещё
Сообщение Добавлено: Пн май 14, 2018 22:39
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
_KROL писал(а):
иногда нормальные мысли предлагал (правда я уже не помню где)

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

Я уже отмечал - WinAPI использует такое представление для строк, передаваемых в качестве параметров. Кроме того, описывать программный объект единственным идентификатором выглядит правильнее, чем описывать двумя, из которых второй может быть получен из первого.
Сообщение Добавлено: Пн май 14, 2018 20:18
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
+ в голове ))
Сообщение Добавлено: Пн май 14, 2018 19:20
  Заголовок сообщения:  Re: Как сделать форт-систему без ошибок?  Ответить с цитатой
Victor__v писал(а):
Цитата:
P.p.s. Я опять напоминаю, что зря ты убрал Глеба! Равновесие в головах стало больше нарушаться.


И чтобы изменилось? Появился бы участник вопиющий "Вы тупые".
Тут пришёл бы mOleg и сами-знаете-кто поудалял бы свои сообщения.
И смысл?
Зато Хищник бы ни стал говорить, глядя на его болтовню, об само-разумеещихся вещах. Разве он писал по тому вопросу, который ты задал? Только косвенно, да и то... Тем более, что Глеб иногда нормальные мысли предлагал (правда я уже не помню где). Лишний голос потеряли. Бесконечная война за Форт? :)
Мне, например, устраивают известные решения. У Олега очень многое интересно, если покопаться. Другое дело, не всегда устраивает их компоновка, как в исходниках, так и в документации (а она вообще будет у SPF?).
Сообщение Добавлено: Пн май 14, 2018 19:20

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


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