реклама на сайте
подробности

 
 
16 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> А вот бы на FORTH написать..., ;-)
=AK=
сообщение May 8 2009, 05:54
Сообщение #31


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(Kopa @ May 8 2009, 14:05) *
Часто современные Форт системы транслируют код в нативные команды целевого железа!

Это когда гонятся за скоростью. Помнится, такой Форт для РС по имени SPF4 (со встроенным оптимизатором) "уделывал" по бенчмаркам С-шные программы.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 8 2009, 06:05
Сообщение #32


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



А как там с объектноориентированностью и прочими абстракциями?


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 8 2009, 07:50
Сообщение #33


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ May 8 2009, 09:05) *
А как там с объектноориентированностью и прочими абстракциями?


Реализаций ООП для Форта существуют разные - от несколько десятков строк до ...
в SPF4 ( http://spf.sourceforge.net/ ) , в основном от одного разработчика, но SPF4 это для программирования
на PC. В других Форт системах могут иметь свои различия.

P.S. Есть ещё "абстракции" у разработчиков разных Форт систем.Что интересует?
( модули, парсеры, BNF, back tracing, регулярные выражения, автоматы и др. )

Цитата(=AK= @ May 8 2009, 08:54) *
Помнится, такой Форт для РС по имени SPF4 (со встроенным оптимизатором)
"уделывал" по бенчмаркам С-шные программы.


Не уделывал, а давал сопоставимые результаты, ( см. http://www.forth.org.ru/~af/shootout.htm результаты
тестирования отчасти устарели ) но при желании добавляя правила в оптимизатор можно и обойтиsmile.gif

P.S. Опережал, возможно, на рекурсивном тесте Фибоначи.

Сообщение отредактировал Kopa - May 8 2009, 07:54
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 8 2009, 08:09
Сообщение #34


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(MrYuran @ May 8 2009, 09:05) *
А как там с объектноориентированностью и прочими абстракциями?

Вот интересная полемика на эту тему.
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 8 2009, 08:12
Сообщение #35


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(=AK= @ May 8 2009, 08:54) *
Это когда гонятся за скоростью.


Оценочная таблица производительности некоторых Форт систем.
( С SPF4 были некоторые проблемы для двух тестов \ т.к. у SPF4 одно пространство для кода и данных
, но сейчас возможно уже всё исправлено )

Код
*************************************************
Pentium 4 2.8GHz, 512Mb DDR266 RAM, Windows XPpro
*************************************************

VFX        VFX Forth for Windows v3.70 [build 1706]
SF2        SwiftForth 2.2.2.9  07 May 2001
iForth       version 1.12.8722, generated 23:39:13, June 8, 2002.
SP-Forth   Version 4.00 Build 015 at 29.Apr.2004
W32F       Win32Forth 6.09.12 Build 6 (indirect threaded code)
gff        gforth-fast 0.6.2

All with no specifics and no hackery

Test time including overhead (ms)         VFX  iForth     SF2    SPF4    W32F     gff
DO LOOP                                    16       0      16       0      15       3
+                                           0       0       0       0       0       4
M+                                          0      16       0      16      16       9
*                                           0       0      15       0      31       5
/                                          16      16      16      16      16      15
M*                                         15       0      16      15      16       8
M/                                          0      15       0      16      31      86
/MOD                                       16      16      31      16      15      15
*/                                         15      15      15      31      47      95
ARRAY fill                                 16      32      16       0      32      11
================================================================================
=====
Total:                                     94     110     125     110     219     251

Win32 API: SendMessage                      0       0      16       0      15       0
Win32 API: GetTickCount                    63      47      15      79      16     570
System I/O: KEY?                            0       0     282     265       0     717
================================================================================
=====
Total:                                     63      47     313     344      31    1287

Eratosthenes sieve 1899 Primes             94     203     281     172    1375     262
Fibonacci recursion ( 35 -> 9227465 )     188     343     156     172    1562     480
Hoare's quick sort (reverse order)         78     485     281     141    1407     467
Generate random numbers (1024 kb array)   140    1031     141    1015    1468     235
LZ77 Comp. (400 kb Random Data Mem>Mem)   157    1500    1047     703    2219     470
Dhrystone (integer)                       156     219     297     157    1734     363
================================================================================
=====
Total:                                    813    3781    2203    2360    9765    2277
Time (ratio to VFX):                     1.00    4.65    2.71    2.90   12.01    2.80


P.S. SPF4 не самая быстрая Форт система для PC ( коммерческая VFX \ кроме SF2 и i-Forth
показывает лучшие результаты )

Сообщение отредактировал Kopa - May 8 2009, 08:15
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 12 2009, 11:10
Сообщение #36


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(Kopa @ May 5 2009, 15:27) *
В SeaForth ~32 ( про него можно почитать публикацию в 4-ом номере журнала "Компоненты и технологии"
за этот год.


И по ссылке автора статьи " Процессоры семейства SeaForth"

Сообщение отредактировал Kopa - May 12 2009, 11:12
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 13 2009, 05:40
Сообщение #37


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Почитал немного, ознакомился, скачал тинибут.
Всё вроде бы хорошо, однако непонятно, как быть с прерываниями.
Что-то в явном виде не нашёл нигде

А без них ведь никак...

Или может не с того начал?
АВР вообще-то не моя тема, мне ближе МСП

Вот кой-чего по МСП нашёл, но товарищи хотят 180 стерлингов фунтов за комплект


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 13 2009, 06:48
Сообщение #38


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ May 13 2009, 09:40) *
Почитал немного, ознакомился, скачал тинибут.
Всё вроде бы хорошо, однако непонятно, как быть с прерываниями.
Что-то в явном виде не нашёл нигде


Прерывания описываются через директиву ORG ( сами ветора для разных
контроллеров описаны в конфигурационном файле начинающееся с INT
) Например в demoavr:
Код
  here \ оставим на стеке текущий указатель в строящемся целевом образе Flash  
\ resolve interrupt vectors -----------------------------------------
000       org assemble rjmp b_cold c; \ пропишем по 0 адресу вектор холодного старта
INT_T0OV  org assemble rjmp T0isr  c; \ ...
org \ востановим указатель по запомненному HERE со стека


Цитата(MrYuran @ May 13 2009, 09:40) *
Или может не с того начал?
АВР вообще-то не моя тема, мне ближе МСП


MSP430 в tinyboot не поддержан, но это не так сложно т.к. он близок к PDP-11.
а под него уже есть адаптацияsmile.gif

P.S. А что скачали - оригинальный дистрибутив или с сайта радиолюбителей
версию только для Mega128? Есть некоторый "вольный" перевод документации
из неё.


Цитата(MrYuran @ May 13 2009, 09:40) *
Вот кой-чего по МСП нашёл, но товарищи хотят 180 стерлингов фунтов за комплект


Для MSP430 есть и свободные Форт разработки.

P.S. Требуемую функциональнось Форта для MSP можно сделать своими силами.smile.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 13 2009, 07:16
Сообщение #39


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kopa @ May 13 2009, 10:48) *
P.S. А что скачали - оригинальный дистрибутив или с сайта радиолюбителей
версию только для Mega128? Есть некоторый "вольный" перевод документации
из неё.

