{"id":7,"date":"2004-01-14T11:32:57","date_gmt":"2004-01-14T09:32:57","guid":{"rendered":"http:\/\/blogs.bl0rg.net\/netzstaub\/?p=7"},"modified":"2004-01-14T11:32:57","modified_gmt":"2004-01-14T09:32:57","slug":"design-of-lisp-based-processors","status":"publish","type":"post","link":"https:\/\/blogs.bl0rg.net\/netzstaub\/2004\/01\/14\/design-of-lisp-based-processors\/","title":{"rendered":"Design of LISP-Based Processors"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogs.bl0rg.net\/netzstaub\/images\/lisp2.jpg\" height=\"148\" width=\"242\" vspace=\"10\" alt=\"lisp2\" \/><\/p>\n<p>I found this <a href=\"ftp:\/\/publications.ai.mit.edu\/ai-publications\/pdf\/AIM-514.pdf\">paper<\/a> by Guy Steele and Gerald Sussman describing the design of a LISP-interpreting processor (from <a href=\"http:\/\/www.its.caltech.edu\/~weel\/lispm.shtml\">Jaap Weel<\/a>).<\/p>\n<p>The paper shortly describes a small subset of LISP and a meta-circular evaluator, quickly moving on to describing an interpreter on a register-machine, and then implementing this interpreter as a VLSI processor. The resulting CPU lacks an ALU (it uses an incrementor for garbage collector purposes), but arithmetic is not necessary for most symbol-manipulating programs (pattern matching, symbolic maths).<\/p>\n<p>The LISP processor consists of two state-machines (the evaluator and the garbage collector). It would be fun to build such a system using today&#8217;s low-cost micro-controllers, not following the approach of building a LISP-compiler targeting micro-controllers, but building a &#8220;micro-LISP-machine&#8221;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I found this paper by Guy Steele and Gerald Sussman describing the design of a LISP-interpreting processor (from Jaap Weel). The paper shortly describes a small subset of LISP and a meta-circular evaluator, quickly moving on to describing an interpreter &hellip; <a href=\"https:\/\/blogs.bl0rg.net\/netzstaub\/2004\/01\/14\/design-of-lisp-based-processors\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-7","post","type-post","status-publish","format-standard","hentry","category-lispstaub"],"_links":{"self":[{"href":"https:\/\/blogs.bl0rg.net\/netzstaub\/wp-json\/wp\/v2\/posts\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.bl0rg.net\/netzstaub\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.bl0rg.net\/netzstaub\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.bl0rg.net\/netzstaub\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.bl0rg.net\/netzstaub\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":0,"href":"https:\/\/blogs.bl0rg.net\/netzstaub\/wp-json\/wp\/v2\/posts\/7\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.bl0rg.net\/netzstaub\/wp-json\/wp\/v2\/media?parent=7"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.bl0rg.net\/netzstaub\/wp-json\/wp\/v2\/categories?post=7"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.bl0rg.net\/netzstaub\/wp-json\/wp\/v2\/tags?post=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}