Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс дек 17, 2017 06:13

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 396 ]  На страницу Пред.  1 ... 22, 23, 24, 25, 26, 27  След.
Автор Сообщение
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср дек 06, 2017 08:36 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 227
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
Hishnik писал(а):
_KROL писал(а):
А вот какая оказывается особая архитектура в форт-процессорах: MISC


Это не вполне так. Минималистичность не является непременным атрибутом форт-процессора, это скорее дополнение. К тому же это не микроархитектура, а архитектура системы команд. Вот на ту же тему:

constant cmdNOP : integer := 0;

constant cmdNOT : integer := 1;
constant cmdFETCH : integer := 2;
constant cmdSHL : integer := 3;
constant cmdSHR : integer := 4;
constant cmdSHRA : integer := 5;
constant cmdINPORT : integer := 6;

constant cmdSWAP : integer := 7;

constant cmdDUP : integer := 8;
constant cmdOVER : integer := 9;
constant cmdFROMR : integer := 10;
constant cmdLOOP : integer := 11;
constant cmdSYSREG : integer := 12;

constant cmdPLUS : integer := 13;
constant cmdMINUS : integer := 14;
constant cmdAND : integer := 15;
constant cmdOR : integer := 16;
constant cmdXOR : integer := 17;
constant cmdEQUAL : integer := 18;
constant cmdLESSER : integer := 19;
constant cmdGREATER : integer := 20;
constant cmdMULT : integer := 21;

constant cmdDROP : integer := 22;
constant cmdJMP : integer := 23;
constant cmdCALL : integer := 24;
constant cmdRJMP : integer := 25;
constant cmdTOR : integer := 26;

constant cmdSTORE : integer := 27;
constant cmdDO : integer := 28;

constant cmdRIF : integer := 29;
constant cmdUNTIL : integer := 30;

constant cmdRET : integer := 31;

Те же 32 команды в основном наборе, при 6-битной команде в целом (32 - 63 - это загрузка литералов сдвигом на вершину стека).
На Pascal пишемс) А что значит cmdSYSREG?
Почему нету cmdOUTPORT?


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6104
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
Это VHDL, а не Паскаль. Sysreg - чтение регистров, встроенных в ядро процессора (таймер, UART). Outport совмещен с записью в память, поскольку при 32 битах адреса нет большого смысла заводить раздельные адресные пространства памяти и ВВ. На чтение inport, тем не менее, есть из соображений схемотехники - нужен мультиплексор на чтение, а вот запись вполне может быть широковещательной.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Ср дек 06, 2017 20:39 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 227
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
Спасибо за разъяснение, а то я почему-то незаметил ":=", что в Pascal просто "=", и вместо "constant" сокращение "const".
Кстати, зачастую константы в таком виде являются переменными, которые просто заранее инициализируются (как в Си). Однако, к сожалению, так рассуждают не все компиляторы.

Я не знаю, но почему-то именно сегодня я понял, что Форт можно понимать как ассемблер для стековых процессоров. Это конечно в узком смысле, на самом же деле, как я понимаю, он является мета-языком (на нём можно описать что угодно). Вопрос заключается в том, ПОЧЕМУ Я РАНЬШЕ ЭТОГО НЕ ПОНИМАЛ???

P.s. Как думаете, а удобно использовать ли такой модифицированный синтаксис (когда-то думал о мета-связи forth и html):
Код:
: BODY
  " HELLO WORLD!" BOLD
; BODY


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

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 227
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
Ну вот, я сделал (точнее доделал) частично мою простейшую 8/16-битную(ещё не понял, память: 0-0xFFFF) FVM и к ней "ассемблер" (там ещё не реализованы метки и, возможно, будут макросы).
Она у меня на Pascal, но, как я понял, для того, чтобы реализовать потом ОС, мне сначало надо определится с системными функциями...
Вот какие инструкции у меня там есть:
Цитата:
add sub and or xor not mul div inc dec dup swap drop pick roll int?(байткод) ints(номер из стека) lit? rdrop
tod(R>) tor(>R) lsp(SP@) ssp(SP!) lrp(RP@) srp(RP!) ft(fetch, @) st(store, !) cft(...) cst(...) move moved
cmp br(branch) ?br(...) key ?key emit

Исходники, если надо, выложу через Хищника (бо у меня почему-то не работает).

P.s. int? значит, что для int0 - 0xE0, int1 - 0xE1 и т.д. (всего их 16).


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

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2017
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 33 раз.
_KROL писал(а):
Вопрос заключается в том, ПОЧЕМУ Я РАНЬШЕ ЭТОГО НЕ ПОНИМАЛ???

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

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


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

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 227
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
Почему "дурной"? Я ведь только пытаюсь выделить основные команды. Потом добавлю системные команды (выделение памяти, "нормальный" ввод/вывод и др.)


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

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2017
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 33 раз.
_KROL писал(а):
Почему "дурной"? Я ведь только пытаюсь выделить основные команды.
Основные команды - это
1. ОК, СИМВОЛ, ВЫПОЛНИТЬ, КОМПИЛИРОВАТЬ, СЛЕДУЮЩИЙ, заточенные под нужный проблемно-ориентированный язык.
2. Операторы самого проблемно-ориентированного языка.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


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

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 227
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
gudleifr писал(а):
_KROL писал(а):
Почему "дурной"? Я ведь только пытаюсь выделить основные команды.
Основные команды - это
1. ОК, СИМВОЛ, ВЫПОЛНИТЬ, КОМПИЛИРОВАТЬ, СЛЕДУЮЩИЙ, заточенные под нужный проблемно-ориентированный язык.
2. Операторы самого проблемно-ориентированного языка.

