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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - "Слепой" связанный список для описания полей структур
Автор Сообщение
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
VoidVolker писал(а):
Я не пытаюсь его навестить. Я просто констатировал факт, что поведение таких слово соответствует поведению статического класса с методами. Если смотреть на Форт с точки зрения ООП - то словари и есть статические классы/пространства имен. Которые, правда можно и в рантайме генерировать - в силу особенностей самого Форта.

Согласен с этлй точкой зрения :(
Сообщение Добавлено: Вт окт 24, 2017 21:13
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Все фортеры это Ленин - Мы идём другим путём
:D
Сообщение Добавлено: Вт окт 24, 2017 17:58
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Я не пытаюсь его навестить. Я просто констатировал факт, что поведение таких слово соответствует поведению статического класса с методами. Если смотреть на Форт с точки зрения ООП - то словари и есть статические классы/пространства имен. Которые, правда можно и в рантайме генерировать - в силу особенностей самого Форта.
Сообщение Добавлено: Вт окт 24, 2017 17:35
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Код:
Так это получается уже статический класс с методами

Что все привязались к ООП и попыткам его на форт навесить?
Форт уже ООП
А товарищ Админ просто хочет слова скрещенные со словарями
Сообщение Добавлено: Пн окт 23, 2017 21:31
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Так это получается уже статический класс с методами :) Например можно сделать вот так:
Код:
: Foo

    <some code1>
   
    public variable Bar
   
    public : BarPlus
         Bar + Bar !
    ;
   
    public : BarMinus
        Bar @ SWAP - Bar !
    ;
   
;

Foo.Bar = 100
25 Foo.BarPlus
5 Foo.BarMinus
Сообщение Добавлено: Пн окт 23, 2017 02:42
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Вопрос только в том, какой вариант попробовать.
1. Автоматическое подключение локально объявленных слов с видимостью сразу после парсинга.
2. Отдельный спецификатор внутри, показывающий, что это определения, видимые парсеру.
3. Слово ->, подключающее к поиску локальные объявления для следующего прохода поиска.

Везде видны некоторые недостатки. Осталось понять, где их меньше...
Сообщение Добавлено: Пт окт 06, 2017 14:25
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Ну так у кого исходники Кварка? :D
Внести в ядро 4-6 слов да обновить интерпретатор
Сообщение Добавлено: Чт окт 05, 2017 19:16
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Victor__v писал(а):
Всовываем это чудо в интерпретатор и всё.

Ну вот ради этого все и делается. Работать должно "из коробки", а не после подключения чего-то там и в строго определенных условиях.
Сообщение Добавлено: Чт окт 05, 2017 18:28
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Цитата:
Point1 -> X

Ладно при компиляции это сработает
-> узнает про список просто проанализировав вызов ранее, но при интерпретации это как должно работать?

Ладно я буду исходить из следующего
Слово всегда при упоминании включает в поиск свой список и делает заложенные в него действия.

Тогда в чём проблема?
Скинем всё на флаги
пусть тот же Point1 имеет флаг "дополнить поиск"
При интерпретации/компиляции поиск дополняется
Следующее слово в данном случае Х просто проверяет наличие дополнительного связного списка и, если он есть, отрубает его.
Вместо Х может быть любое другое слово из форта.

Что-то вроде
: Upd-wlist \ flags xt --
OVER &blindBranch =
IF \ тут подсоединяем к поиску лок.цепочку
ELSE
unmount-wlist
THEN

;

Всовываем это чудо в интерпретатор и всё.
Сообщение Добавлено: Чт окт 05, 2017 18:24
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Victor__v писал(а):
Как форт-система должна распознать, что тут у нас просто слово test а тут это уже словарь и надо подсоединить список к поиску, не выполняя слово?

Стоп, немного не понял. "Просто слово" оно всегда. Однако оно за собой тащит свои локальные определения. Сейчас они доступны внутри этого слова, а я хочу сделать так, чтобы были доступны и сразу за словом. Это действительно чревато тем, что будет перекрытие областей видимости, но тут ведь можно и как-то так:

Код:
Point1 -> X


