Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт окт 06, 2026 17:20

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Стековый кадр / список
СообщениеДобавлено: Пн авг 31, 2026 15:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 8215
Благодарил (а): 30 раз.
Поблагодарили: 148 раз.
В рамках проб:

{ запоминает текущую глубину стека
} кладет на стек разность текущей глубины и ранее запомненной.

{ 1 2 3 } на стеке 1 2 3 3

Теперь можно сделать 0 DO и использовать переданные аргументы, не трогая лишнего.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Стековый кадр / список
СообщениеДобавлено: Пн авг 31, 2026 16:22 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 682
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 31 раз.
О, интересно, это чем-то напоминает цикл foreach. Собственно, foreach можно сделать синонимом связки 0 do.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Стековый кадр / список
СообщениеДобавлено: Пн авг 31, 2026 16:34 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 8215
Благодарил (а): 30 раз.
Поблагодарили: 148 раз.
Я собираюсь сделать интервальный case, и заодно case по списку. Примерно так:

Код:
N case
  0 of ... endof
  1 9 <of> ... endof
  { 10 20 30 } {of} ... endof
endcase


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Стековый кадр / список
СообщениеДобавлено: Пн авг 31, 2026 17:38 
Не в сети

Зарегистрирован: Сб май 19, 2007 18:05
Сообщения: 100
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
Hishnik писал(а):
В рамках проб:

{ запоминает текущую глубину стека
} кладет на стек разность текущей глубины и ранее запомненной.

{ 1 2 3 } на стеке 1 2 3 3

Теперь можно сделать 0 DO и использовать переданные аргументы, не трогая лишнего.

Слова { и } уже используются для создание локальных переменных, и были сделаны специально для технологии JIT


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Стековый кадр / список
СообщениеДобавлено: Пн авг 31, 2026 17:49 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 8215
Благодарил (а): 30 раз.
Поблагодарили: 148 раз.
Да, и тут важное уточнение. Это все надо делать во время компиляции, запоминая количество скомпилированных литералов.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Стековый кадр / список
СообщениеДобавлено: Пн авг 31, 2026 17:51 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 682
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 31 раз.
Интересная идея. Например, в компиляторе gcc есть интервальный case, тоже хочу такое себе в компилятор
Код:
switch (n) {
   case 0...9: ... break;
   case 10...100: ... break;
   ...
}


Кстати, если уж список, то может круглые скобки надо, чтобы как в Лиспе? Ну и (of) тогда


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Стековый кадр / список
СообщениеДобавлено: Пн авг 31, 2026 21:27 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 8215
Благодарил (а): 30 раз.
Поблагодарили: 148 раз.
Кстати да. Круглые скобки для комментариев прижились... но это неправильно :) Тут главное реализацию сделать, а имена потом назначить.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:</