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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Quark2 в виде компонентов
СообщениеДобавлено: Вт июн 21, 2011 18:57 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Компоненты Quark2

1. Ядро

NOP
DUP
DROP
OVER
SWAP
ROT
NIP
@
!
*
U*
/
U/
MOD
/MOD
AND
OR
XOR
SHL
SHR
SHLA
SHRA
LSHIFT
RSHIFT
NEGATE
ABS
NOT
=
>
<
U<
U>
+
-
,
C@
C!
C,
DEPTH
EXECUTE
DP
[C]DP
HERE
[C]HERE
ALLOT
[C]ALLOT

1a Расширение ядра

2DUP
3DUP
4DUP
2DROP
3DROP
4DROP
5DROP
PICK
XCHG
BYTES
WORDS
CELLS
D+
D-
1+
1-
2*
2/
WITHIN
MIN
MAX
RANGE
UMIN
UMAX
URANGE
+!
ON
OFF
W@
W!
W,
W>D
-TH
CMOVE
MOVE
SMOVE
FILL
CFILL
CLEARSTACK

2. Плавающая точка

F,
SF,
-FTH
FLOATS
FDEPTH
FLOAT
S>F
F>S
FDUP
F2DUP
FDROP
FSWAP
FOVER
FROT
F+
F-
F*
F/
FNEGATE
FABS
F@
F!
SF@
SF!
PI
FPI
F0>
F0<
F0=
FMIN
FMAX

2а. Плавающая точка с трансцендентными операциями

FSIN
FCOS
FSINCOS
FSQRT
FATAN
FPATAN
F2^X
FEXP
FGAUSS
FLOG2
FLN

2b. Плавающая точка с расширением SIMD

FX*X
SSE:F(T)*G(T)DT
SSE!
SSE:[X]+=[Y]

3. Стек локальных переменных

LOCALDEPTH
>L
L>
L@
LDROP
L>F
F>L
L>SF
SF>L

4. Стек кадров

FRAMEDEPTH
FRAME{
}FRAME
ARG0
ARG1
ARG2
ARG3
ARG4
ARG5
ARG6
ARG7
ARG8
ARG9
FRAME>
>FRAME

5. Интерпретация

PARSE
DECIMAL
HEX
BIN
\
//
EVALUATE
BASE
TIB
LINENUMBER

6. Компиляция

STATE
LIMIT
[C]LIMIT
GETDATA
GETCODE
CONTEXT
CURRENT
CREATE
:
;
VARIABLE
CONSTANT
ARRAY
IF
THEN
ELSE
BEGIN
AGAIN
UNTIL
WHILE
REPEAT
{
}
DO
LOOP
+LOOP
I
J
K
IMAX
IADDR
IJ
VOCABULARY
DEFINITIONS
FORTH
IMMEDIATE
DOES>
[
]
CASE
ENDCASE
BREAK
OF
ENDOF
<OF>
TO
+TO
FROM

[‘]
[COMPILE]
QUAN
VALUE
VECT

7. Файловые операции

HF-OUT
OPEN
OPENRW
NEWFILE
CLOSE
READFILE
READCHAR
WRITEFILE
WRITECHAR
READLINE
L
EMITF
PRINTF
CRF
.F
U.F
F.F

8. Текстовый вывод

EMIT
CR
CLS
TOSTR
GOTOXY
WHEREXY
WHEREX
WHEREY
PRINT
COUNT
TYPE
U.
.
F.
SETCOLOR
SETBGCOLOR
GETCOLOR
GETBGCOLOR

LINE”

8a. Графический вывод

PSET
PRESET
PIXEL
HLINE
VLINE


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Quark2 в виде компонентов
СообщениеДобавлено: Вт июн 21, 2011 19:31 
Не в сети

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Quark2 в виде компонентов
СообщениеДобавлено: Вт июн 21, 2011 19:49 
Не в сети

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


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

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

Типизация в Форте лежит несколько выше самой вычислительной машины. Я пока не вижу смысла добавлять к списку features еще и "типизированный".
вопрос писал(а):
чем-то напоминает Кварк

Он и есть :)
вопрос писал(а):
На какой это стадии?

Проработка спецификаций после эксплуатации предыдущей версии на Qt. Результат понравился, но в силу того, что это был завершенный продукт, какие-то пункты остались адаптированными под этот продукт, а не под универсальный путь разработки.


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

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


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

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

Посмотрим :) Кроме того, система-то компонентная...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Quark2 в виде компонентов
СообщениеДобавлено: Вт июн 21, 2011 23:55 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
EMITF
PRINTF
CRF

В С есть форматированный вывод


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

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

Это вывод в файл с идентификатором HF-OUT. Довольно часто требуется создавать текстовые файлы и выводить туда результаты расчетов.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Quark2 в виде компонентов
СообщениеДобавлено: Ср июн 22, 2011 04:43 
Не в сети
Administrator
Administrator
Аватара пользователя

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

(in) (out) ??

Компонент для работы с TCP/IP (UDP) ?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Quark2 в виде компонентов
СообщениеДобавлено: Ср июн 22, 2011 11:10 
Не в сети
Аватара пользователя

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

Сколько выделенной памяти нужно для всех компонент?
Не проще будет загружать все, как это обычно и делается?
Или по-другому: в чем причина именно компонентного подхода?

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


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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Quark2 в виде компонентов
СообщениеДобавлено: Ср июн 22, 2011 12:31 
Не в сети
Administrator
Administrator
Аватара пользователя

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

А откуда следует, что загружаться будет не все?
chess писал(а):
Или по-другому: в чем причина именно компонентного подхода?

Например, ядро (п.1) можно реализовать и на форт-процессоре. SIMD имеет смысл на x86 и не имеет на ARM, а форт-процессор с ускорителем добавит еще и свои слова для параллельной обработки. Встроенной системе не нужен компилятор, а возможно, и интерпретатор. И т.д.


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

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

А разве ядро (п.1) для форт-процессора и для ARM будут одинаковы?

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
А разве ядро (п.1) для форт-процессора и для ARM будут одинаковы?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Quark2 в виде компонентов
СообщениеДобавлено: Ср июн 22, 2011 19:06 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
chess писал(а):
А разве ядро (п.1) для форт-процессора и для ARM будут одинаковы?

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


вопрос писал(а):
По поводу минимализма и чем он вредит форту и (форту - ладно) фортерам. Когда стремятся запрограммировать форт на 12-18 примитивах, это как раз есть игнорирование одной возможности форта - расширяемости вниз - подменяемости нижнего уровня

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

Правильный путь
программист начинает не с создания фортов, но с уважения к экономии своего времени, он создаёт большой форт с понятной структурой а после урезает его, подменяя примитивы, а всё остальное уже имея реализованным (и протестированное)


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

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


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

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


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

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