Вторая машина
-
Описание SECD-машины
- SECD-машина — это виртуальная машина, разработанная Питером Дж. Ландином в 1964 году.
- Машина основана на стеке и использует замыкания для сохранения контекста функций.
- Она позволяет функциям возвращать функции, что было невозможно в языке программирования ALGOL 60.
-
Реализация и оценка выражений
- Выражения оцениваются в обратном порядке, начиная с конца.
- При вычислении выражения, оно преобразуется в обратную польскую нотацию.
- Оценка включает в себя извлечение значений из стека, создание замыканий для свободных переменных и применение функций.
-
Регистры и память
- Машина использует стек для хранения аргументов функций и инструкций.
- Регистр C указывает на начало списка инструкций для оценки, а регистр D используется для временного хранения значений.
- Память машины организована в виде списков, каждый из которых представляет уровень среды.
-
Инструкции SECD-машины
- В машине есть инструкции для работы со стеком, переменными, списками и замыканиями.
- Некоторые инструкции, такие как sel и join, используются для выбора между списками и извлечения значений из стека.
-
Дополнительные ресурсы
- В статье есть ссылки на другие работы, связанные с SECD-машиной, и внешние ресурсы.
Полный текст статьи: