‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou


> (eq 1 (eq 2 3))
compile ->( EQ 1 ( EQ 2 3 ) )
compile ->( EQ 2 3 )
Compiled list code:
CTXDOWN	NIL
PUSH	1
BIND	A
CTXDOWN	NIL
PUSH	2
BIND	A
PUSH	3
BIND	B
BLTIN	EQ
CTXUP	NIL
BIND	B
BLTIN	EQ
CTXUP	NIL

Все "машинные команды" берут один операнд. Даже там, где он не нужен или где логично было бы сделать два операнда (пара push/bind)

И вот где-то тут системе надо делать вывод о том, что рекурсивый вызов можно преобразовать в итерационный.

Tags: uncommon lisp
Subscribe

  • Я НЕ ОДИН ТАКОЙ!

    Оригинал взят у bitoniau в Люблю такие поделки. Мелкий LISP-компьютер на базе ATmega328, OLED дисплея и PS/2 клавы.

  • ucl internals

    Понял, что мне очень сильно не нравится пухлое представление самых частоупотребимых сущностей: коротких чисел и символов. Я не проводил никаких…

  • Чё-то сделал.

    Придумал, как объявлять функции. Не уверен, что правильно придумал, но оно даже работает, только я уже не совсем не понимаю - как именно: LAMBDA…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments