Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс дек 16, 2018 11:53

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 19, 2009 02:06 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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

Манипуляции на стеке данных:

TUCK
NIP
ROT
-ROT
DDROP
DDUP
DOVER
DSWAP
и так далее

Манипуляции на стеке возвратов:
>R
R>
RDROP
R+
R@
DR@
D>R
DR>

Поддержка стеков:
R0
S0
RP@
RP!
SP@
SP!
DEPTH
и подобные

Логика:
INVERT - логическая инверсия значения, лежащего на вершине стека данных
EQUAL - проверка двух чисел на равенство
NEQUAL - не равно
LARGER - или > - больше
SMALLER - или < - меньше
U>
U<
MAX
MIN
UMAX
UMIN
WITHIN
SHIFT
и т.п.

Арифметика:
ABS
NEGATE
SUB
DIV
MOD
MUL
D+
UD/
UM*
и др.

Работа с памятью:
B@
B!
A@
A!
CHANGE
D!
D@
+!
ON
OFF
итп

Строковые операции:
CMOVE
CMOVEL
COMPARE
SEARCH
FILL
и др.


Работа с символами:
С@
C!
C#
C>
<C

Работа со строками:
(SLITERAL)
COUNT
S##
SCNT#
SCNT@
SCNT!
и так далее

Управление потоком исполнения:
N?BRANCH
-BRANCH
?EXIT
и другие

Поддержка многозадачности:
?LockMutex
UnlockMutex
WaitMutex
Tls@
Tls!
(USER)
и подобные

Ловля и обработка исключений
CATCH
THROW


Последний раз редактировалось mOleg Чт авг 27, 2009 12:24, всего редактировалось 1 раз.

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

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

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

(API-CALL)


Последний раз редактировалось mOleg Чт авг 27, 2009 12:27, всего редактировалось 1 раз.

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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
5.5 Особенности возможных аппаратных реализаций ФВМ


Последний раз редактировалось mOleg Чт авг 27, 2009 12:27, всего редактировалось 1 раз.

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

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

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


Последний раз редактировалось mOleg Чт авг 27, 2009 12:30, всего редактировалось 1 раз.

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

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

Словарь это список словарных статей и интерфейс для работы с ними.
Каждый словарь имеет собственный vid - число однозначно идентифицирующее
данный словарь, с помощью которого можно работать с любым определением внутри
словаря. vid словаря может быть как адресной ссылкой, так и произвольным
числом, к примеру, индексом внутри списка системных объектов. vid словаря
имеет смысл только при работе со словом SEARCH-WORDLIST, а так же словами
использующими SEARCH-WORDLIST, а так же может быть присвоено стандартным
системным переменным CONTEXT и CURRENT . В первую очередь словарь представляет
замкнутое пространство имен (не обязательно счетных - словарь может, к пимеру,
распознавать числа) с помощью которого можно получать доступ к данным, коду,
преобразовывать данные, перемещать данные между удаленными хранилищами данных
и оперативной памятью системы.
Словарь должен позволять находить (разыменовывать) ключевые значения
(обычно имена слов, представленные символьными строками, однако имена слов
могут быть числовыми значениями, произвольными битовыми последовательностями
небольшой длины, к примеру иконками), добавлять новые слова, менять атрибуты
слов (последние две возможности не для каждого словаря обязательны).
Совместимая с данным стандартом система должна поддерживать работу как
минимум с одним базовым словарем с именем FORTH. Однако желательно, чтобы
система позволяла работать с большим количеством словарей.

Создание словарей

WORDLIST
SVOCAB:
VOCABULARY

Формирование словарных статей и работа с ними

SHEADER - ( asc # --> )
создать заголовок словарной статьи, внутри текущего словаря,
установить DP на адрес, начиная с которого можно можно
компилировать код и данные
SET-ATTR - ( attr aid lfa --> flag )
GET-ATTR - ( aid lfa --> attr flag )


Управление порядком поиска

CONTEXT
GET-ORDER
SET-ORDER
ALSO
ONLY
PREVIOUS

Инициализация и деинициализация словарей

MOUNT
UMOUNT

Поиск в словарях

SEARCH-WORDLIST
SFIND
SFINDIN

Удаление и перенос слов

FORGET
MARKER
>VOCAB
и др.

Базовые словари и их порядок

FORTH - базовый словарь Форт-системы
ROOT - корневой словарь Форт-системы ( не обязателен )


Последний раз редактировалось mOleg Чт авг 27, 2009 12:30, всего редактировалось 1 раз.

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

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


Последний раз редактировалось mOleg Чт авг 27, 2009 12:30, всего редактировалось 1 раз.

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

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


Последний раз редактировалось mOleg Чт авг 27, 2009 12:31, всего редактировалось 1 раз.

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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
6.4 Разбор и трансляция исходных текстов
Источники текстов для трансляции, их формат, работа с источниками
Работа с текстами, представленными в различных кодировках,
а так же с токенизированными источниками

описание парсера и структур, работающих с ним


Последний раз редактировалось mOleg Чт авг 27, 2009 12:31, всего редактировалось 1 раз.

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

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

DP
HERE
B,
,
A,
S,
:.
А так же интерфейс к оптимизатору кода, многопоточная компиляция кода.

Освобождение ресурсов (например, откат DP в случае ошибок компиляции)


Последний раз редактировалось mOleg Чт авг 27, 2009 12:31, всего редактировалось 1 раз.

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

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


Последний раз редактировалось mOleg Чт авг 27, 2009 12:32, всего редактировалось 1 раз.

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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
В первую очередь работа с терминалом:
TYPE
EMIT
KEY
ACCEPT


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Форматное преобразование строк и чисел
<#
#
#S
SIGN


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Работа с динамической памятью системы
ALLOCATE
FREE


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4956
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Связь с сервисными ф-циями ОС всякие API: и т.п.


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

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


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

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


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

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


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

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