Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб мар 23, 2019 14:30

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 516 ]  На страницу Пред.  1 ... 31, 32, 33, 34, 35
Автор Сообщение
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Вт июн 05, 2018 17:57 
Не в сети
Moderator
Moderator
Аватара пользователя

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

Я не видел пока удачной реализации форта на Си 8(

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср июн 06, 2018 01:16 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6623
Благодарил (а): 15 раз.
Поблагодарили: 105 раз.
_KROL писал(а):
Что-нибудь скажете? Надо же от чего-то отталкиваться!

В целом это довольно стандартный стартовый набор.

Для практической работы интереснее два других аспекта.
1. Как этот Форт взаимодействует с другими программами. Можно ли его подключить к проекту, у которого есть наглядные, красивые и распространенные вещи. Например, самостоятельно рисовать кнопки или реализовывать сеть в Форте - долго, сложно и не приводит к заметному выигрышу. Проще пользоваться готовыми библиотеками, но для этого надо либо к Форту что-то подключить, либо Форт к чему-то подключить.
2. Как Форт взаимодействует с пользователем и окружением сам по себе. Есть только консоль? И всегда только консоль? Как он открывает-закрывает файлы?
В целом, эти пункты (и даже один из них) могут быть основанием для того, чтобы еще раз написать "базовый набор слов" самостоятельно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Чт мар 14, 2019 13:08 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 347
Благодарил (а): 16 раз.
Поблагодарили: 1 раз.
Всем привет! Как время летит, а форт никак не возможно забыть :)
Как знаете, я много раньше эксперементировал, когда писал свою систему. При выборе шитого кода мне больше понравился прямой, т.к. он проще. Однако, косвенный обладает более широкими возможностями, например, к переносу кода и создния модулей. Наверное, поэтому это классический подход для форта.
И вот, когда я пытался использовать КШК, у меня возникли с пониманием, как там должно быть организован код на поле исполнение DOES>.
На какой тогда код указывает CFA и PFA?
Подскажите, пожалуйста! Быть может я что в этот раз создам интересное... надеюсь :shuffle;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Чт мар 14, 2019 22:41 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 38
Благодарил (а): 5 раз.
Поблагодарили: 2 раз.
Как вариант: DOES> среди прочего компилирует в словарь машинный код, который кладёт PFA на стек и устанавливает указатель адресного интерпретатора на ШК за этим кодом. Поле кода создаваемых слов указывает на этот маш. код. PFA как указывал на поле параметров после поля кода, так и продолжает указывать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Пт мар 15, 2019 19:46 
Не в сети
Аватара пользователя

Зарегистрирован: Вт ноя 07, 2017 20:47
Сообщения: 191
Откуда: Москва
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
_KROL писал(а):
И вот, когда я пытался использовать КШК, у меня возникли с пониманием, как там должно быть организован код на поле исполнение DOES>.
На какой тогда код указывает CFA и PFA?
Подскажите, пожалуйста! Быть может я что в этот раз создам интересное... надеюсь :shuffle;

Как раз этим занимаюсь. Есть знание английского? Могу дать ссылки на очень хорошие объяснения, умных людей. :shuffle;

Если своими словами, есть две реализации DOES>

1. ФигФорта, <BUILDS DOES>

Она мало интересна сегодня, но проще всего реализуется в Гарвардской архитектуре вроде 8051.

2. CREATE DOES>

Вот про неё и напишу. Главное правило КШК, что поле кода (CFA) всегда содержит адрес программы в машинном коде. DOES> делает вид для программиста, что обработчик написан на Форте. Но на низком уровне в поле кода всё равно сидит адрес машинного кода, таковы требования КШК.

В теории обработчик слова, созданного CREATE DOES> , должен быть всегда DODOES — но ему необходим параметр, где лежит ШК настоящего высокоуровневого обработчика. Этот ШК скомпилирован после каждого DOES> индивидуально. Поэтому до него компилируется индивидуальный кусочек машинного кода (на него и ставится ссылка в поле кода), запускающий интерпретацию ШК.

Теперь на практике.
Код:
: CONSTANT CREATE , DOES> @ ;
5 CONSTANT FIVE
10 CONSTANT TEN

Компилируются так в КШК:
Код:
Поле имени: 8 "CONSTANT"
Поле кода: CALL ( обычное для всех двоеточий)
Поле параметров:
CREATE
,
(;DOES)
DOCON: ( метка, для полей кода констант)
Машинный код, например JSR DODOES и адрес нашего ШК в стеке
@ ( тут уже наш обработчик пошёл)
EXIT

Поле имени: 4 "FIVE"
Поле кода: DOCON
Поле параметров: 5

Поле имени: 3 "TEN"
Поле кода: DOCON
Поле параметров: 10

Поле связи я не пишу, оно тут роли не играет. Интересно, что (;DOES) одно и тоже как для DOES> так и для низкоуровневого ;DOES

_________________
«Они становятся циничными и начинают думать, что программирование — это только способ получить деньги.» © Ричард Столмэн, Манифест GNU, 1985


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Пт мар 15, 2019 20:56 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6623
Благодарил (а): 15 раз.
Поблагодарили: 105 раз.
ath писал(а):
Как раз этим занимаюсь.

А заниматься надо разъяснением, что имелось в виду под "незаконным преследованием тех, кто соблюдает требования ANS". Даю время до конца недели на приведение фактов, подтвержденных документально, либо принесение извинений подписчикам за сознательное введение в заблуждение. Невыполнение данного требования приведет к блокированию аккаунта. Любое сообщение на посторонние темы вместо затребованного разъяснения - аналогично.


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

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


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

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


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

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