A metà anni '70 (quasi 40 anni fa) apparvero alcune macchine Lisp. Xerox (PARC) e MIT stavano sviluppando loro. Successivi Symbolics, LMI, TI e alcuni altri. Xerox utilizzava uno dei loro tipici processori bit-slice e MIT ha sviluppato un processore personalizzato ( CONS e poi CADR ). Il processore Xerox è stato utilizzato in un computer che poteva anche gestire la propria suite di software per ufficio e il software Smalltalk. Il processore Xerox utilizzava insiemi di istruzioni differenti per ciascuno. I set di istruzioni del processore sono stati programmati in microcodice. La macchina MIT Lisp aveva anche un processore, che poteva essere programmato in microcodice - ma era usato solo per il Lisp. A quel tempo i processori non erano CPU a microprocessore come oggi, ma una o più schede che creano una singola CPU. La maggior parte dei computer durante il 70s in grado di eseguire Lisp erano mainframe condivisi nel tempo o cosiddetti mini-computer (spesso macchine di DEC). Quindi non esistevano workstation o potenti personal computer. Le Lisp Machines sono state progettate per essere le prime workstation personali (utente singolo, nessuna condivisione del tempo, ampio spazio di indirizzamento, visualizzazione bitmap, grafica, mouse, rete, ...). Per eseguire Lisp in modo efficiente con la tecnologia del processore in quel momento, avevano bisogno di set di istruzioni personalizzate. Stiamo parlando di macchine precedenti con circa 1 MB di RAM, memoria virtuale su disco e meno di 1 MIPS (milioni di istruzioni al secondo).
Le macchine microcoder avevano set di istruzioni appositamente predisposti per supportare l'esecuzione di Lisp (architettura stack con istruzioni stack, aritmetica generica, chiamate a funzioni veloci, tipi di dati Lisp, supporto GC, ...). Nel caso della MIT Lisp Machine, l'hardware stesso aveva anche delle estensioni (come le larghezze di parole speciali della memoria).
I computer stock-hardware utilizzavano CPU come DEC VAX, Motorola 68k, Intel 86 e versioni successive SPARC, POWER, MIPS, ALPHA e molti altri. Questi computer utilizzavano le CPU come venivano dal produttore (DEC, Motorola, Intel, IBM, ...). Al di là delle semplici correzioni di bug (e gli sviluppatori di Lisp hanno trovato diversi bug nelle CPU) non c'era un adattamento speciale del set di istruzioni di questi computer mentre stavano eseguendo il Lisp. Alcuni di essi potrebbero anche essere in grado di avere un microcodice caricabile, ma non è stato usato per il Lisp.
Le CPU Lisp microcodificate permettevano insiemi di istruzioni molto semplici e quindi un compilatore Lisp relativamente semplice. Inoltre alcune varianti hanno permesso di compilare semplici funzioni Lisp in microcodice. Il MIT utilizzava una CPU personalizzata, perché desiderava un ampio spazio di indirizzamento per codice Lisp, compatto e un'esecuzione rapida per le prime workstation personali. Una combinazione che non era disponibile sul mercato in quel momento (anni '70 / primi anni '80). Si noti che queste CPU sono apparse prima del Common Lisp (che è stato pubblicato per la prima volta nel 1984). Nel tempo i produttori hanno spostato le CPU attraverso diverse tecnologie e diverse versioni di Lisp. Così hanno aggiunto il supporto per la programmazione orientata agli oggetti (Flavors, CLOS) e la programmazione logica ai set di istruzioni. Non è insolito che una nuova versione di Lisp abbia anche un microcodice migliorato con istruzioni nuove / migliorate. Successivamente TI e Symbolics hanno sviluppato microprocessori - CPU single-chip per Lisp. Almeno il chip Symbolics non è stato progettato per supportare il microcodice caricabile .
Sommario:
macchine con microcodice sono computer con CPU bit-slice o cpu Lisp speciale con set di istruzioni speciali per Lisp.
macchine hardware di serie sono computer con CPU commerciali tipiche, in quanto sono stati progettati dal produttore, senza un supporto Lisp speciale. Tra le ultime macchine hardware di serie, solo l'architettura SPARC contiene una minima quantità di supporto per Lisp (e Smalltalk).