6 / 6 / 3
Регистрация: 19.09.2010
Сообщений: 173
|
|
1 | |
Трансляция на ассемблер: промежуточный код для сложных действий16.11.2015, 17:10. Показов 2966. Ответов 3
Метки нет (Все метки)
Добрый день. Есть следующее:
int a; a = 5+(9*4); В результате отработки польской записи вторая строка будет преобразована в: a = 5 9 4 * +; Вопрос, собственно, в том, можно ли подобное транслировать на язык ассемблера без промежуточного кода? Примерно такой алгоритм: 5 - в стек 9 - в стек 4 - в стек * - извлекаем 2 элемента из стека и выполняем это действие над ними, результат в стек //теперь стек имеет вид: 4 36 + + - извлекаем 2 элемента из стека и выполняем это действие, результат в стек. Итого получится: a = 41; С другой стороны, расписывая всё это через промежуточный код: int temp = 9*4; int a = 5+temp; Если со стеком реально осуществить такое, то какой вариант предпочтительнее(стек или промежуточный код)?
0
|
16.11.2015, 17:10 | |
Ответы с готовыми решениями:
3
Увидеть промежуточный код и его пошаговое выполнение простое шифрование информации с превращение текста в промежуточный код Дописать код для кнопки отмены действий пользователя Разработать программу для реализации основных действий с двунаправленным динамическим списком (я правильно составила код?) |
644 / 148 / 31
Регистрация: 11.02.2013
Сообщений: 277
|
||||||
16.11.2015, 17:45 | 2 | |||||
Сообщение было отмечено Minchanin-Bel как решение
Решение
Можно. Так работает Forth.
Вот пример:
1
|
6 / 6 / 3
Регистрация: 19.09.2010
Сообщений: 173
|
|
16.11.2015, 18:02 [ТС] | 3 |
Отлично, спасибо!
А преимущество есть у какого-либо из методов? Или же они, по сути, одинаковы?
1
|
644 / 148 / 31
Регистрация: 11.02.2013
Сообщений: 277
|
||||||
17.11.2015, 06:16 | 4 | |||||
Сообщение было отмечено Taatshi как решение
Решение
Нет, не одинаковы. Вот, безстековый способ.
1
|
17.11.2015, 06:16 | |
17.11.2015, 06:16 | |
Помогаю со студенческими работами здесь
4
Транслировать заданный код с языка Pascal в исходный код ассемблер Скоростной промежуточный кеш для лог. анализаторов. Промежуточный класс для реализации методов работы с базой данных. Проектирование сложных систем - ООП. Покритикуйте код, пожалуйста! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |