Forth http://fforum.winglion.ru/ |
|
набросок стандарта от mOleg http://fforum.winglion.ru/viewtopic.php?f=36&t=2226 |
Страница 2 из 3 |
Автор: | mOleg [ Ср авг 19, 2009 02:06 ] |
Заголовок сообщения: | |
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 [ Ср авг 19, 2009 02:08 ] |
Заголовок сообщения: | |
5.4 Набор сервисных примитивов для связи с ОС, под которой работает ФВМ К этому набору слов относятся вызовы функций операционной системы, под которой работает Форт-среда, и другие вспомогательные примитивы для работы с ОС без которых работоспособность системы не возможна, и которые нельзя или неудобно переносить на второй и третий уровни. (API-CALL) |
Автор: | mOleg [ Ср авг 19, 2009 02:09 ] |
Заголовок сообщения: | |
5.5 Особенности возможных аппаратных реализаций ФВМ |
Автор: | mOleg [ Ср авг 19, 2009 02:11 ] |
Заголовок сообщения: | |
6. Второй уровень языка Ко второму уровню языка относится все, что позволяет транслировать исходные тексты и в результате трансляции компилировать исполнимый код и формировать данные (как статические, так и динамические), однако к данному уровню не относятся средства связи с пользователем (то есть терминал). Предполагается, что Форт-среда второго уровня может находиться на удаленном микроконтроллере, и кто-то другой может посылать данные и исходные тексты для трансляции по какому-нибудь каналу передачи данных. Все слова, необходимые для реализации второго уровня языка, не вошедшие в Расширенный набор примитивов относятся ко второму уровню языка. |
Автор: | mOleg [ Ср авг 19, 2009 02:13 ] |
Заголовок сообщения: | |
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 [ Ср авг 19, 2009 02:16 ] |
Заголовок сообщения: | |
6.2 Обработка исключений и ошибок |
Автор: | mOleg [ Ср авг 19, 2009 02:17 ] |
Заголовок сообщения: | |
6.3 Организация сообщений об ошибках |
Автор: | mOleg [ Ср авг 19, 2009 02:19 ] |
Заголовок сообщения: | |
6.4 Разбор и трансляция исходных текстов Источники текстов для трансляции, их формат, работа с источниками Работа с текстами, представленными в различных кодировках, а так же с токенизированными источниками описание парсера и структур, работающих с ним |
Автор: | mOleg [ Ср авг 19, 2009 02:20 ] |
Заголовок сообщения: | |
6.5 Компиляция и оптимизация кода DP HERE B, , A, S, :. А так же интерфейс к оптимизатору кода, многопоточная компиляция кода. Освобождение ресурсов (например, откат DP в случае ошибок компиляции) |
Автор: | mOleg [ Ср авг 19, 2009 02:23 ] |
Заголовок сообщения: | |
7. Третий уровень языка (далее порядок не совсем определен) (далее порядок не совсем определен) |
Автор: | mOleg [ Ср авг 19, 2009 02:23 ] |
Заголовок сообщения: | |
В первую очередь работа с терминалом: TYPE EMIT KEY ACCEPT |
Автор: | mOleg [ Ср авг 19, 2009 02:24 ] |
Заголовок сообщения: | |
Форматное преобразование строк и чисел <# # #S SIGN |
Автор: | mOleg [ Ср авг 19, 2009 02:24 ] |
Заголовок сообщения: | |
Работа с динамической памятью системы ALLOCATE FREE |
Автор: | mOleg [ Ср авг 19, 2009 02:25 ] |
Заголовок сообщения: | |
Связь с сервисными ф-циями ОС всякие API: и т.п. |
Автор: | mOleg [ Ср авг 19, 2009 02:25 ] |
Заголовок сообщения: | |
Дополнительные стеки, |
Страница 2 из 3 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |