Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.06.2013, 21:28
Ответы с готовыми решениями:

Разработать эмулятор машину Поста
Привет! Помоги составить. Понятие не имею про Машину Поста! 1) Разработать программу 2) Разработать эмулятор машину Поста ...

Разработать машину Тьюринга для функции
На ленте записано число в унарной системе счисления. Разработать машину Тьюринга для функции f(x)=2x

Разработать машину тьюринга, которая уменьшала бы заданное число n на 2
Дано число в 8 ричной системе счисления. Разработать машину тьюринга, которая умеьшала бы заданное число n на 2

4
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
3177 / 1936 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2013, 07:54
Помогаю со студенческими работами здесь

Разработать машину Тьюринга, которая уменьшала бы заданное число n на 1
Дана десятичная запись натурального числа n . Разработать машину Тьюринга, которая уменьшала бы заданное число n на 1.

Передача адреса на стековую переменную в другой поток -- сработает ли?
Приветствую. Прочитал, что у каждого потока свой стек. Непонятно. Ситуация: в одном потоке есть функция void foo(int* v) { ...

Разработать иерархию не менее 2 классов, и программу Разработать программу для реализации игры пятнашки. Разработать 2-3
Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Предусмотреть методы...

Разработать программу «Система учета работников предприятия»; разработать собственный тип «Работник»
Всем привет. Есть задача: Разработать программу «Система учета работников предприятия». Разработать собственный тип «Работник» - ...

Нарисовать машину
Нарисовать машину. Помогите... Кто сможет?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Переходник 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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru