|
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard X3.226-1994. Developed to standardize the divergent variants of Lisp which predated it, it is not an implementation but rather a language specification. Several implementations of the Common Lisp standard are available, including commercial products and open source software. Lisp is a family of computer programming languages with a long history and a distinctive fully-parenthesized syntax. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
The American National Standards Institute or ANSI (pronounced an-see) is a nonprofit organization that oversees the development of standards for products, services, processes and systems in the United States. ...
Specification may refer to several different concepts: Specification (standards) refers to specific standards Specificatio - a legal concept Specification (regression) refers to the practice of translating theory into a regression model Category: ...
...
Common Lisp is a multiparadigm, general-purpose programming language that: This does not cite any references or sources. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
- Supports a combination of imperative, functional and object-oriented programming paradigms.
- Is a dynamic programming language that facilitates rapid development, with iterative compilation into efficient run-time programs.
- Includes CLOS, an object system that supports multimethods and method combinations.
- Is extensible through standard features such as Lisp macros (compile-time code rearrangement accomplished by the program itself) and reader macros (extension of syntax to give special meaning to characters reserved for users for this purpose).
This does not adequately cite its references or sources. ...
Functional programming is a programming paradigm that conceives computation as the evaluation of mathematical functions and avoids state and mutable data. ...
Object-oriented programming (OOP) is a computer programming paradigm in which a software system is modeled as a set of objects that interact with each other. ...
Dynamic programming language is a term used broadly in computer science to describe a class of high level programming languages that execute at runtime many common behaviors that other languages might perform during compilation, if at all. ...
A diagram of the operation of a typical multi-language, multi-target compiler. ...
The Common Lisp Object System (CLOS) is the facility for object-oriented programming which is part of Common Lisp (CL). ...
In computer science, object-oriented programming, OOP for short, is a computer programming paradigm. ...
This article or section should be merged with Multiple dispatch Developers of computer software typically organize source code into named blocks called variously subroutines, procedures, subprograms, functions, or methods. ...
Syntax Common Lisp is a dialect of Lisp; it uses S-expressions to denote both code and data structure. Function and macro calls are written as lists, with the name of the function first, as in these examples: An S-expression (S stands for symbolic) is a convention for representing data or an expression in a computer program in a text form. ...
(+ 2 2) ; adds 2 and 2, yielding 4. (setf p 3.1415) ; sets the variable p equal to 3.1415 ; Define a function that squares a number: (defun square (x) (* x x)) ; Execute the function: (square 3) ; Returns 9 ; construction - variables existing only in 'let' block, so you can easily give any new ; values to any existing variables without changing them. Old values are restored after ; the end of the block. (let ((a 6) (b 4)) (+ a b)) ; returns 10 Data types Common Lisp has a plethora of data types, more than many other languages.
Scalar types Number types include integers, ratios, floating-point numbers, and complex numbers. Common Lisp uses bignums to represent numerical values of arbitrary size and precision. The ratio type represents fractions exactly, a facility not available in many languages. Common Lisp automatically coerces numeric values among these types as appropriate. The integers are commonly denoted by the above symbol. ...
A ratio is a quantity that denotes the proportional amount or magnitude of one quantity relative to another. ...
A floating-point number is a digital representation for a number in a certain subset of the rational numbers, and is often used to approximate an arbitrary real number on a computer. ...
In mathematics, a complex number is a number of the form where a and b are real numbers, and i is the imaginary unit, with the property i 2 = â1. ...
A bignum package in a computer or program allows internal representation of very large integers, rational numbers, decimal numbers, or floating-point numbers (limitted only by available memory), and provides a set of arithmetic operations on such numbers. ...
The Common Lisp character type is not limited to ASCII characters -- unsurprising, as Lisp predates ASCII. Some modern implementations allow Unicode characters. [1] Image:ASCII fullsvg There are 95 printable ASCII characters, numbered 32 to 126. ...
Unicode is an industry standard allowing computers to consistently represent and manipulate text expressed in any of the worlds writing systems. ...
The symbol type is common to Lisp languages, but largely unknown outside them. A symbol is a unique, named data object with several slots. Of these, value cell and function cell are the most important. Symbols in Lisp are often used similarly to identifiers in other languages: to hold value of a variable; however there are many other uses. Normally, when a symbol is evaluated, its value is returned. Some symbols evaluate to themselves, for example all symbols in keyword package are self-evaluating. Boolean values in Common Lisp are represented by the self-evaluating symbols T and NIL.
Data structures Sequence types in Common Lisp include lists, vectors, bit-vectors, and strings. There are many operations which can work on any sequence type. As in any other Lisp, lists in Common Lisp are composed of conses, sometimes called cons cells or pairs. A cons is a data structure with two slots, called its car and cdr. A list is a linked chain of conses. Each cons's car refers to a member of the list (possibly another list). Each cons's cdr refers to the next cons -- except for the last cons, whose cdr refers to the nil value. Conses can also easily be used to implement trees and other complex data structures; though it is usually advised to use structure or class instances instead. Common Lisp supports multidimensional arrays, and can dynamically resize arrays if required. Multidimensional arrays can be used for matrix mathematics. A vector is a one-dimensional array. Arrays can carry any type as members (even mixed types in the same array) or can be specialized to contain a specific type of members, as in a vector of integers. Many implementations can optimize array functions when the array used is type-specialized. Two type-specialized array types are standard: a string is a vector of characters, while a bit-vector is a vector of bits. This article is about the unit of information. ...
Hash tables store associations between data objects. Any object may be used as key or value. Hash tables, like arrays, are automatically resized as needed. In computer science, a hash table is a data structure that speeds up searching for information by a particular aspect of that information, called a key. ...
Packages are collections of symbols, used chiefly to separate the parts of a program into namespaces. A package may export some symbols, marking them as part of a public interface. A namespace is a context in which a group of one or more identifiers might exist. ...
Structures, similar in use to C structs and Pascal records, represent arbitrary complex data structures with any number and type of fields (called slots). C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...
Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ...
Class instances are similar to structures, but created by the object system, CLOS. The Common Lisp Object System (CLOS) is the facility for object-oriented programming which is part of Common Lisp (CL). ...
Functions Common Lisp supports first-class functions. For instance, it is possible to write functions that take other functions as arguments or return functions as well. This makes it possible to describe very general operations. In computer science, a programming language is said to support first-class functions if it treats functions as first-class objects. ...
The Common Lisp library relies heavily on such higher-order functions. For example, the sort function takes a relational operator as an argument. This can be used not only to sort any type of data, but also to sort data structures according to a key. In computer programming languages, a relational operator symbol or a relational operator name is a lexical or syntactic unit that denotes a relation, for example, equality or greater than, among two or more domains, the members of which are typically denoted by further expressions. ...
(sort (list 5 2 6 3 1 4) #'>) ; Sorts the list using the > function as the relational operator. ; Returns (6 5 4 3 2 1). (sort (list '(9 a) '(3 b) '(4 c)) (lambda (x y) (< (car x) (car y)))) ; Sorts the list according to the first element (car) of each sub-list. ; Returns ((3 b) (4 c) (9 a)). The evaluation model for functions is very simple. When the evaluator encounters a form (F A1 A2...) then it is to assume that the symbol named F is one of the following: - A special operator (easily checked against a fixed list)
- A macro operator (must have been defined previously)
- The name of a function (default), which may either be a symbol, or a sub-form beginning with the symbol
lambda. If F is the name of a function, then the arguments A1, A2, ..., An are evaluated in left-to-right order, and the function is found and invoked with those values supplied as parameters.
Defining functions The macro defun defines functions. A function definition gives the name of the function, the names of any arguments, and a function body: (defun square (x) (* x x)) Function definitions may include declarations, which provide hints to the compiler about optimization settings or the data types of arguments. They may also include documentation strings (docstrings), which the Lisp system may use to provide interactive documentation: (defun square (x) (declare (number x) (optimize (speed 3) (debug 0) (safety 1))) "Calculates the square of the number x." (* x x)) Anonymous functions are defined using the lambda expressions. Lisp programming style frequently uses higher-order functions for which it is useful to provide anonymous functions as arguments. There are a number of other operators related to the definition and manipulation of functions. For instance, a function may be recompiled with the compile operator. (Some Lisp systems run functions in an interpreter by default unless instructed to compile; others compile every entered function on the fly.)
The function namespace The namespace for function names is separate from the namespace for data variables. This is a key difference between Common Lisp and Scheme. Operators which define names in the function namespace include defun, flet, and labels. Scheme is a multi-paradigm programming language. ...
To pass a function by name as an argument to another function, one must use the function special operator, commonly abbreviated as #'. The first sort example above refers to the function named by the symbol > in the function namespace, with the code #'>. Scheme's evaluation model is simpler: there is only one namespace, and all positions in the form are evaluated (in any order) -- not just the arguments. Code written in one dialect is therefore sometimes confusing to programmers more experienced in the other. For instance, many CL programmers like to use descriptive variable names such as list or string which could cause problems in Scheme as they would locally shadow function names. Scheme is a multi-paradigm programming language. ...
Whether a separate namespace for functions is an advantage is a source of contention in the Lisp community. It is usually referred to as the Lisp-1 vs. Lisp-2 debate. These names were coined in a 1988 paper by Richard P. Gabriel and Kent Pitman, which extensively compares the two approaches. [2] Richard P. Gabriel (b. ...
Kent M. Pitman is the President of HyperMeta, Inc. ...
Other types Other data types in Common Lisp include: - Pathnames represent files and directories in the filesystem. The Common Lisp pathname facility is more general than most operating systems' file naming conventions, making Lisp programs' access to files broadly portable across diverse systems.
- Input and output streams represent sources and sinks of binary or textual data, such as the terminal or open files.
- Common Lisp has a built-in pseudo-random number generator (PRNG). Random state objects represent reusable sources of pseudo-random numbers, allowing the user to seed the PRNG or cause it to replay a sequence.
- Conditions are a type used to represent errors, exceptions, and other "interesting" events to which a program may respond.
- Classes are first-class objects, and are themselves instances of classes called metaclasses.
See Filing system for this term as it is used in libraries and offices In computing, a file system is a method for storing and organizing computer files and the data they contain to make it easy to find and access them. ...
A pseudorandom number generator (PRNG) is an algorithm that generates a sequence of numbers, the elements of which are approximately independent of each other. ...
In object-oriented programming, a metaclass is a class whose instances are classes. ...
Macros A macro in Lisp superficially resembles a function in usage. However, rather than representing an expression which is evaluated, it represents a transformation of the program source code. A macro in computer science is an abstraction, that defines how a certain input pattern is replaced by an output pattern according to a defined set of rules. ...
Macros allow Lisp programmers to create new syntactic forms in the language. For instance, this macro provides the until loop form, which may be familiar from languages such as Perl: Wikibooks has a book on the topic of Perl Programming Perl is a dynamic programming language created by Larry Wall and first released in 1987. ...
(defmacro until (test &body body) `(do () (,test) ,@body)) ;; example (until (= (random 10) 0) (write-line "Hello")) All macros must be expanded before the source code containing them can be evaluated or compiled normally. Macros can be considered functions that accept and return abstract syntax trees (Lisp S-expressions). These functions are invoked before the evaluator or compiler to produce the final source code. Macros are written in normal Common Lisp, and may use any Common Lisp (or third-party) operator available. The backquote notation used above is provided by Common Lisp specifically to simplify the common case of substitution into a code template.
Variable capture and shadowing Common Lisp macros are capable of variable capture, where symbols in the macro-expansion body coincide with those in the calling context, allowing the programmer to create macros wherein various symbols have special meaning. Variable capture can introduce unexpected and unusual errors. Some Lisp systems, such as Scheme, avoid variable capture by using macro syntax — so-called "hygienic macros" — that does not allow it. In Common Lisp, one can usually avoid unwanted capture by using gensyms: guaranteed-unique symbols which can be used in a macro-expansion without threat of capture. Another issue is the inadvertent shadowing of operators used in a macroexpansion. For example, consider the following (incorrect) code: (macrolet ((do (...) ... something else ...)) (until (= (random 10) 0) (write-line "Hello"))) The UNTIL macro will expand into a form which calls DO which is intended to refer to the built-in macro DO. However, in this context, DO may have a completely different meaning. Common Lisp ameliorates the problem of operator shadowing by forbidding the redefinition of built-in operators, such as DO in this example. Moreover, users may separate their own code into packages. Built-in symbols are found in the COMMON-LISP package, which will not be shadowed by a symbol in a user package.
Common Lisp Object System -
Common Lisp includes a toolkit for object-oriented programming, the Common Lisp Object System or CLOS, which is one of the most powerful object systems available in any language. Originally proposed as an add-on, CLOS was adopted as part of the ANSI standard for Common Lisp. CLOS is a dynamic object system, and differs radically from the OOP facilities found in static languages such as C++ or Java. The Common Lisp Object System (CLOS) is the facility for object-oriented programming which is part of Common Lisp (CL). ...
Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. ...
The Common Lisp Object System (CLOS) is the facility for object-oriented programming which is part of Common Lisp (CL). ...
Dynamic programming language is a term used broadly in computer science to describe a class of high level programming languages that execute at runtime many common behaviors that other languages might perform during compilation, if at all. ...
C++ (pronounced see plus plus, IPA: ) is a general-purpose programming language with high-level and low-level capabilities. ...
Java is a programming language originally developed by Sun Microsystems and released in 1995. ...
Comparison with other Lisps Common Lisp is most frequently compared with, and contrasted to, Scheme—if only because they are the two most popular Lisp dialects. Scheme predates CL, and comes not only from the same Lisp tradition but from some of the same engineers—Guy L. Steele, with whom Gerald Jay Sussman designed Scheme, chaired the standards committee for Common Lisp. Scheme is a multi-paradigm programming language. ...
Guy Lewis Steele, Jr. ...
// Gerald Jay Sussman is the Panasonic Professor of Electrical Engineering at the Massachusetts Institute of Technology (MIT). ...
Common Lisp is a general-purpose programming language, in contrast to Lisp variants such as Emacs Lisp and AutoLISP which are embedded extension languages in particular products. Unlike many earlier Lisps, Common Lisp (like Scheme) uses lexical variable scope. Emacs is a class of text editors, possessing an extensive set of features, that are popular with computer programmers and other technically proficient computer users. ...
Emacs Lisp is a dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors (which we will collectively refer to as Emacs in this article. ...
AutoLISP is a programming language, a dialect of Lisp included with the CAD program AutoCAD to allow the user to add functionality to the software. ...
Scheme is a multi-paradigm programming language. ...
In computer programming, scope is an enclosing context where values and expressions are associated. ...
Most of the Lisp systems whose designs contributed to Common Lisp—such as ZetaLisp and Franz Lisp—used dynamically scoped variables in their interpreters and lexically scoped variables in their compilers. Scheme introduced the sole use of lexically-scoped variables to Lisp; an inspiration from ALGOL 68 which was widely recognized as a good idea. CL supports dynamically-scoped variables as well, but they must be explicitly declared as "special". There are no differences in scoping between ANSI CL interpreters and compilers. ZetaLisp was the name Symbolics gave to their dialect of Lisp on their Lisp Machine models, to distinguish it from the MIT version. ...
In computer programming, scope is an enclosing context where values and expressions are associated. ...
ALGOL 68 (short for ALGOrithmic Language 1968) is an imperative computer programming language that was conceived as a successor to the ALGOL 60 programming language, designed with the goal of a much wider scope of application and a more rigorously defined syntax and semantics. ...
Common Lisp is sometimes termed a Lisp-2 and Scheme a Lisp-1, referring to CL's use of separate namespaces for functions and variables. (In fact, CL has many namespaces, such as those for go tags, block names, and loop keywords.) There is a long-standing controversy between CL and Scheme advocates over the tradeoffs involved in multiple namespaces. In Scheme, it is (broadly) necessary to avoid giving variables names which clash with functions; Scheme functions frequently have arguments named lis, lst, or lyst so as not to conflict with the system function list. However, in CL it is necessary to explicitly refer to the function namespace when passing a function as an argument -- which is also a common occurrence, as in the sort example above. CL also differs from Scheme in its handling of boolean values. Scheme uses the special values #t and #f to represent truth and falsity. CL follows the older Lisp convention of using the symbols T and NIL, with NIL standing also for the empty list. In CL, any non-NIL value is treated as true by conditionals such as if as are non-#f values in Scheme. This allows some operators to serve both as predicates (answering a boolean-valued question) and as returning a useful value for further computation. Lastly, the Scheme standards documents require tail-call optimization, which the CL standard does not. Most CL implementations do offer tail-call optimization, although often only when the programmer uses an optimization directive. Nonetheless, common CL coding style does not favor the ubiquitous use of recursion that Scheme style prefers -- what a Scheme programmer would express with tail recursion, a CL user would usually express with an iterative expression in do, dolist, loop, or (more recently) with the iterate package. In computer science, tail recursion is a special case of recursion that can be easily transformed into an iteration. ...
Implementations Common Lisp is defined by a specification (like Ada and C) rather than by a single implementation (like Perl). There are many implementations, and the standard spells out areas in which they may validly differ. Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull during 1977â1983. ...
C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...
Wikibooks has a book on the topic of Perl Programming Perl is a dynamic programming language created by Larry Wall and first released in 1987. ...
In addition, implementations tend to come with library packages, which provide functionality not covered in the standard. Free Software libraries have been created to support such features in a portable way, most notably Common-Lisp.net and the Common Lisp Open Code Collection project. Clockwise from top: The logo of the GNU Project (the GNU head), the Linux kernel mascot Tux the Penguin, and the FreeBSD daemon Free software is a term coined by Richard Stallman and the Free Software Foundation[1] to refer to software that can be used, studied, and modified without...
Common Lisp has been designed to be implemented by incremental compilers. Standard declarations to optimize compilation (such as function inlining) are proposed in the language specification. Most Common Lisp implementations compile functions to native machine code. Others compile to bytecode, which reduces speed but eases binary-code portability. The misconception that Lisp is a purely-interpreted language is most likely due to the fact that Common Lisp environments provide an interactive prompt and that functions are compiled one-by-one, in an incremental way. A compiler is a computer program that translates a computer program written in one computer language (called the source language) into an equivalent program written in another computer language (called the output or the target language). ...
Machine code or machine language is a system of instructions and data directly understandable by a computers central processing unit. ...
Bytecode is a binary representation of an executable program designed to be executed by a virtual machine rather than by dedicated hardware. ...
Some Unix-based implementations, such as CLISP, can be used as script interpreters; that is, invoked by the system transparently in the way that a Perl or Unix shell interpreter is. Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ...
CLISP is a Common Lisp implementation. ...
Wikibooks has a book on the topic of Perl Programming Perl is a dynamic programming language created by Larry Wall and first released in 1987. ...
Screenshot of a sample Bash session, taken on Gentoo Linux. ...
List of implementations Freely redistributable implementations include: - CMUCL, originally from Carnegie Mellon University, now maintained as Free Software by a group of volunteers. CMUCL uses a fast native-code compiler. It is available on Linux and BSD for Intel x86; Linux for Alpha; and Solaris, IRIX, and HP-UX on their native platforms.
- Steel Bank Common Lisp (SBCL), a branch from CMUCL. "Broadly speaking, SBCL is distinguished from CMU CL by a greater emphasis on maintainability." [3] SBCL runs on the platforms CMUCL does, except HP/UX; in addition, it runs on Linux for PowerPC, SPARC, and MIPS, and on Mac OS X. SBCL does not use an interpreter; all expressions are compiled to native code. Experimental Windows support.
- CLISP, a bytecode-compiling implementation, portable and runs on a number of Unix and Unix-like systems (including Mac OS X), as well as Microsoft Windows and several other systems.
- Franz Lisp developed for BSD UNIX. Derived from maclisp. Originally ran on DEC VAX-11 and DEC PDP-11. Name is a pun on that of composer Franz Liszt.
- GNU Common Lisp (GCL), the GNU Project's Lisp compiler. Not yet fully ANSI-compliant, GCL is however the implementation of choice for several large projects including the mathematical tools Maxima, AXIOM and ACL2. GCL runs under GNU/Linux on eleven different architectures, and also under Windows, Solaris, and FreeBSD.
- Embeddable Common Lisp (ECL), designed to be embedded in C programs.
- OpenMCL [4], a free software / open source branch of Macintosh Common Lisp. As the name implies, OpenMCL was originally native to the Macintosh; it now runs on Mac OS X, Darwin, and GNU/Linux for PowerPC and Intel x86-64.
- Movitz implements a Lisp environment for x86 computers without relying on any underlying OS.
- The Poplog system implements a version of CL, with POP-11, and optionally Prolog, and Standard ML (SML), allowing mixed language programming. For all, the implementation language is POP-11, which is compiled incrementally. It also has an integrated Emacs-like editor that communicates with the compiler.
- Java-oriented
Commercial implementations include: CMUCL is a free Common Lisp implementation, originally developed at Carnegie Mellon University. ...
Carnegie Mellon University is a private research university in Pittsburgh, Pennsylvania, United States. ...
Clockwise from top: The logo of the GNU Project (the GNU head), the Linux kernel mascot Tux the Penguin, and the FreeBSD daemon Free software is a term coined by Richard Stallman and the Free Software Foundation[1] to refer to software that can be used, studied, and modified without...
Linux (IPA pronunciation: ) is a Unix-like computer operating system. ...
Berkeley Software Distribution (BSD, sometimes called Berkeley Unix) is the Unix derivative distributed by the University of California, Berkeley, starting in the 1970s. ...
Steel Bank Common Lisp (SBCL) is an Free implementation of Common Lisp. ...
Mac OS X (IPA: ) is a line of graphical operating systems developed, marketed, and sold by Apple Inc. ...
CLISP is a Common Lisp implementation. ...
Mac OS X (IPA: ) is a line of graphical operating systems developed, marketed, and sold by Apple Inc. ...
Franz Lisp, written at UC Berkeley by the students of Professor Richard J. Fateman, was a Lisp system based larged on Maclisp, but written specifically to be a host for running Macsyma on a Digital Equipment Corp (DEC) VAX. It appeared on the scene at the end of 1978 shortly...
BSD redirects here; for other uses see BSD (disambiguation). ...
Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ...
MacLisp is a dialect of the Lisp programming language. ...
DEC, dec or Dec may refer to: December - a month of the year in the Gregorian Calendar Department of Environment and Conservation Digital Equipment Corporation - a computer and technology company, now part of HP Declination - a term from astronomy Diethylcarbamazine - a drug commonly used to treat infections by filarial parasites...
VAX is a 32-bit computing architecture that supports an orthogonal instruction set (machine language) and virtual addressing (i. ...
DEC, dec or Dec may refer to: December - a month of the year in the Gregorian Calendar Department of Environment and Conservation Digital Equipment Corporation - a computer and technology company, now part of HP Declination - a term from astronomy Diethylcarbamazine - a drug commonly used to treat infections by filarial parasites...
The PDP-11 was a 16-bit minicomputer sold by Digital Equipment Corp. ...
GNU Common Lisp (GCL) is the GNU Projects Common Lisp compiler, and an evolutionary development of Kyoto Common Lisp. ...
GNU (pronounced ) is a computer operating system composed entirely of free software. ...
For other uses of Maxima, see Maxima (disambiguation). ...
FreeBSD is a Unix-like free operating system descended from AT&T UNIX via the Berkeley Software Distribution (BSD) branch through the 386BSD and 4. ...
ECL is a free Common Lisp implementation aimed at producing a small-footprint Lisp system that can be embedded into existing C-based applications. ...
C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...
Clockwise from top: The logo of the GNU Project (the GNU head), the Linux kernel mascot Tux the Penguin, and the FreeBSD daemon Free software is a term coined by Richard Stallman and the Free Software Foundation[1] to refer to software that can be used, studied, and modified without...
Open source software is computer software whose source code is available under a license (or arrangement such as the public domain) that permits users to study, change, and improve the software, and to redistribute it in modified or unmodified form. ...
Mac OS X (IPA: ) is a line of graphical operating systems developed, marketed, and sold by Apple Inc. ...
Movitz is an implementation of the Common Lisp programming language for x86 computers. ...
x86 or 80x86 is the generic name of a microprocessor architecture first developed and manufactured by Intel. ...
Poplog is a powerful multi-language reflective programming environment, originally created in the UK for use at the Universities of Birmingham and Sussex. ...
POP-11 is a powerful reflective programming language developed as part of the Poplog programming environment by the Universities of Birmingham and Sussex. ...
Prolog is a logic programming language. ...
Standard ML (SML) is a general-purpose, modular, functional programming language with compile-time type checking and type inference. ...
Emacs is a class of text editors, possessing an extensive set of features, that are popular with computer programmers and other technically proficient computer users. ...
Java is a programming language originally developed by Sun Microsystems and released in 1995. ...
Armed Bear Common Lisp is an implementation of Common Lisp that runs on the Java Virtual Machine. ...
A Java Virtual Machine (JVM) is a set of computer software programs and data structures which implements a specific virtual machine model. ...
Java bytecode is the form of instructions that the Java virtual machine executes. ...
Allegro Common Lisp is a variant of the Common Lisp programming language developed by Franz Inc. ...
LispWorks is a commercial implementation and IDE for the Common Lisp programming language. ...
Applications Common Lisp is used in many successful commercial applications, the most famous (no doubt due to Paul Graham's promotion) was the Yahoo! Store web-commerce site, which later was rewritten in C++ and Perl. [1] Other notable examples include: Paul Graham For Paul Graham the photographer, see Paul Graham (photographer). ...
Yahoo! Inc. ...
- BioBike is a bioinformatics workflow development environment implemented entirely in Common Lisp. Its distinguishing feature is through-the-browser programmability.
- Genworks International's General-purpose Declarative Language (GDL), a development tool for creating web-based engineering, design, and business applications.
- Igor Engraver: a 1st-Class Music notation and engraving program written in Common Lisp.
- Jak and Daxter video games for Playstation2
- Knowledge Technologies International's ICAD mechanical design software.
- Mirai, Izware LLC's fully integrated 2d/3d computer graphics content creation suite that features a polygonal modeler, an advanced IK/FK and non-linear animation system (later popularized by such products as Sega's Animanium and Softimage XSI, respectively), and advanced 2d and 3d painting. It was used in major motion pictures (most famously in New Line Cinema's The Lord of the Rings), video games and military simulations.
- Orbitz, a major travel booking site.
- Piano, a package for commercial aircraft preliminary design and competitor evaluation.
- Xanalys Corp.'s line of investigation software, used by police, security and fraud prevention services worldwide.
There also exist successful open-source applications written in Common Lisp, such as: An editor has expressed a concern that the subject of the article does not satisfy the notability guideline or one of the following guidelines for inclusion on Wikipedia: Biographies, Books, Companies, Fiction, Music, Neologisms, Numbers, Web content, or several proposals for new guidelines. ...
Jak and Daxter is a video game franchise originally developed by Naughty Dog for the PlayStation 2 that is named after its own protagonists. ...
ICAD (Corporate history: ICAD, Inc. ...
A software package sold by SEGA (who makes video games), used for smarter Inverse Kinematic (IK) animation. ...
The Lord of the Rings is an epic high fantasy novel written by the English academic J. R. R. Tolkien. ...
Orbitz, Inc. ...
As well, Common Lisp is used by many government and non-profit institutions. Examples of its use in NASA include: ACL2 is a mechanical theorem prover that supports automated reasoning in inductive logic theories. ...
Automated theorem proving (currently the most important subfield of automated reasoning) is the proving of mathematical theorems by a computer program. ...
Applicative refers to a language paradigm for classifying computer programming languages. ...
A Blackboard System is composed of an area of shared memory, referred to as the blackboard, that contains a problem to be solved and a number of different processes, referred to as knowledge sources, that can access and modify the blackboard. ...
For other uses of Maxima, see Maxima (disambiguation). ...
A computer algebra system (CAS) is a software program that facilitates symbolic mathematics. ...
StumpWM is a tiling X window manager implemented in Common Lisp, using the CLX library. ...
This article is about the American space agency. ...
The Hubble Space Telescope (HST) is a telescope in orbit around the Earth, named after astronomer Edwin Hubble. ...
See also Common Lisp the Language is a book by Guy L. Steele about Common Lisp. ...
On Lisp: Advanced Techniques for Common Lisp is a book by Paul Graham on macro programming in Common Lisp. ...
Practical Common Lisp (ISBN 1590592395) is an introductory book on Common Lisp by Peter Seibel which in the third chapter implements a testing framework, then discusses most of Common Lisps language features and finally in the last chapters implements a spam filter and a SHOUTcast server. ...
References - ^ "In January 2003, Yahoo released a new version of the editor written in C++ and Perl. It's hard to say whether the program is no longer written in Lisp, though, because to translate this program into C++ they literally had to write a Lisp interpreter: the source files of all the page-generating templates are still, as far as I know, Lisp code." Paul Graham, Beating the Averages
Paul Graham For Paul Graham the photographer, see Paul Graham (photographer). ...
The Common Lisp HyperSpec is a hypertext version of the ANSI Common Lisp standard comprising approximately 15MB of data in 2300 files which contain approximately 105,000 hyperlinks. ...
External links Image File history File links Wikibooks-logo-en. ...
Wikibooks logo Wikibooks, previously called Wikimedia Free Textbook Project and Wikimedia-Textbooks, is a wiki for the creation of books. ...
Clockwise from top: The logo of the GNU Project (the GNU head), the Linux kernel mascot Tux the Penguin, and the FreeBSD daemon Free software is a term coined by Richard Stallman and the Free Software Foundation[1] to refer to software that can be used, studied, and modified without...
Tutorials |