Что означает "Дублировать верхний элемент в стеке" на языке пробельных символов?

Я пытаюсь реализовать интерпретатор Whitespace для удовольствия, в настоящее время я следую этому руководству, чтобы изучить его синтаксис.

Синтаксис выглядит просто, но я не понимаю, что означает "Дублировать верхний элемент в стеке". Что это значит? это значит получить значение вершины стека и сохранить его в специальном регистре?

1 ответ

Это означает, что нужно взять значение поверх стека, не выталкивая его, и отправить вторую копию точно такой же вещи.

Теперь есть 2 из всего, что было.

Точный способ реализации будет зависеть от того, какие функции доступны для управления вашим стеком. Если у вас есть только push и pop, то вы можете сделать это так:

x = pop();
push(x);
push(x);

Если у вас есть функция top, которая может получить верхний элемент, не выталкивая его, вы можете сделать:

x = top();
push(x);

Или даже:

push(top());

который читается так же хорошо, как псевдокод.:)

Другие вопросы по тегам