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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Форт с плавающей запятой
СообщениеДобавлено: Чт авг 26, 2010 16:50 
Не в сети

Зарегистрирован: Пн авг 09, 2010 13:56
Сообщения: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Подскажите пожалуйста книгу с описанием любого диалекта Форт, лишь бы была поддержка плавающей запятой.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Чт авг 26, 2010 17:04 
Не в сети

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Чт авг 26, 2010 23:22 
Не в сети
Administrator
Administrator
Аватара пользователя

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

При современном уровне развития IT это несколько странный вопрос. Вроде бы уже не 80-е годы, чтобы писать "плавающая точка - это, конечно, хорошо, но требует непомерный объем ресурсов и сильно тормозит вычисления".

Собственно, вот страница проекта http://msyst.ru/?q=node/8 и описание http://www.msyst.ru/quark.pdf. Плавающая точка - это первое, что я в свое время сделал для Форта.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Ср сен 01, 2010 10:42 
Не в сети

Зарегистрирован: Пн авг 09, 2010 13:56
Сообщения: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Можно поподробнее про Quark?

Меня интересуют стеки.
Требуется инфа: для чего каждый тип стека? Сколько байт отводится изначально каждому стеку? Каков формат хранения данных стека?

В этом Форте как я понял есть 6 стеков:

* стек данных
* стек возвратов
* стек чисел с плавающей запятой
* стек структур управления
* стек циклов
* стек контекстов загрузки


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Ср сен 01, 2010 11:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Размеры стеков определены вот так:
Код:
  MAXCF             equ  1024
  MAXLOOP           equ   256
  MAXSELECTORS      equ   256
  MAXLOCALS         equ  1024
  MAXFRAMES         equ   256     


Код:
Dstack            rd 2048


Что касается стеков:
- стек данных и стек возвратов - стандартные стеки для Форта. Стек возвратов используется классическим для процессора образом - обеспечивать возврат из подпрограмм. Стек данных - массив в памяти с указателем глубины.
- стек чисел с плавающей точкой представляет собой аппаратный стек сопроцессора, глубиной 8.
- стек структур управления хранит идентификаторы структур управления при компиляции. Программисту, как правило, не нужен. В Форте этот стек часто не заводится, а необходимые данные лежат на стеке возвратов.
- стек циклов - аналогично предыдущему, программисту напрямую не нужен. Хранит текущее и конечное значение счетчико цикла, а также адрес начала итерации цикла.
- стек контекстов загрузки - хэндл файла, позиция в файле, содержимое TIB. Требуется для того, чтобы можно было продолжить интерпретацию файла после вложенной загрузки.
- стек фреймов - экспериментальная конструкция в этом трансляторе. Используется для хранения указателей стека для слов FRAME{ }FRAME.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Ср сен 01, 2010 16:09 
Не в сети

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

Starting Forth Броуди ( и Thinking Forth )

Цитата:
При современном уровне развития IT это несколько странный вопрос. Вроде бы уже не 80-е годы, чтобы писать "плавающая точка - это, конечно, хорошо, но требует непомерный объем ресурсов и сильно тормозит вычисления".


Плавающая запятая - это конечно хорошо, но в большинстве случаев она не нужна.
Например в книгах по С настоятельно не рекомендуют использовать плавающую запятую для циклов, для денежных сумм и в других местах. Разброс целых чисел от +2 миллиардов до -2 миллиардов более чем достаточен. Плавующую запятую в основном используют для приблизительных физических расчётов с гигантскими числами.

В форте есть операция */ как раз для аппроксимации различных величин, Pi например при использовании целых чисел.

Кроме того, чтобы использовать числа с плавающей запятой в форте нужна хитрая конвертация в число двойной точности, затем это число надо положить на дополнительный стек, затем использовать другие операции для подсчётов, затем если конвертировать обратно, число будет округляться. Овчинка не стоит выделки.

А Quark, не в обиду автору, мало подходит для обучения. Возьмите лучше SPF.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Ср сен 01, 2010 20:13 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 128
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
<Кроме того, чтобы использовать числа с плавающей запятой в форте нужна хитрая конвертация в число двойной точности, затем это число надо положить на дополнительный стек, затем использовать другие операции для подсчётов, затем если конвертировать обратно, число будет округляться. Овчинка не стоит выделки.>

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


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

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

На процессорах, поддерживающих плав. точку аппаратно, сделать не сложно. А где нет поддержки лучше не делать - это сложно и медленно получится.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Ср сен 01, 2010 23:26 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Не стоит говорить за всех. Тем более не стоит в паре предложений делать массу неточных, а то и некорректных высказываний. Плавающая точка нужна отнюдь не только для работы с "гигантскими" числами, а уж пассаж "приблизительные физические расчеты" меня даже развеселил. Ничего, что число двойной точности имеет в полтора раза больше бит мантиссы, чем в диапазоне "от +2 до -2 миллиардов"? :) И кстати, а как насчет, например, стыковки текстур в трехмерных сценах, если ее делать в целочисленном формате?
Antender писал(а):
Кроме того, чтобы использовать числа с плавающей запятой в форте нужна хитрая конвертация в число двойной точности, затем это число надо положить на дополнительный стек, затем использовать другие операции для подсчётов, затем если конвертировать обратно, число будет округляться. Овчинка не стоит выделки.

"В форте" никакая конвертация не нужна. Преобразованием чисел занимается непосредственно сопроцессор, и занимается аппаратно.
Antender писал(а):
А Quark, не в обиду автору, мало подходит для обучения. Возьмите лучше SPF.

Не в обиду автору сообщения, не рановато ли делать всеобъемлющие выводы по применимости тех или иных трансляторов? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Чт сен 09, 2010 17:42 
Не в сети
Аватара пользователя

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

Кварк отлично подходит для обучения. И даже больше, чем спф - т. к. кварк намного проще.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Пт сен 17, 2010 17:45 
Не в сети
Administrator
Administrator
Аватара пользователя

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

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


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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Сб фев 26, 2011 21:27 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Хищник писал(а):
Antender писал(а):
И кстати, а как насчет, например, стыковки текстур в трехмерных сценах, если ее делать в целочисленном формате?

Именно в целочисленном формате и делать. Все числа, которые ты мыслишь как числа с плавающей запятой при таких
рассчетах, нужно иметь умноженными на 65536 и округленными. Т.е. в целом виде.
Пяти знаков после запятой ведь хватит для обеспечения требуемой точности ?
Тогда для этих чисел сложение и вычитание - это сложение и вычитание.
А умножение - умножить и 16 раз сдвинуть вправо. Деление - 16 раз сдвинуть влево и поделить.
В таком вот аксепте.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Сб фев 26, 2011 21:48 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ethereal писал(а):
Именно в целочисленном формате и делать. Все числа, которые ты мыслишь как числа с плавающей запятой при таких
рассчетах, нужно иметь умноженными на 65536 и округленными. Т.е. в целом виде.
Пяти знаков после запятой ведь хватит для обеспечения требуемой точности ?
Тогда для этих чисел сложение и вычитание - это сложение и вычитание.
А умножение - умножить и 16 раз сдвинуть вправо. Деление - 16 раз сдвинуть влево и поделить.
В таком вот аксепте.

А зачем это все делать для OpenGL, который прекрасно воспринимает форматы с плавающей точкой?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Сб фев 26, 2011 23:54 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 128
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Цитата:
нужно иметь умноженными на 65536 и округленными. Т.е. в целом виде.
Пяти знаков после запятой ведь хватит для обеспечения требуемой точности ?

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


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

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


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

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


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

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