Всё скачал, что только было. И оригинал, и мод мегу, и дополнения одного товарища, который форт ниасилил, зато приспособил под структурный ассемблер
Цитата
P.S. Требуемую функциональнось Форта для MSP можно сделать своими силами.smile.gif

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

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 13 2009, 07:45
Сообщение #40


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ May 13 2009, 10:16) *
Однако, как всегда, хочется готовое что-то найти, чтобы не изобретать велосипед.
Да и времени не так уж много. По работе образовался прогал, вот и развлекаюсь для общего развития.


В Форте, часто, разработчики создают "свои велосипеды" из своего понимания необходимостиsmile.gif
Есть ещё коммерческие VFX и SwiftForth, но для них не под все контроллеры имеются ключики,
да и держать свою Форт систему под полным контролем надёжнее.
Для MSP можно взять разные варианты кросс-компиляции ( есть с использованием SPF4 создания
hex кодов для проекта в IAR ссылка на Форт для разных контроллеров была выше)

Цитата(MrYuran @ May 13 2009, 10:16) *
А в прерываниях как я понимаю, надо вручную сохранять весь контекст, ведь если прервали на полуслове, в регистрах может содержаться какая-то промежуточная информация.


Скорее всего, только общие регистры временного использования ( см распределение регистров ),
а с другими обращаться "внимательней".
Примитивы Форта, в основном, используют 2-3,4 регистра для своей операции.
Под верхушку стека резервируют один регистр - остальная часть стека в памяти.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 13 2009, 09:06
Сообщение #41


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Kopa @ May 13 2009, 10:45) *
Примитивы Форта, в основном, используют 2-3,4 регистра для своей операции.
Под верхушку стека резервируют один регистр - остальная часть стека в памяти.

Это если не подключать тяжёлых словарей типа плавающей точки и вычислений с длинными числами. Но это опять же зависит от функции, выполняемой в прерывании.
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 13 2009, 09:32
Сообщение #42


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(IgorKossak @ May 13 2009, 13:06) *
Это если не подключать тяжёлых словарей типа плавающей точки и вычислений с длинными числами. Но это опять же зависит от функции, выполняемой в прерывании.


Плавающая точка может быть реализована и через примитивы Фортаsmile.gif
( эффективно это или нет не знаю, но в FF оно есть )
+ глобальные переменные если не использовать локальных.

а использование прерываний можно организовать по разному.

P.S. Какое продвижение в использовании Форта было у Вас и
можно ли увидеть эти наработки?
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 13 2009, 09:50
Сообщение #43


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kopa @ May 13 2009, 13:32) *
Плавающая точка может быть реализована и через примитивы Фортаsmile.gif
( эффективно это или нет не знаю, но в FF оно есть )
+ глобальные переменные если не использовать локальных.

Вчера полдня читал книжку, в которой плавающая точка гневно осуждается, а вместо неё рекомендуется применять операцию масштабирования */ и фиксированную двоичную точку. А мы как-то не задумываясь лепим плавающую математику где ни попадя... Притом что недавно попались результаты тетсбенчей - плавающее деление на МСП выполняется что-то около 900 мкс (!)
Целочисленное - на порядок быстрее


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 13 2009, 10:09
Сообщение #44


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Целочисленное - на порядок быстрее


К сожалению - нет. Деление, что целочисленное, что с ПЗ - почти одинаково. Там же, грубо говоря, одно на другое разделить, а порядки - вычесть. Ну и плюс нормализация.

Умножение - тоже (умножаем и складываем порядки). Сложение и вычитание - вот там заметно медленнее.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 13 2009, 10:22
Сообщение #45


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Kopa @ May 13 2009, 12:32) *
P.S. Какое продвижение в использовании Форта было у Вас и
можно ли увидеть эти наработки?

Увы, продвижением самого Форта я не занимался, сроки были больно сжатые. Я всего лишь писал приложение (для AT90S8515) на базе того, что было на тот момент в TinyBoot. Потом, где-то через год пытался переписать всё на С под IAR, но не влез в доступную flash. Исходники мне не принадлежат, поэтому выложить не могу.
Go to the top of the page
 
+Quote Post

16 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01643 секунд с 7
ELECTRONIX ©2004-2016