Дело в том, что это уже уровень Форта, а я собираюсь сделать как командный язык для этой ОС.
КОМПИЛИРОВАТЬ, к примеру, не надо, т.к. уже есть fetch и store.


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

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2017
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 33 раз.
_KROL писал(а):
Дело в том, что это уже уровень Форта.
Нет, это все маш.код (см. Мур). Конечно, в них (особенно в СИМВОЛ) можно выделить "отдельные слова", особенно, если писать на высокооуровневых языках (и в удобных IDE), но, тут, чем мощнее IDE, тем меньше необходимость в этих "отдельных" словах.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


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

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 227
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
А ОК приложениям зачем, и куда будет компилировать код КОМПИЛИРОВАТЬ?


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

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2017
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 33 раз.
_KROL писал(а):
А ОК приложениям зачем?

ОК обеспечивает подготовку системы к очередному вводу - чистит мусор от прошлого чтения, выдает приглашение, настраивается на нужный поток ввода...
_KROL писал(а):
куда будет компилировать код КОМПИЛИРОВАТЬ?
В СЛОВАРЬ.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


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

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 227
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
gudleifr писал(а):
_KROL писал(а):
А ОК приложениям зачем?

ОК обеспечивает подготовку системы к очередному вводу - чистит мусор от прошлого чтения, выдает приглашение, настраивается на нужный поток ввода...
_KROL писал(а):
куда будет компилировать код КОМПИЛИРОВАТЬ?
В СЛОВАРЬ.

Вы меня наврное не понимаете потому, что я не совсем наверное правильно выразился. Я делаю ядро+виртуальная стековая машина, т.е. эмулирую набор комманд стекового процессора. Да и как понять, какую роль в этой системе будет играть словарь? Ведь Форт командный интерпретатор/компилятор, он отдельная программа, как "COMMAND.COM" в DOS, только он куда круче.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Чт дек 07, 2017 21:57 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2017
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 33 раз.
_KROL писал(а):
Я делаю ядро+виртуальная стековая машина, т.е. эмулирую набор комманд стекового процессора.
И я о том же - "дурной стек-процессор"... К FORTH это не имеет никакого отношения.

_KROL писал(а):
Ведь Форт командный интерпретатор/компилятор, он отдельная программа
Нет, просто, недостающее звено.
ИзображениеТЕМА #30, АБЗАЦ #578Изображение

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


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

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 227
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
gudleifr писал(а):
_KROL писал(а):
Я делаю ядро+виртуальная стековая машина, т.е. эмулирую набор комманд стекового процессора.
И я о том же - "дурной стек-процессор"... К FORTH это не имеет никакого отношения.

_KROL писал(а):
Ведь Форт командный интерпретатор/компилятор, он отдельная программа
Нет, просто, недостающее звено.
ИзображениеТЕМА #30, АБЗАЦ #578Изображение

Я конечно вас понимаю, исторически сложилось, что Форт - целая система с транслятором и ВФМ и т.д. Но у меня возникает тогда вопрос: почему это назвали языком программирования? Вот я и разделил ВФМ и транслятор. Это конечно ограничивает программиста, но ведь и защищённый режим ограничивает пользовательские приложения от некоторых комманд и доступ к памяти. Я прежде смотрю на всё это как на ОС, а не как на новый Форт. Даже java больше на это подходит, как тут кто-то писал...
Вывод: надо создать удобную систему комманд.


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

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2017
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 33 раз.
_KROL писал(а):
Я конечно вас понимаю, исторически сложилось, что Форт - целая система с транслятором и ВФМ
Немного не так. Исторически сложилось, что "ниосиляторы" FORTH (или микро-фортеры, но по другим причинам) пытаются разделить его на "транслятор и ВМФ", и именно поэтому у "ниосиляторов" все плохо, а у микро-фортеров все хорошо.

_KROL писал(а):
Но у меня возникает тогда вопрос: почему это назвали языком программирования?
Потому же, почему и "язык ассемблера" называют "ассемблером". Простонародное смешение терминов.

_KROL писал(а):
Вот я и разделил ВФМ и транслятор. Это конечно ограничивает программиста, но ведь и защищённый режим ограничивает пользовательские приложения от некоторых комманд и доступ к памяти.
Не слишком ли высокопарно?

_KROL писал(а):
Я прежде смотрю на всё это как на ОС, а не как на новый Форт.
Может, начать с чего попроще?

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


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

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


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

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


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

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