Jump to content

Embeddable Common Lisp: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Update release information
 
(38 intermediate revisions by 24 users not shown)
Line 1: Line 1:
{{No sources|date=July 2019}}
{{ Infobox Software
{{Infobox programming language
| name = Embeddable Common Lisp
| name = Embeddable Common Lisp
| logo =
| logo =
| screenshot =
| screenshot =
| caption =
| paradigms = [[Multi-paradigm programming language|Multi-paradigm]]: [[Procedural programming|procedural]], [[Functional programming|functional]], [[Object-oriented programming|object-oriented]], [[Metaprogramming|meta]], [[Reflective programming|reflective]], [[Generic programming|generic]]
| developer = Juanjo Garcia-Ripoll
| family = [[Lisp (programming language)|Lisp]]
| latest release version = 11.1.1
| designer = Giuseppe Attardi
| latest release date = {{release date|2011|01|16}}
| 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 version =
| latest preview date =
| latest preview date =
| typing = [[Type system#DYNAMIC|Dynamic]], [[Strong and weak typing|strong]]
| operating system = [[Unix-like]], [[Microsoft Windows|Windows]]
| scope =
| programming language =
| programming language = [[C (programming language)|C]], [[Common Lisp]]
| genre = [[Compiler]] and [[Run-time system|runtime]]
| platform = [[ARM architecture|ARM]], [[x86]]
| license = [[GNU Lesser Public License|LGPL]]
| operating system = [[Unix-like]], [[Android (operating system)|Android]], [[Microsoft Windows|Windows]]
| website = http://ecls.sourceforge.net/
| license = [[GNU Lesser Public License|LGPL]] 2.1+
| file ext =
| file format = <!-- or: | file formats = -->
| website = {{URL|https://ecl.common-lisp.dev}}
| implementations =
| dialects =
| influenced by = [[Lisp (programming language)|Lisp]], [[Common Lisp]], [[C (programming language)|C]]
| influenced =
}}
}}
'''Embeddable Common Lisp (ECL)''' is a [[LGPL]] [[Common Lisp]] implementation aimed at producing a small-footprint Lisp system that can be embedded into existing [[C (programming language)|C]]-based applications. It is able to create stand-alone [[Executable and Linkable Format|ELF]] executables from Common Lisp code and runs on most platforms that support a C [[compiler]].
'''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 (programming language)|C]]. It creates OS-native [[executable]]s 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+.


Because it compiles Common Lisp to C, it also features a powerful [[Foreign_function_interface|FFI]] system, including support for inline C to be used or generated from Common Lisp. Inline C FFI combined with Common Lisp macros and custom SETF expansions yield an impressive compile-time preprocessor.
It includes a [[runtime system]], and two [[compiler]]s, a [[bytecode]] interpreter allowing applications to be deployed where no C compiler is expected, and an [[Intermediate representation#Intermediate language|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 <code>setf</code> expansions and compiler-macros, result in a custom compile-time C [[preprocessor]].

==References==
{{reflist}}


== External links ==
== 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.
* [http://ecls.sourceforge.net/ ECL Home Page]
* {{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]]
[[Category:Common Lisp implementations]]
[[Category:Common Lisp software]]
[[Category:Common Lisp (programming language) software]]
[[Category:Free compilers and interpreters]]
[[Category:Free and open source compilers]]

[[ru:Embeddable Common Lisp]]

Latest revision as of 23:23, 30 October 2024

Embeddable Common Lisp
ParadigmsMulti-paradigm: procedural, functional, object-oriented, meta, reflective, generic
FamilyLisp
Designed byGiuseppe Attardi
DevelopersDaniel Kochmański, Marius Gerbershagen
First appeared1 January 1995; 29 years ago (1995-01-01)
Stable release
23.9.9[1] Edit this on Wikidata / 9 September 2023
Typing disciplineDynamic, strong
Implementation languageC, Common Lisp
PlatformARM, x86
OSUnix-like, Android, Windows
LicenseLGPL 2.1+
Websiteecl.common-lisp.dev
Influenced by
Lisp, Common Lisp, C

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

[edit]
  1. ^ "ECL 23.9.9 release".
[edit]