Описание тега stack-machine

Стек-машина предназначена для вопросов, связанных с использованием структуры данных стека для хранения как временных значений во время вычислений, так и кадров стека во время передачи управления подпрограммам.
2 ответа

Дизайн виртуальной машины с отдельным стеком и кучей

Я пытаюсь узнать немного больше о виртуальных машинах и языках программирования в целом, реализуя некоторые вещи, которые можно найти в книгах. Книга, которую я сейчас изучаю, хранит стек и кучу в одной области памяти. Стек растет вверх, а куча раст…
2 ответа

Как найти корни gc в стековой машине?

Я пишу компилятор для довольно стандартной стековой машины. Теперь я хочу добавить сборщик мусора. Я вижу, что мог бы генерировать некие "стековые карты", чтобы знать, какие переменные являются корнями gc в каждой записи активации. Однако я понятия …
1 ответ

SSA для стекового машинного кода

Я работаю над компилятором для стековой машины (в частности, CIL), и я проанализировал код в графе базовых блоков. Отсюда я ищу применение SSA к методам, но это не слишком хорошо. Моя первая попытка (при работе с плоским списком, а не с графиком) со…
27 фев '09 в 03:03
0 ответов

Машина для сборки стеков: тренировка с толчком / выталкиванием

Предположим, что адрес 100 содержит значение 7, а адрес 200 содержит значение 3, объясните цикл инструкций для подпрограммы арифметической инструкции, используя определение машины фон Неймана. push[100] push[200] sub pop[500] Я знаю ответ push[100] …
23 фев '17 в 15:26
1 ответ

Как обрабатывать область при генерации байт-кода с помощью рукописного компилятора

Я написал небольшой компилятор для простой машины стека. Он может собирать и обрабатывать область действия / функции только через несколько хаков виртуальных машин. То есть он определяет область действия и определения переменных области в самом байт…
1 ответ

Теория интерпретаторов, частичных оценщиков и компиляторов

Итак, я изучал стековые машины, интерпретаторы, компиляторы и некоторые другие вещи, связанные с языками программирования и их общей теорией. Большинство материалов, которые я нахожу в книгах и в Интернете, очень специализированы и посвящены одной к…
2 ответа

Преобразование SSA в стек

Хорошо известно, как преобразовать код из представления SSA в машину регистрации. (По сути, распределение регистров раскраски графа является ядром такого преобразования.) Но каков общий метод преобразования SSA в стековую машину? (Байт-код CIL, в сл…
14 июл '18 в 14:33
1 ответ

Компиляция операторов switch для простой виртуальной машины

Итак, я собираю подмножество C в простую стековую виртуальную машину для целей обучения и хотел бы узнать, как лучше всего скомпилировать оператор switch, например switch (e) { case 0: { ... } case 1: { ... } ... case k: { ... } } Книга, которую я и…
2 ответа

Учебные ресурсы - стековые машины, особенно JVM

Мне любопытно, есть ли у кого-нибудь действительно хорошие учебники / статьи / книги для изучения стековых машин в целом и JVM в частности. Я знаю эти: http://www.artima.com/insidejvm/applets/EternalMath.html http://www.ibm.com/developerworks/ibm/li…
07 окт '08 в 17:15
1 ответ

Компиляция локальных переменных для стекового компьютера

Я строю игрушечный компилятор из языка, подобного C, для стекового компьютера, и я нахожусь в точке, где мне нужно выяснить, что делать с функциями и блокировать локальные переменные. Если подумать абстрактно, похоже, что у меня есть два варианта на…
0 ответов

Как сделать несколько подключений с помощью jsplumb?

У меня есть несколько пользовательских конечных точек в исходном узле, и я хочу подключить его к другому узлу внутри холста. Как мне это сделать? Ниже приведена ссылка на скриншот для уточнения
18 авг '18 в 10:38
1 ответ

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

Предположим, у меня есть простой C-подобный язык программирования: int foo() { int x = 10; int bar(y int) { return y * 2 } return bar() + x } Как вы можете видеть, он поддерживает вложенные функции.Я уже реализовал фазы синтаксического анализа и сей…
1 ответ

Насколько распространено использование стекового компьютера в коде C++?

Я смотрю на некоторый код C++, и он включает в себя машину стека для сценариев. Я изучил C++ несколько лет назад, но никогда не использовал его в своей повседневной работе, поэтому у меня нет никакой реальной идеи, является ли это обычной практикой,…
09 сен '13 в 09:56
1 ответ

Как хранить переменные из компиляторов таблиц символов

Для моего класса я должен написать компилятор для небольшого подмножества Python: Этот язык имеет один метод Там нет функций, поэтому я имею дело только с одной лексической областью Это подмножество Python будет переведено в байт-код Java. Я уже сде…
0 ответов

Чем машина регистрации отличается от машины стека?

Чем машина регистрации отличается от машины стека?
18 фев '10 в 12:01
1 ответ

Как разработать набор команд для стековой машины?

Виртуальные машины на основе стека, такие как CLR и JVM, имеют различный набор инструкций. Есть ли какая-то теория, лежащая в основе разработки набора инструкций при создании виртуальной машины? например, есть наборы команд JVM для загрузки констант…
0 ответов

MIPS для укладки машинного кода

Существует блок кода, такой как MIPS, я хочу преобразовать этот код в машинный код стека. Я сомневался в его правильности. Я не уверен, как переместить значение с "a" на "r1". Это правда? Спасибо. lw r1, a lw r2, b добавить r3,r1,r2 SW R3, C Стек ма…
14 окт '15 в 12:05
1 ответ

Как оптимизировать простой стек-машинный код?

Я играл с простым основанным на стеке языком, и одна из вещей, которые я неоднократно обнаруживал, это ручная оптимизация кусков кода. Я подумал: "Эй, это очень похоже на то, что может сделать компьютер! Повторяющаяся работа с ясной целью и семантик…
2 ответа

Использует ли процессор более одного стека для отделения стека вызовов от стека выражений / регистров?

Я читал некоторые основные статьи об обработке памяти процессором, и я был озадачен тем, как процессор обрабатывает то, что происходит дальше. Концепция стека вызовов ясна, но мне было интересно, является ли стек выражений / стек регистров (использу…
1 ответ

Как моя инструкция знает, на что указывает адрес в стеке операндов?

Я пишу компилятор байт-кода и виртуальную машину. Я могу использовать константы, помещая любые нецелые значения в постоянный пул и помещая 4-байтовый целочисленный адрес в стек. Эта часть в порядке. Но теперь я добавляю глобальные переменные, которы…
23 июл '19 в 02:31