"Konovalov, Vadim" Vadim.Konovalov@emc.com writes:
However - ECL has closer connection to C, which will make your life easier.
I don't agree. ECL architecture with respect to C is very complex.
Also ECL includes:
- an interpreter (IIRC),
- a byte-code compiler with a byte-code virtual machine, and
- an optional compiler that translates lisp to C, and then forks an external process running gcc to compile the C to native code in a dynamically linked library, which is then dynamically loaded into the lisp image.
This later part, which is what is refered to when people say it has a "closer connection to C" is the most complex, and the most strongly dependent on a unix system (perhaps just a POSIX system, but I wouldn't try to strain it too much).
In any case the problem would be to run a program (ecl) without an OS. This programs relies on OS services (file systems, process management (signals, fork/exec), network stacks, device drivers (terminal) and external programs (gcc, ld.so)) either thru the POSIX layer or with direct syscalls (libc and other libraries). If you want to run it on the bare hardware, then you will have to provide those libraries implemented on the bare hardware, instead of on a unix kernel.