Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why isn't there a Common Lisp implementation written in Common Lisp?

Recently, I started to learn cuis-smalltalk, and no I realize how profound and deep OOP with Smalltalk is compared to CLOS (I'm using Ruby). I learned the great idea of that Smalltalk is a reflective system implemented in itself. I found that Ruby has Rubinius, but when I looked for a Common Lisp implementation written in Lisp, I could not find anything similar. There doesn't seem to be a CL distribution written in CL.

In Common Lisp with the CLOS and slime, you can do all the things that can do with the Smalltalk Development environment.

But I have the question if a Common Lisp implementation of itself could be useful for Common Lisp? Or will not add anything special to language because homoiconicity, macros and MOP can handle it all. Are there technical limitations of why it could not be done?

like image 911
anquegi Avatar asked Aug 10 '18 13:08

anquegi


1 Answers

Example: SBCL

  • Machine code compiler in Lisp
  • CLOS in Lisp
  • Interpreter in Lisp
  • Implementation in Lisp

Mostly only large parts of the runtime are implemented in C.

Example: Clozure Common Lisp

  • Machine code compiler in Lisp
  • Implementation in Lisp: level 0, level 1, lib, library

The kernel is written in assembler and C.

Example: Mezzano

Mezzano is an OS fully written in its own Common Lisp. It runs on the metal -> means one can boot into it as an operating system.

Neither Smalltalks are completely written in Smalltalk, nor is Rubinius completely written in Ruby

This is no different from Smalltalk implementations like Squeak or Pharo, where most parts are written in Smalltalk, some parts of the Virtual Machine are generated from Smalltalk to C, and some parts of the Virtual Machine are written in C.

Parts of Rubinius are written in C++.

like image 175
Rainer Joswig Avatar answered Sep 21 '22 22:09

Rainer Joswig