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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 107 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 8  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Сб авг 15, 2009 08:20 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
кстати, если форт - "языковая среда" :wink: :)
то как базовая модель может состоять из регистров


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
вопрос писал(а):
кстати, если форт - "языковая среда" Wink Smile
то как базовая модель может состоять из регистров


Цитата:
5.1 Базовая модель Форт-Машины

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
WingLion писал(а):
вопрос писал(а):
кстати, если форт - "языковая среда" Wink Smile
то как базовая модель может состоять из регистров


Цитата:
5.1 Базовая модель Форт-Машины

Да, лучше так, не стоит тут теоретические варианты развивать.
Пусть будет наиболее простой и внятный.

примечание - вариация - по латыни - многообразие

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


Последний раз редактировалось вопрос Сб авг 15, 2009 10:46, всего редактировалось 1 раз.

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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
по сути, в обоих предложенных схемах два регистра являются вершинами стеков... TOP - явно, IP - неявно, Так что, имеем два стека, линейную память и операционное логическое ядро.
А есть в этом ядре память (дополнительные регистры/триггеры) или нет - формально и не важно.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
WingLion писал(а):
по сути, в обоих предложенных схемах два регистра являются вершинами стеков... TOP - явно, IP - неявно, Так что, имеем два стека, линейную память и операционное логическое ядро.
А есть в этом ядре память (дополнительные регистры/триггеры) или нет - формально и не важно.

ну да


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
существует, кстати, такое понятие, как
" Абстрактная Машина "
можно было бы эту самую машину форта выразить как абстрактную
пример - Пролог как правило реализован на абстрактной машине Уоррена
в одной статье есть упоминание и её и форта тут: http://www.nestor.minsk.by/kg/2000/10/kg01004.html

машина так и строится, как некие области памяти и применяемый к областям алгоритм...


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
вопрос писал(а):
с другой стороны, почему бы не обойтмсь без регистров тоже и ограничиться структурами данных - получится очень просто - линейная память и два стека, а какие регистры их реализуют - не столь важно - может есть один регистр для реализации стека, а может два - плюс сегментный IMHO

собственно, тема открыта для других предожений!)
нарисуйте свой вариант, мы и его будем обсуждать (касается всех заинтересованных)

WingLion писал(а):
по сути, в обоих предложенных схемах два регистра являются вершинами стеков... TOP - явно, IP - неявно, Так что, имеем два стека, линейную память и операционное логическое ядро.

эм, вот тут я несколько не согласен. ТОP все же является простым регистром, хотя и относится к стеку данных.
а вот IP, тот да, вполне может быть частью стека возвратов (но тоже его удобнее представлять как регистр)

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


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
эм, вот тут я несколько не согласен. ТОP все же является простым регистром, хотя и относится к стеку данных.
а вот IP, тот да, вполне может быть частью стека возвратов (но тоже его удобнее представлять как регистр)


Они лишь формально являются частями стеков. А реально, у стека один вход для данных, поэтому над его вершиной и появляется доп-регистр, который нужен, чтобы одновременно модифицировать два элемента, а не один.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
С другой стороны, две ячейки стека модифицирует только SWAP (ROT -ROT - три ячейки... а ROLL - вообще немеряно :) В этой связи возможно выполнить стек с одним портом для записи. Именно возможно, поскольку выделение специального регистра для вершины стека, в принципе, действует на проект весьма благоприятно - появляется возможность дублирования, например, чего нельзя обеспечить для памяти, реализующей остальную часть стека.
Я бы остановился на том, что стек должен обеспечивать доступ как минимум к двум верхним числам, и одной произвольной ячейке для записи. Произвольность на деле оборачивается тремя адресами - самой вершиной, ячейкой под ней, и ячейкой над ней.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
WingLion писал(а):
Они лишь формально являются частями стеков. А реально, у стека один вход для данных, поэтому над его вершиной и появляется доп-регистр, который нужен, чтобы одновременно модифицировать два элемента, а не один.

я именно это и имею ввиду. Те же соображения касаются и IP

кстати, я добавил описание регистров к картинке в первый пост

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


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
С другой стороны, две ячейки стека модифицирует только SWAP (ROT -ROT - три ячейки... а ROLL - вообще немеряно В этой связи возможно выполнить стек с одним портом для записи.

для формальной машины это не важно, тут скорее важно отношение между собой отдельных частей процессора.
в реальности стек может быть очень разным:
1) находиться в общем адресном пространстве кода данных (кстати наихудший вариант)
2) находиться в отдельном адресном пространстве, позволяющем, однако, работать со стеком, как с массивом
3) чистый стек с одним единственным входом\выходом для чтения\извлечения\заталкивания данных
и так далее. Плюс варианты организации стека с учетом многозадачности (легкого переключения) и т.п.

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

и это получается хитрый стек, а по сути некое "мошенничество" когда называем пару регистр+стек "специальным стеком" 8)

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
в реальности стек может быть очень разным:
1) находиться в общем адресном пространстве кода данных (кстати наихудший вариант)
2) находиться в отдельном адресном пространстве, позволяющем, однако, работать со стеком, как с массивом
3) чистый стек с одним единственным входом\выходом для чтения\извлечения\заталкивания данных
и так далее. Плюс варианты организации стека с учетом многозадачности (легкого переключения) и т.п.

Как он будет реализован - это уже проблемы реализации. Но для постановки задачи реализации стека ее надо сформулировать. Откуда уже и будут понятны варианты.
mOleg писал(а):
и это получается хитрый стек, а по сути некое "мошенничество" когда называем пару регистр+стек "специальным стеком"

Это получается действительный стек. :) Потому что он именно так и работает:
2 2 + результат кладется "под вершину"
100 @ результат кладется вместо верхнего числа
2 результат кладется поверх верхнего числа


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
Как он будет реализован - это уже проблемы реализации. Но для постановки задачи реализации стека ее надо сформулировать. Откуда уже и будут понятны варианты.

именно!
а так, стек это структура данных с доступом только к верхнему элементу, и доступный на чтение и запись только с одной стороны.

Хищник писал(а):
mOleg писал(а):и это получается хитрый стек, а по сути некое "мошенничество" когда называем пару регистр+стек "специальным стеком"
Это получается действительный стек. Потому что он именно так и работает:

в форте он так работает (причем не всегда так, есть и чистые стеки, к примеру CONTEXT)
то есть тут тоже как с шитым кодом, действительно только в рамках Форта...

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
а так, стек это структура данных с доступом только к верхнему элементу, и доступный на чтение и запись только с одной стороны.

Тут надо разъяснять, почему, например, слово + работает сразу с двумя ячейками, и где находится верхнее число, когда это слово пытается добраться до второго операнда. Для аппаратной форт-машины доступ к двум ячейкам крайне желателен, иначе у нас появляется многотактный доступ к стеку из АЛУ.
mOleg писал(а):
в форте он так работает

Так и обсуждается Форт-машина.


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
собственно, тема открыта для других предожений!)
нарисуйте свой вариант, мы и его будем обсуждать (касается всех заинтересованных)

некий рисунок я помещал


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

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


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

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


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

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