|
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 258
|
|
Разработать стековую машину06.06.2013, 21:28. Показов 2289. Ответов 4
Метки нет (Все метки)
Здравствуйте. Помогите решить такую задачу. Думал смогу сам, но не смог.
Задание: Разработать стековую машину. Системная часть: – память команд — 64 килобайта; – стек адресов в основной памяти, обычно в конце блока; – регистры: – SP — указатель стека, – PC — указатель команд. Проблемно-ориентированная часть: - память данных — в основной памяти, обычно после кода; - стек данных — 256 ячеек данных; - регистры: - SPF — указатель стека (8 бит), - PSW — слово состояния. Разработка стековой виртуальной машины — одно из самых простых заданий. Все арифметические команды работают со стеком, то есть не имеют операндов. Целочисленные арифметические команды работают со стеком адресов. Вещественные арифметические команды работают со стеком данных. Команд, обладающих операндами, минимум: Load <addr> Команда укладывает значение параметра в стек адресов. Push <addr> Команда укладывает значение по адресу addr в стек адресов. Pull <addr> Команда вытаскивает из стека адресов значение и записывает его по указанному в качестве параметра адресу. Обеспечить в проблемно-ориентированной части Вашей виртуальной машины все операции: (Реализовать программу рекурсивного спуска выражения и перевода в постфиксный вид; Реализовать программу, разбора входного потока; Реализовать программу разбора диапазона; Разработать make файл для сборки проекта из двух модулей; Функция разбора вещественного числа в инженерной форме). Заданием будет являться разработка системной части виртуальной машины и обеспечение операций над вещественными числами в проблемно-ориентированной части. Реализовать: - стек вещественных чисел, - стек диапазонов, - все основные арифметические операции для вещественных чисел, - все операции, которые Вам могут потребоваться для работы с диапазонами. Например: команда Push для диапазона, пересечение диапазона, и так далее. Конкретный список операций остается на Ваше усмотрение, однако, нужно обеспечить как можно более полную работу с диапазонами. Заранее всем спасибо.
0
|
|
| 06.06.2013, 21:28 | |
|
Ответы с готовыми решениями:
4
Разработать эмулятор машину Поста Разработать машину Тьюринга для функции Разработать машину тьюринга, которая уменьшала бы заданное число n на 2 |
|
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 258
|
|
| 08.06.2013, 19:11 [ТС] | |
|
Специалисты помогите или дайте ссылку на похожее задание. Заранее спасибо.
0
|
|
|
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 258
|
|
| 10.06.2013, 21:35 [ТС] | |
|
Специалисты помогите решить задание. Заранее спасибо.
0
|
|
| 12.06.2013, 02:45 | |
|
Forth и Lua - готовые примеры стековых машин в исходниках. На GameDev.ru - Разработка игр есть статьи по скриптовым движкам. Интерпретаторы, обычно, делаются на стековых VM - полный гугль ссылок. На моей домашней страничке можете посмотреть ссылки в разделе Links/Parsers. Возьмите Coco/R и книжку Terry к нему - это решит, по крайней мере, часть ваших проблем.
У James Roskind (http://www.noniandjim.com/Jim/uproc/) есть сделанный на AnaGram TinyBasic Interpreter. Думаю, это очень близко к вашей задаче. К слову, к AnaGram идет куча примеров и библиотека классов. У Фридман, Кландер, Михаэлис, Шилдт "C C++. Архив программ. Код с комментариями" - реализация SmallBasic и куча примеров лексического и синтаксического разбора.
1
|
|
|
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 258
|
|
| 12.06.2013, 07:54 [ТС] | |
|
gazlan, спасибо большое, сейчас посмотрю.
0
|
|
| 12.06.2013, 07:54 | |
|
Помогаю со студенческими работами здесь
5
Разработать машину Тьюринга, которая уменьшала бы заданное число n на 1
Разработать иерархию не менее 2 классов, и программу Разработать программу для реализации игры пятнашки. Разработать 2-3 Разработать программу «Система учета работников предприятия»; разработать собственный тип «Работник» Нарисовать машину Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|