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

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - что же такое стек?
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
как хотите, стек это некий механизм или устройство - тут я так понимаю вопросов нет
для промежуточного хранения данных - как и в случае с регистром (в любом случае в стеке данные в отличие от массива и канала данные не хранят)
с двумя фундаментальными поддерживаемыми операциями (к чайнику можно и брилианты прикрутить, при этом чайником он останется, а вот в брилиантах без чайника воду не вскипятить!) - извлечение и заталкивание (все остальное лишнее).
Доступ ведется только с одного конца (а вот с какого не важно, то есть стек может расти и вверх и вниз)

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

Таким образом, если некое устройство позовляет заталкивать данные, извлекать как это происходит в стеке, а так же читать верхнее значение и перезаписывать его без заталкивания, то его надо рассматривать как составное устройство состоящее из регистра и стека под ним в не зависимости от методики реализации (в железе или внутри ФВМ).

Таким образом, как я уже отмечал выше, у Форт-процессора как минимум есть 1 регистр TOS - аккумулятор, который работает с другим регистром данных SUB (например операции ! + - , но, кстати, SWAP не требует, чтобы SUB был регистром!!!) а так же два адресных регистра: IP и RTOS
все.
Сообщение Добавлено: Чт авг 20, 2009 19:22
  Заголовок сообщения:   Ответить с цитатой
Массив он только в программном случае, но не в железном.
В железе есть стек и только стек. Без всяких массивов.
Сообщение Добавлено: Чт авг 20, 2009 18:49
  Заголовок сообщения:   Ответить с цитатой
Структура данных, которая в форте называется стек данных, имеет свойства стека и одномерного массива одновременно и
не сводится ни к стеку ни к массиву - правильнее ее называть стеко-массив.
Сообщение Добавлено: Чт авг 20, 2009 09:55
  Заголовок сообщения:   Ответить с цитатой
WingLion писал(а):
Стек - это буфер для хранения данных,
организованный по принципу Last In First Out (LIFO).


Стек - это устройство для хранения данных,
организованное по принципу Last In First Out (LIFO).
Сообщение Добавлено: Чт авг 20, 2009 07:27
  Заголовок сообщения:   Ответить с цитатой
вопрос писал(а):
Поскольку форт - "стековая машина"

Forth - это концепция в первую очередь.

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

потому что процессоры данные не хранят 8) они их обрабатывают.
Сообщение Добавлено: Чт авг 20, 2009 00:41
  Заголовок сообщения:   Ответить с цитатой
Цитата:
скорее механизм для краткосрочного хранения данных

Поскольку форт - "стековая машина", то, получается ... :shock: что форт основан на краткосрочном хранении данных
(даже звучит как-то странно)
Сообщение Добавлено: Чт авг 20, 2009 00:35
  Заголовок сообщения:   Ответить с цитатой
вопрос писал(а):
ЛАдно, попробую я - начнём с того, что стек - структура данных, не так ли??

скорее механизм для краткосрочного хранения данных
Сообщение Добавлено: Чт авг 20, 2009 00:25
  Заголовок сообщения:   Ответить с цитатой
ЛАдно, попробую я - начнём с того, что стек - структура данных, не так ли??
А зачем данным лежать в струтктуре? Чтобы существовал определённый алгоритм образения к этой структуре... отличающийся от алгоритма обращения к другой структуре...
Ну как?
Если неплохо, можно и определение :D
Сообщение Добавлено: Ср авг 19, 2009 22:16
  Заголовок сообщения:   Ответить с цитатой
Kopa писал(а):
TOP и SUB не совсем регистры т.к. они меняют своё расположение в стековой машине.

гм, register renaming существует и не на стековых процессорах, это если говорить о команде SWAP, которая аналог exch команды на ix86 архитектуре.
С другой стороны функционально они никогда не меняют своего положения.

Kopa писал(а):
И хватит ли RTOS регистра для стека возвратов?

тут надо смотреть на базовую модель Форт-машины.
для стека возвратов да, достаточно двух регистров RTOS и IP
Сообщение Добавлено: Ср авг 19, 2009 21:49
  Заголовок сообщения:   Ответить с цитатой
mOleg писал(а):
Kopa писал(а):
А всех остальные, в базовых примитивах, можно вывести из использования этих двух?

это просто означает, что Форт-Машина, это не чисто стековая машина, а регистро-стековая, и минимальное количество регистров = 4:
IP RTOS TOP SUB


TOP и SUB не совсем регистры т.к. они меняют своё расположение в стековой машине.
И хватит ли RTOS регистра для стека возвратов?
Сообщение Добавлено: Ср авг 19, 2009 21:44
  Заголовок сообщения:   Ответить с цитатой
Kopa писал(а):
А всех остальные, в базовых примитивах, можно вывести из использования этих двух?

это просто означает, что Форт-Машина, это не чисто стековая машина, а регистро-стековая, и минимальное количество регистров = 4:
IP RTOS TOP SUB
Сообщение Добавлено: Ср авг 19, 2009 21:37
  Заголовок сообщения:   Ответить с цитатой
mOleg писал(а):
garbler писал(а):
лучше что-нибудь попроще.... давайте к стеку вернёмся.

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


А всех остальные, в базовых примитивах, можно вывести из использования этих двух?
Сообщение Добавлено: Ср авг 19, 2009 21:35
  Заголовок сообщения:   Ответить с цитатой
garbler писал(а):
лучше что-нибудь попроще.... давайте к стеку вернёмся.

на мой взгляд, со стеком уже разобрались, т.к. формулировка дана, и главный вопрос решон - стек поддерживает всего две фундаментальные операции: заталкивание и извлечение.
Сообщение Добавлено: Ср авг 19, 2009 21:26
  Заголовок сообщения:   Ответить с цитатой
А если спросить у "Великого учителя" - google что такое стек?
Сообщение Добавлено: Ср авг 19, 2009 21:19
  Заголовок сообщения:   Ответить с цитатой
Kamikaze писал(а):
О, стек!!! В форте ведь нет ограничений "на помечтать"? 8)
Пытаюсь сейчас стек строк от ~day использовать под одну задачку - и так понравилось, что захотелось "многостаночности" - отдельные стеки под адреса, под данные, под строки и т.п. Вплоть до того, что для каждого типа данных свой стек. Вобщем - стекоориентированную среду программирования.

Я давно уже такое придумываю
Сообщение Добавлено: Ср авг 19, 2009 11:43

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


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