, где слово -> подключит внутренние слова из Point1, но только на один раз. И Point1 это слово само по себе, которое может что-то делать, но может и не делать, а служить только инструментом указания интерпретатору, где искать дальше.
Сообщение Добавлено: Чт окт 05, 2017 17:56
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Цитата:
то каждое упоминание в тексте какого-то слова разрешит упоминать после него и любые вложенные в это слово слова


А с побочкой как?
Слова явно не клоны noop
Как его поведение учитывать?
Навряд ли захочется писать
: TEST
10 20 +
LOC[ : TT * 4 ; ]LOC
;
LOC: TEST TT

Как форт-система должна распознать, что тут у нас просто слово test а тут это уже словарь и надо подсоединить список к поиску, не выполняя слово?
А вообще можно поменять порядок
X POINT
X - слово опр. в POINT
Не найдя это слово в словаре, из входного потока берётся слово и проверяется на "словарность"
Сообщение Добавлено: Чт окт 05, 2017 17:32
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Victor__v писал(а):
К примеру из-уже имеющихся в словаре слов создать новый слепой словарь?

А зачем лишние телодвижения? Если технология сложна, ей пользоваться не будут. Это только лишние пункты для реализации и заталкивания в головы программистам. Чем мне не понравились "локалсы": слишком много оговорок, и отсутствие ясно понимаемой модели использования. Получилась этакая пародия - "смотрите, у нас как в Си".

В текущей реализации LOC[ ]LOC в Кварке локальный список строится только на этапе компиляции слова, и после завершения построенный "отросток" отключается. Если предусмотреть его временное подключение и в режиме интерпретации, то каждое упоминание в тексте какого-то слова разрешит упоминать после него и любые вложенные в это слово слова. Причем именно слова, во всех вариантах, а не какие-то "локалсы", которые имеют размер cell и ведут себя строго определенно. Что интересно, подобный подход реализует и вложенность.

Код:
: RECT
LOC[
  : Point1
      LOC[
         VARIABLE X
         VARIABLE Y
      ]LOC
  ; 
  : Point2
      LOC[
         VARIABLE X
         VARIABLE Y
      ]LOC
  ;
]LOC

;

...

RECT Point1 X
RECT Point1 Y


Надо только подумать над создающими определениями для слов, подобных RECT. Чтобы можно было писать

: RECT CREATE

RECT RECT1
RECT RECT2

и потом иметь RECT1 Point1 X и т.д.
Сообщение Добавлено: Чт окт 05, 2017 15:21
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
Victor__v писал(а):
При таком подходе слово point1 должно явно или неявно использовать парсинг.

Нет, просто оно подключает к поиску свою локальную цепочку слов.

POINT1 <- X <- Y - локальные слова, видимые после интерпретации POINT1
^
|
POINT2 <- X <- Y - локальные слова, видимые после интерпретации POINT2
^
|
основная цепочка словаря
Сообщение Добавлено: Чт окт 05, 2017 15:14
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
А если зайти с другого боку?
К примеру из-уже имеющихся в словаре слов создать новый слепой словарь?
Что то вроде
Цитата:
VARIABLE X
VARIABLE Y
VARIABLE Z

BLINDER: TEST X Y Z ;

TEST X


TEST при этом тупо берёт слово из входного потока и ищет его внутри своего списка
Сообщение Добавлено: Чт окт 05, 2017 14:55
  Заголовок сообщения:  Re: "Слепой" связанный список для описания полей структур  Ответить с цитатой
А-а, структурки, что-то такое я предполагал.
Ну и как это можно реализовать?
Цитата:
POINT1 X @

При таком подходе слово point1 должно явно или неявно использовать парсинг. Как я понял ещё подразумевается использования слова point1 отдельно? Если да, то возможны неприятные ситуации
Легче реализовать таким образом POINT.X @
Изменения в интерпретатор минимальны относительно, конечно.
Пример
Код:
:interpret
begin
parse-name dup while
sfind
if ....
else 2dup s" ." split if 2swap blindbranch? if ( a u lfa ) sfind-in-blind
if >r 2drop r> ....
then
else notfound
then
then
repeat
;
     
Сообщение Добавлено: Чт окт 05, 2017 14:50

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


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