Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср апр 24, 2024 17:33

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Quark: { }
СообщениеДобавлено: Сб дек 13, 2008 00:56 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Новый билд: добавлены слова { }
{ начинает определение слова LAST-NONAME и оставляет на стеке адрес начала кода
} завершает определение слова, начатого через {, переводит систему в режим интерпретации и исполняет слово по адресу, взятому со стека

Пример

{ 10 0 DO I . LOOP }

Напечатает числа от 0 до 9


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 13, 2008 01:56 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
если же мы хотим не исполнять слово сразу...

вносится ли всё это в файл документации (PDF)?

_________________
понимаю некоторую бестолковость некоторых вопросов


Последний раз редактировалось вопрос Сб дек 13, 2008 03:13, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 13, 2008 02:08 
Не в сети
Administrator
Administrator
Аватара пользователя

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

То определяем его через двоеточие.
вопрос писал(а):
вносится ли всё это в фал документации (PDF)?

Да, но изменения копятся, чтобы постоянно не переделывать pdf.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 13, 2008 17:16 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
:? А зачем оно надо?

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 13, 2008 19:10 
Не в сети
Administrator
Administrator
Аватара пользователя

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


Код:
CREATE LINEAR[] 20 CELLS ALLOT

: INIT-LINEAR
  20 0 DO  I LINEAR[] I -TH ! LOOP
; INIT-LINEAR


А теперь можно:

Код:
CREATE LINEAR[] 20 CELLS ALLOT { 20 0 DO  I LINEAR[] I -TH ! LOOP }


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 13, 2008 21:58 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Ну это-то само-собой, а что еще можно придумать? А память, занятая кодом освобождается после выполнения?

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 13, 2008 22:33 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
"исполнить при загрузке программы что-то обычно компилируемое"

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 13, 2008 22:36 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Нет, память не освобождается, можно вручную запомнить [C]DP и CURRENT @ и потом восстановить их


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 13, 2008 22:42 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 13, 2008 22:53 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Локалсы я еще не делал, так что у меня не пересекается ;)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 14, 2008 01:10 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
хорошая вещица ;)
/me подобную себе делал еще в начале 90-х, когда на Beta-Форте Баранова кое-что для себя писал
только использовал не { }, а << и >>
Удобно было написать строку, которая тут же исполняется и не захламляет словарь

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 14, 2008 02:06 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Делать как теги в html, xml (не повторять локалсы и т.п.)
<direct> </direct> (непосредственно) :D

не вдохновляет {D D}
или
d{ }d
D{ }D
хотя это, видимо, неплохой вариант

как-то громоздко
[d]{ }[d]

можно как в phpBB
[d] [/d]

или без скобок

DI ID наподобие if fi, при этом в редакторе такие слова нужно, конечно, подсвечивать

А вообще использовать скобки по своему усмотрению - индивидуализм

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 14, 2008 23:19 
Не в сети
Moderator
Moderator
Аватара пользователя

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

ваша реализация не очень удачна, так как теряет память на код, который исполняется единожды и содержит лишние элементы:
в том же примере CREATE LINEAR[] 20 CELLS ALLOT { 20 0 DO I LINEAR[] I -TH ! LOOP }
не имеет смысла компилировать числа 20 и 0 , поэтому достаточно такой конструкции:
20 0 DO I LINEAR[] I -TH ! LOOP
то есть без всяких скобок, только DO и LOOP должны быть чуточку поумнее стандартных (но не на много).

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 14, 2008 23:56 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Моя реализация довольно удачна, так как она всего лишь теряет память на код, который исполняется единожды. Конкретная задача очень проста - дать возможность не именовать однократно выполняемые куски кода. Вот это улучшение уже напрашивалось, а различные навороты, и тем более структуры управления "чуточку поумнее стандартных" - это зачем? И уж тем более незачем оставлять без присмотра compile mode-only слова, поскольку при работе двоеточие достаточно просто забыть.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 15, 2008 02:00 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Моя реализация довольно удачна, так как она всего лишь теряет память на код, который исполняется единожды. Конкретная задача очень проста - дать возможность не именовать однократно выполняемые куски кода.

Вс1-таки в этом мире не так много скобок :( - {использовать что-нибудь другое}

_________________
понимаю некоторую бестолковость некоторых вопросов


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

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


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

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


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

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