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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: [BF] память форт-машины и стеки
СообщениеДобавлено: Вт май 22, 2007 23:13 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Код:
uchar M[Msz];             // память форт-машины (однозадачный вариант)

uchar op; uint Ip=0;      // опкод (1 байт), указатель команд интерпретатора

uint R[Rsz]; uint Rp=0;   // стек возвратов, программно недоступен

int D[Dsz]; uint Dp=0;   // стек данных

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт май 22, 2007 23:17 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
адресация побайтная, порядок байт как на 80x86 (как самом распространенном из легко программируемых пользователем) -- сначала младший байт, потом старший, в однозадачном
варианте в виде статического массива

Код:
CREATE M _Msz ALLOT


стек возвратов только для команд call/ret, программно недоступен для увеличения надежности и давания по рукам чтобы не было хитрый финтов ушами со структурами управления

Код:
CREATE R _Rsz CELLS ALLOT
VARIABLE Rp R Rp !

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт май 22, 2007 23:17 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
стек данных -- целые со знаком

Код:
CREATE D _Dsz CELLS ALLOT
VARIABLE Dp D Dp !

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт май 22, 2007 23:18 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
также отдельные стека для do/loop циклов L[], плавучки F[], дополнительный U[] для любителей >R R>

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт май 22, 2007 23:20 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
или все-таки механизм вмешательства в работу структур управления из программы настолько эффективен и удобен, что перевешивает простоу контроля выполнения программ в движке и надежность работы программ (если операции со стеком возвратов оказываются например зависимы от входных данных) ?

_________________
http://akps.ssau.ru/forth/


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

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ну плавучка однозначно в отдельный стек -- причем аппаратный мат.сопроцессора

_________________
http://akps.ssau.ru/forth/


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

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


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

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


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

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