Embeddable Common Lisp
{{No sources|date=July 2019}}
{{Infobox programming language
| name = Embeddable Common Lisp
| logo =
| screenshot =
| paradigms = Multi-paradigm: procedural, functional, object-oriented, meta, reflective, generic
| family = Lisp
| designer = Giuseppe Attardi
| developers = Daniel Kochmański, Marius Gerbershagen
| released = {{Start date and age|1995|01|01|df=yes}}
| latest release version = {{wikidata|property|preferred|references|edit|P348}}
| latest release date = {{wikidata|qualifier|preferred|single|P348|P577}}
| latest preview version =
| latest preview date =
| scope =
| programming language = C, Common Lisp
| operating system = Unix-like, Android, Windows
| license = LGPL 2.1+
| file ext =
| file format =
| website = {{URL|https://ecl.common-lisp.dev}}
| implementations =
| dialects =
| influenced by = Lisp, Common Lisp, C
| influenced =
}}
Embeddable Common Lisp (ECL) is a small implementation of the ANSI Common Lisp programming language that can be used stand-alone or embedded in extant applications written in C. It creates OS-native executables and libraries (i.e. Executable and Linkable Format (ELF) files on unix) from Common Lisp code, and runs on most platforms that support a C compiler. The ECL runtime is a dynamically loadable library for use by applications. It is distributed as free software under a GNU Lesser Public License (LGPL) 2.1+.
It includes a runtime system, and two compilers, a bytecode interpreter allowing applications to be deployed where no C compiler is expected, and an intermediate language type, which compiles Common Lisp to C for a more efficient runtime. The latter also features a native foreign function interface (FFI), that supports inline C as part of Common Lisp. Inline C FFI combined with Common Lisp macros, custom Lisp setf
expansions and compiler-macros, result in a custom compile-time C preprocessor.
References
{{reflist}}
External links
- Giuseppe Attardi. [http://www.di.unipi.it/~attardi/Paper/LUV94.pdf "The Embeddable Common Lisp"], ACM Lisp Pointers 8(1), 1995, 30-41.
- {{Official website|https://ecl.common-lisp.dev}}
- [https://gitlab.com/embeddable-common-lisp/ecl Embeddable Common-Lisp] on GitLab
{{Common Lisp}}
Category:Common Lisp implementations