Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Как сделать форт-систему без ошибок? |
|
|
_KROL писал(а): 1. Нужна полноценная ВФМ? (точнее, нужен ли стек возвратов?) забавный вопрос. А вы в курсе, зачем в форте два (и более) стека в основе лежит? Зачем вы будете путаться в адресах возврата, болтающихся под руками? Или мало эквилибристики на стеках? _KROL писал(а): 2. Команды для общения с внешней средой должны быть "статическими"? Т.е. EMIT допустим как примитив. вообще, никто никому ничего не должен, в Форте уж точно. Часто EMIT определяется, как векторное слово, а, значит переопределяемое. Кстати, никто не мешает при переопределении слова связывать новое поведение с уже существующим и используемым. Другое дело, что глюкало получится знатное.
[quote="_KROL"]1. Нужна полноценная ВФМ? (точнее, нужен ли стек возвратов?)[/quote] забавный вопрос. А вы в курсе, зачем в форте два (и более) стека в основе лежит? Зачем вы будете путаться в адресах возврата, болтающихся под руками? Или мало эквилибристики на стеках?
[quote="_KROL"]2. Команды для общения с внешней средой должны быть "статическими"? Т.е. EMIT допустим как примитив.[/quote] вообще, никто никому ничего не должен, в Форте уж точно. Часто EMIT определяется, как векторное слово, а, значит переопределяемое.
Кстати, никто не мешает при переопределении слова связывать новое поведение с уже существующим и используемым. Другое дело, что глюкало получится знатное.
|
|
|
|
Добавлено: Вт июн 05, 2018 17:55 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как сделать форт-систему без ошибок? |
|
|
(комментарий взят из темы "О плюсах и минусах Форта") vikt писал(а): mOleg писал(а): Однако, что значит учебный форт? Что должно быть в нем в отличие от боевого форта, и как переходить с учебного на боевой? Учебный форт, в моем понимании, это грамотно написанный проект. Первое, что бы были видны все структуры. Это еще и методичка, для создания своих фортов. Поскольку, разумеется, реализуется не на ассемблере, то естественно должны быть проработаны затруднения, которые возникнут при реализации на языках высокого уровня. Например, память может представлять не массив байт, а массив 2 или 4 байтовых слов. И как хранить строки в словарях и тд. После реализации и подключения к какому-нибудь проекту на языке высокого уровня, "учебный форт" становится боевым. На нем можно писать внутрипрограммные скрипты, в таких проектах производительность скриптов как правило не важна. Согласен. Так, пусть будет на Си (ради остальных, чтобы понимали лучше + у меня уже кое-что есть). Вопросы: 1. Нужна полноценная ВФМ? (точнее, нужен ли стек возвратов?) 2. Команды для общения с внешней средой должны быть "статическими"? Т.е. EMIT допустим как примитив. P.s. Прошу прощение за долгое отсутствие. После сессии вообще буду активным)
(комментарий взят из темы "О плюсах и минусах Форта")[quote="vikt"][quote="mOleg"] Однако, что значит учебный форт? Что должно быть в нем в отличие от боевого форта, и как переходить с учебного на боевой? [/quote] Учебный форт, в моем понимании, это грамотно написанный проект. Первое, что бы были видны все структуры. Это еще и методичка, для создания своих фортов. Поскольку, разумеется, реализуется не на ассемблере, то естественно должны быть проработаны затруднения, которые возникнут при реализации на языках высокого уровня. Например, память может представлять не массив байт, а массив 2 или 4 байтовых слов. И как хранить строки в словарях и тд.
После реализации и подключения к какому-нибудь проекту на языке высокого уровня, "учебный форт" становится боевым. На нем можно писать внутрипрограммные скрипты, в таких проектах производительность скриптов как правило не важна.[/quote] Согласен. Так, пусть будет на Си (ради остальных, чтобы понимали лучше + у меня уже кое-что есть). Вопросы: 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 А вот это сущностная часть, если убрать все обрамления. И тут, как бы сказать, видна логика описываемых действий.
[code]: GENERATE-FNAME ?.SPACE OFF USE C, AS EMIT TIME&DATE . . . . . . 0 C, ;
CREATE FILENAME GENERATE-FNAME[/code]
А вот это сущностная часть, если убрать все обрамления. И тут, как бы сказать, видна логика описываемых действий.
|
|
|
|
Добавлено: Пт май 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
[code]// 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[/code]
|
|
|
|
Добавлено: Ср май 16, 2018 01:21 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как сделать форт-систему без ошибок? |
|
|
Цитата: То есть, кроме решения задачи еще и парсер делать будете? Это значит, что тупо у меня есть либа для создания строк во время исполнения с возможностью включения символов, чисел и строк. Использовать её для форматного преобразования конечно лишнее, но можно как вариант. Эх, R:STR -- слово немедленного исполнения. Берёт из входного потока число: столько байт будет выделено под строку. Далее сама строка вплоть до кавычки. Во время выполнения возвращает адрес начала созданной строки. При этом команды подстановки {''} {un} {n} и пр. являются обычными форт-словами. {un} - беззнаковое число.
[quote]То есть, кроме решения задачи еще и парсер делать будете?[/quote] Это значит, что тупо [u]у меня есть либа[/u] для создания строк во время исполнения с возможностью включения символов, чисел и строк. Использовать её для форматного преобразования конечно [b]лишнее[/b], но можно как вариант. Эх, [b]R:STR [/b]-- слово немедленного исполнения. Берёт из входного потока число: столько байт будет выделено под строку. Далее сама строка вплоть до кавычки. Во время выполнения возвращает адрес начала созданной строки. При этом команды подстановки [b]{''} {un} {n}[/b] и пр. являются обычными форт-словами. [b]{un}[/b] - беззнаковое число.
|
|
|
|
Добавлено: Вт май 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
[quote="Victor__v"]Ну часто нужен показанный код, а? Поэтому и синтаксиса нет за ненадобностью.[/quote] ну, бывает нужно, но даже не это главное - он, синтаксис, уже есть в форте и очень удачный 8) достаточно только освоить его
[quote="Victor__v"]Если уж мне понадобится, что-то похожее для конкретной задачи. Я сделаю так:[/quote] То есть, кроме решения задачи еще и парсер делать будете? Ведь я не против альтернативных вариантов и нововведений, но они должны быть по крайней мере не хуже существующих (считаю это справедливым требованием).
[quote="Victor__v"]: TEST 6 REVERSE 10 BASE KEEP! R:STR 1000 "{un}{un}{un}{un}{un}{un}.dat" SWAP EXECUTE ; Самый, блин, короткий и высокоуровневый вариант в моём арсенале.[/quote] выглядит забавно, но непонятно собственно, не ясно совсем вот что: 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 ; Самый, блин, короткий и высокоуровневый вариант в моём арсенале.
[quote="mOleg"]И, главное, у вас нет формализованного синтаксиса, который вы заменяете и который достаточно удобен, если уметь пользоваться.[/quote] Ну часто нужен показанный код, а? Поэтому и синтаксиса нет за ненадобностью. Если уж мне понадобится, что-то похожее для конкретной задачи. Я сделаю так: \ 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. Это ещё тов. аднин не начал подозревать неограниченный круг лиц в связях с западом
[quote="_KROL"]Разве он писал по тому вопросу, который ты задал?[/quote] Хищник таки писал. А то, что тема превратилась в очередной человеческий самогон, так это почти везде. Надо же поговорить о наболевшем. А тему поднимать лень. Вот и бьют несчастные форт-посылы.
P.S. Это ещё тов. аднин не начал подозревать неограниченный круг лиц в связях с западом :))
|
|
|
|
Добавлено: Пн май 14, 2018 22:54 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как сделать форт-систему без ошибок? |
|
|
Victor__v писал(а): При этом легко сделать универсальную реализацию для подобных ситуаций. Были б они ещё что ни говори, решение сложнее выглядит. Тяжеловеснее. Я ведь тоже могу несколько сократить код лишь выделив: S>D # # DDROP в отдельное определение (тут просто лень победила меня на момент создания) заметь, я не думаю о памяти (куда класть) я не думаю как перемещать (нет MOVE), не приходится использовать стек возвратов для хранения промежуточных результатов. Пока меня не убедили ваши доводы по поводу стандартного форматного преобразования, у того же ВОПРОСа где-то был более интригующий, но, все же чужеродный и излишний по сложности реализации вариант. И, главное, у вас нет формализованного синтаксиса, который вы заменяете и который достаточно удобен, если уметь пользоваться.
[quote="Victor__v"]При этом легко сделать универсальную реализацию для подобных ситуаций. Были б они ещё[/quote] что ни говори, решение сложнее выглядит. Тяжеловеснее. Я ведь тоже могу несколько сократить код лишь выделив: 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 ;
При этом легко сделать универсальную реализацию для подобных ситуаций. Были б они ещё
[quote="mOleg"][quote="Victor__v"]Прим. к коду. Можно было и циклы использовать, но мне лень уже.[/quote] ну, и что выглядит проще?[/quote] Вот это: [quote]
: 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 ;
[/quote] При этом легко сделать универсальную реализацию для подобных ситуаций. Были б они ещё
|
|
|
|
Добавлено: Пн май 14, 2018 22:39 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как сделать форт-систему без ошибок? |
|
|
_KROL писал(а): иногда нормальные мысли предлагал (правда я уже не помню где)
[quote="_KROL"]иногда нормальные мысли предлагал (правда я уже не помню где)[/quote] :))
|
|
|
|
Добавлено: Пн май 14, 2018 20:18 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как сделать форт-систему без ошибок? |
|
|
_KROL писал(а): А можно, опять таки, посмотреть с другой стороны: почему вы все используете строку с нулевым оканчанием, а? Я уже отмечал - WinAPI использует такое представление для строк, передаваемых в качестве параметров. Кроме того, описывать программный объект единственным идентификатором выглядит правильнее, чем описывать двумя, из которых второй может быть получен из первого.
[quote="_KROL"]А можно, опять таки, посмотреть с другой стороны: почему вы все используете строку с нулевым оканчанием, а?[/quote] Я уже отмечал - WinAPI использует такое представление для строк, передаваемых в качестве параметров. Кроме того, описывать программный объект единственным идентификатором выглядит правильнее, чем описывать двумя, из которых второй может быть получен из первого.
|
|
|
|
Добавлено: Пн май 14, 2018 20:18 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как сделать форт-систему без ошибок? |
|
|
+ в голове ))
+ в голове ))
|
|
|
|
Добавлено: Пн май 14, 2018 19:20 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как сделать форт-систему без ошибок? |
|
|
Victor__v писал(а): Цитата: P.p.s. Я опять напоминаю, что зря ты убрал Глеба! Равновесие в головах стало больше нарушаться.
И чтобы изменилось? Появился бы участник вопиющий "Вы тупые". Тут пришёл бы mOleg и сами-знаете-кто поудалял бы свои сообщения. И смысл? Зато Хищник бы ни стал говорить, глядя на его болтовню, об само-разумеещихся вещах. Разве он писал по тому вопросу, который ты задал? Только косвенно, да и то... Тем более, что Глеб иногда нормальные мысли предлагал (правда я уже не помню где). Лишний голос потеряли. Бесконечная война за Форт? Мне, например, устраивают известные решения. У Олега очень многое интересно, если покопаться. Другое дело, не всегда устраивает их компоновка, как в исходниках, так и в документации (а она вообще будет у SPF?).
[quote="Victor__v"][quote] P.p.s. Я опять напоминаю, что зря ты убрал Глеба! Равновесие в головах стало больше нарушаться. [/quote]
И чтобы изменилось? Появился бы участник вопиющий "Вы тупые". Тут пришёл бы mOleg и сами-знаете-кто поудалял бы свои сообщения. И смысл?[/quote]Зато Хищник бы ни стал говорить, глядя на его болтовню, об само-разумеещихся вещах. Разве он писал по тому вопросу, который ты задал? Только косвенно, да и то... Тем более, что Глеб иногда нормальные мысли предлагал (правда я уже не помню где). Лишний голос потеряли. Бесконечная война за Форт? :) Мне, например, устраивают известные решения. У Олега очень многое интересно, если покопаться. Другое дело, не всегда устраивает их компоновка, как в исходниках, так и в документации (а она вообще будет у SPF?).
|
|
|
|
Добавлено: Пн май 14, 2018 19:20 |
|
|
|
|