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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Есть ли в SP-Forth
СообщениеДобавлено: Вт май 18, 2010 21:10 
Не в сети

Зарегистрирован: Вс апр 25, 2010 11:14
Сообщения: 200
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Есть ли в SP-Forth функция для вычисления квадратного корня?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Вт май 18, 2010 22:14 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
квадратный корень для чисел с плавающей точкой - FSQRT
Для целых - надо писать самому вычисление.
Что-то наподобие:
: SQRT ( А -- Sqrt{A} ) 1 32 0 DO 2DUP / + 2 / LOOP ;
Что соответствует стандартному алгоритму Ньютона

Sn = (Sn-1+ A/Sn-1)/2

Где A - число, из которого корень берется, Sn - n-тое приближение.
Формально считать надо до тех пор, пока |Sn - Sn-1| не станет меньше требуемой точности вычисления корня. Для целых чисел эта точность ~1, и число итераций примерно равно количеству значащих разрядов в числе A.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Вт июн 15, 2010 19:36 
Не в сети

Зарегистрирован: Вс апр 25, 2010 11:14
Сообщения: 200
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Возможность отключить сброс стека при вводе неправильного слова?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Ср июн 16, 2010 11:02 
Не в сети
Аватара пользователя

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Ответ скорее всего будет нет, так как в большинстве ФОРТ-систем стандартная процедура проверки правильности ввода содержит вызов слова ABORT


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Ср июн 16, 2010 14:22 
Не в сети
Moderator
Moderator
Аватара пользователя

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

А смысл?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Сб июн 19, 2010 17:14 
Не в сети

Зарегистрирован: Вс апр 25, 2010 11:14
Сообщения: 200
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Допустим, форт-система расширяется на несколько взаимодействующих через стек слов вместе являющихся программой. Пользователь не знает, что использует форт-систему, думает что использует программу работающаю в диалоговом режиме с вводом команд. Программа не должна сбрасывать результат работы одной своих частей находящийся в стеке, а должна выдавать что-то вроде "Команда не найдена", либо вообще не делать ничего.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Сб июн 19, 2010 18:49 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Antender писал(а):
Программа не должна сбрасывать результат работы одной своих частей находящийся в стеке, а должна выдавать что-то вроде "Команда не найдена", либо вообще не делать ничего.


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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Сб июн 19, 2010 20:38 
Не в сети
Moderator
Moderator
Аватара пользователя

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

дело в том, что данные на стеке после возникновения ошибки невалидны обычно. Т.е. выигрыша от несброса параметров нет, а проигрыш очень даже может быть, более того, невосстановление стека может привести к краху системы. Если хочется получить систему с похожим поведением, надо предусмотреть сохранение стека перед выполнением каждой команды с последующим восстановлением содержимого, каким оно было перед выполнением команды. Собственно, подобный механизм в Форте есть: CATCH THROW ; только он не сохраняет данные со стека, а значит если в результате ошибки данные под вершиной стека будут искажены.
Вобщем, сделать это можно, достаточно написать свой цикл QUIT или ABORT (зависит от того, как это сделано в конкретной системе) и в нем работать.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Сб июн 19, 2010 21:21 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Antender писал(а):
Пользователь не знает, что использует форт-систему, думает что использует программу работающаю в диалоговом режиме с вводом команд.

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

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Сб июл 31, 2010 10:50 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Тема про многомерные массивы
выделена сюда: viewtopic.php?f=18&t=2627&start=0

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Пт авг 06, 2010 15:30 
Не в сети

Зарегистрирован: Вс апр 25, 2010 11:14
Сообщения: 200
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
А как удалить словарь?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Пт авг 06, 2010 15:34 
Не в сети
Moderator
Moderator
Аватара пользователя

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

какой словарь, откуда?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Пт авг 06, 2010 16:10 
Не в сети
Moderator
Moderator
Аватара пользователя

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

тогда утчню вопрос, откуда словарь удалить (из памяти системы или из контекста?)
если из памяти, то статические нельзя удалять, только динамические.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Пт авг 06, 2010 16:13 
Не в сети

Зарегистрирован: Вс апр 25, 2010 11:14
Сообщения: 200
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Как тогда создать динамический словарь?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Есть ли в SP-Forth
СообщениеДобавлено: Пт авг 06, 2010 16:18 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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


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

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


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

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


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

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