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 =

| typing = Dynamic, strong

| scope =

| programming language = C, Common Lisp

| platform = ARM, x86

| 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}}