Misplaced Pages

Maclisp

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Maclisp (or MACLISP , sometimes styled MacLisp or MacLISP ) is a programming language , a dialect of the language Lisp . It originated at the Massachusetts Institute of Technology 's (MIT) Project MAC (from which it derived its prefix) in the late 1960s and was based on Lisp 1.5. Richard Greenblatt was the main developer of the original codebase for the PDP-6 ; Jon L. White was responsible for its later maintenance and development. The name Maclisp began being used in the early 1970s to distinguish it from other forks of PDP-6 Lisp, notably BBN Lisp .

#496503

68-491: Maclisp is a descendant of Lisp 1.5 . Maclisp departs from Lisp 1.5 by using a value cell to access and store the dynamic values of variables ; Lisp 1.5 used a linear search of an association list to determine a variable's value. The Maclisp variable evaluation is faster but has different variable semantics. Maclisp also employed reader macros to make more readable input and output , termed input/output (I/O). Instead of entering (QUOTE A) , one could enter 'A to get

136-489: A community of computer programmers and enthusiasts among others who drew their inspiration from former colleague John McCarthy. These founders envisioned the creation of a computer utility whose computational power would be as reliable as an electric utility. To this end, Corbató brought the first computer time-sharing system, Compatible Time-Sharing System (CTSS), with him from the MIT Computation Center, using

204-526: A decade earlier than Common Lisp, Scheme is a more minimalist design. It has a much smaller set of standard features but with certain implementation features (such as tail-call optimization and full continuations ) not specified in Common Lisp. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme. Scheme continues to evolve with

272-460: A family of programming languages with a long history and a distinctive, fully parenthesized prefix notation . Originally specified in the late 1950s, it is the second-oldest high-level programming language still in common use, after Fortran . Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Common Lisp , Scheme , Racket , and Clojure . Lisp

340-516: A five-year collaboration program with IFlytek , a company sanctioned the following year for allegedly using its technology for surveillance and human rights abuses in Xinjiang . In October 2019, MIT announced that it would review its partnerships with sanctioned firms such as iFlyTek and SenseTime . In April 2020, the agreement with iFlyTek was terminated. CSAIL moved from the School of Engineering to

408-407: A flexible and powerful form of dynamic dispatch . It has served as the template for many subsequent Lisp (including Scheme ) object systems, which are often implemented via a metaobject protocol , a reflective meta-circular design in which the object system is defined in terms of itself: Lisp was only the second language after Smalltalk (and is still one of the very few languages) to possess such

476-617: A great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts. Largely because of its resource requirements with respect to early computing hardware (including early microprocessors), Lisp did not become as popular outside of the AI community as Fortran and the ALGOL -descended C language. Because of its suitability to complex and dynamic applications, Lisp enjoyed some resurgence of popular interest in

544-460: A language others considered antiquated. New Lisp programmers often describe the language as an eye-opening experience and claim to be substantially more productive than in other languages. This increase in awareness may be contrasted to the " AI winter " and Lisp's brief gain in the mid-1990s. As of 2010 , there were eleven actively maintained Common Lisp implementations. The open source community has created new supporting infrastructure: CLiki

612-566: A list, so the expression evaluates to the list ( 1 2 foo ) . The "quote" before the foo in the preceding example is a "special operator" which returns its argument without evaluating it. Any unquoted expressions are recursively evaluated before the enclosing expression is evaluated. For example, evaluates to the list ( 1 2 ( 3 4 )) . The third argument is a list; lists can be nested. Arithmetic operators are treated similarly. The expression Project MAC Computer Science and Artificial Intelligence Laboratory ( CSAIL )

680-445: A metaobject system. Many years later, Alan Kay suggested that as a result of the confluence of these features, only Smalltalk and Lisp could be regarded as properly conceived object-oriented programming systems. Lisp introduced the concept of automatic garbage collection , in which the system walks the heap looking for unused memory. Progress in modern sophisticated garbage collection algorithms such as generational garbage collection

748-578: A paper in Communications of the ACM in April 1960, entitled "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I". He showed that with a few simple operators and a notation for anonymous functions borrowed from Church, one can build a Turing-complete language for algorithms. Information Processing Language was the first AI language, from 1955 or 1956, and already included many of

SECTION 10

#1732858496497

816-728: A series of standards (Revised Report on the Algorithmic Language Scheme) and a series of Scheme Requests for Implementation . Clojure is a dialect of Lisp that targets mainly the Java virtual machine , and the Common Language Runtime (CLR), the Python VM, the Ruby VM YARV , and compiling to JavaScript . It is designed to be a pragmatic general-purpose language. Clojure draws considerable influences from Haskell and places

884-510: A single language. The new language, Common Lisp , was somewhat compatible with the dialects it replaced (the book Common Lisp the Language notes the compatibility of various constructs). In 1994, ANSI published the Common Lisp standard, "ANSI X3.226-1994 Information Technology Programming Language Common Lisp". Since inception, Lisp was closely connected with the artificial intelligence research community, especially on PDP-10 systems. Lisp

952-412: A small, fixed number of data types : cons cell, atom (later termed symbol ), integer , and floating-point number . Later additions included: arrays , which were never first-class data types; arbitrary-precision integers (bignums); strings ; and tuples . All objects (except inums) were implemented as pointers , and their data type was determined by the block of memory into which it pointed, with

1020-698: A special case for small numbers (inums). Programs could be interpreted or compiled . Compiled behavior was the same as interpreted except that local variables were lexical by default in compiled code, unless declared SPECIAL, and no error checking was done for inline operations such as CAR and CDR. The Ncomplr compiler (mid-1970s) introduced fast numeric support to Lisp languages, generating machine code (instructions) for arithmetic rather than calling interpretive routines which dispatched on data type. This made Lisp arithmetic comparable in speed to Fortran for scalar operations (though Fortran array and loop implementation remained much faster). The original version

1088-437: A standard data structure—a quality much later dubbed " homoiconicity ". Thus, Lisp functions can be manipulated, altered or even created within a Lisp program without lower-level manipulations. This is generally considered one of the main advantages of the language with regard to its expressive power, and makes the language suitable for syntactic macros and meta-circular evaluation . A conditional using an if–then–else syntax

1156-573: A talented community of computer programmers were incorporated into Project MAC. They were interested principally in the problems of vision, mechanical motion and manipulation, and language, which they view as the keys to more intelligent machines. In the 1960s and 1970s the AI Group developed a time-sharing operating system called Incompatible Timesharing System (ITS) which ran on PDP-6 and later PDP-10 computers. The early Project MAC community included Fano, Minsky, Licklider, Fernando J. Corbató , and

1224-484: A variety of outreach programs that bridge the global digital divide . Its aim is to find and implement long-term, sustainable solutions which will increase the availability of educational technology and resources to domestic and international communities. These projects are run under the aegis of CSAIL and staffed by MIT volunteers who give training, install and donate computer setups in greater Boston, Massachusetts , Kenya , Native American Indian tribal reservations in

1292-427: A very strong emphasis on immutability. Clojure provides access to Java frameworks and libraries, with optional type hints and type inference , so that calls to Java can avoid reflection and enable fast primitive operations. Clojure is not designed to be backwards compatible with other Lisp dialects. Further, Lisp dialects are used as scripting languages in many applications, with the best-known being Emacs Lisp in

1360-715: Is a research institute at the Massachusetts Institute of Technology (MIT) formed by the 2003 merger of the Laboratory for Computer Science (LCS) and the Artificial Intelligence Laboratory (AI Lab). Housed within the Ray and Maria Stata Center , CSAIL is the largest on-campus laboratory as measured by research scope and membership. It is part of the Schwarzman College of Computing but is also overseen by

1428-808: Is a weekly news service, Weekly Lisp News . Common-lisp.net is a hosting site for open source Common Lisp projects. Quicklisp is a library manager for Common Lisp. Fifty years of Lisp (1958–2008) was celebrated at LISP50@OOPSLA. There are regular local user meetings in Boston, Vancouver, and Hamburg. Other events include the European Common Lisp Meeting, the European Lisp Symposium and an International Lisp Conference. The Scheme community actively maintains over twenty implementations . Several significant new implementations (Chicken, Gambit, Gauche, Ikarus, Larceny, Ypsilon) have been developed in

SECTION 20

#1732858496497

1496-520: Is a wiki that collects Common Lisp related information, the Common Lisp directory lists resources, #lisp is a popular IRC channel and allows the sharing and commenting of code snippets (with support by lisppaste , an IRC bot written in Lisp), Planet Lisp collects the contents of various Lisp-related blogs, on LispForum users discuss Lisp topics, Lispjobs is a service for announcing job offers and there

1564-565: Is implemented in Femtolisp, a dialect of Scheme (Julia is inspired by Scheme, which in turn is a Lisp dialect). In October 2019, Paul Graham released a specification for Bel , "a new dialect of Lisp." Common Lisp and Scheme represent two major streams of Lisp development. These languages embody significantly different design choices. Common Lisp is a successor to Maclisp . The primary influences were Lisp Machine Lisp , Maclisp, NIL , S-1 Lisp , Spice Lisp , and Scheme. It has many of

1632-480: Is intended for reading, not for computing. But he went ahead and did it. That is, he compiled the eval in my paper into IBM 704 machine code, fixing bugs , and then advertised this as a Lisp interpreter, which it certainly was. So at that point Lisp had essentially the form that it has today ... The result was a working Lisp interpreter which could be used to run Lisp programs, or more properly, "evaluate Lisp expressions". Two assembly language macros for

1700-442: Is written as s-expressions , or parenthesized lists. A function call or syntactic form is written as a list with the function or operator's name first, and the arguments following; for instance, a function f that takes three arguments would be called as ( f arg1 arg2 arg3 ) . John McCarthy began developing Lisp in 1958 while he was at the Massachusetts Institute of Technology (MIT). McCarthy published its design in

1768-406: Is written with its elements separated by whitespace , and surrounded by parentheses. For example, ( 1 2 foo ) is a list whose elements are the three atoms 1 , 2 , and foo . These values are implicitly typed: they are respectively two integers and a Lisp-specific data type called a "symbol", and do not have to be declared as such. The empty list () is also represented as

1836-886: The American Southwest such as the Navajo Nation , the Middle East , and Fiji Islands . The CommuniTech project strives to empower under-served communities through sustainable technology and education and does this through the MIT Used Computer Factory (UCF), providing refurbished computers to under-served families, and through the Families Accessing Computer Technology (FACT) classes, it trains those families to become familiar and comfortable with computer technology. (Including members and alumni of CSAIL's predecessor laboratories) CSAIL Alliances

1904-686: The Emacs editor, AutoLISP and later Visual Lisp in AutoCAD , Nyquist in Audacity , and Scheme in LilyPond . The potential small size of a useful Scheme interpreter makes it particularly popular for embedded scripting. Examples include SIOD and TinyScheme , both of which have been successfully embedded in the GIMP image processor under the generic name "Script-fu". LIBREP, a Lisp interpreter by John Harper originally based on

1972-536: The Emacs Lisp language, has been embedded in the Sawfish window manager . Lisp has officially standardized dialects: R6RS Scheme , R7RS Scheme , IEEE Scheme, ANSI Common Lisp and ISO ISLISP . Paul Graham identifies nine important aspects of Lisp that distinguished it from existing languages like Fortran : Lisp was the first language where the structure of program code is represented faithfully and directly in

2040-554: The IBM 704 became the primitive operations for decomposing lists: car ( Contents of the Address part of Register number) and cdr ( Contents of the Decrement part of Register number), where "register" refers to registers of the computer's central processing unit (CPU). Lisp dialects still use car and cdr ( / k ɑːr / and / ˈ k ʊ d ər / ) for the operations that return

2108-590: The LLVM , the Java virtual machine , x86-64, PowerPC, Alpha, ARM, Motorola 68000, and MIPS, and operating systems such as Windows, macOS, Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Dragonfly BSD, and Heroku. Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy L. Steele, Jr. and Gerald Jay Sussman . It was designed to have exceptionally clear and simple semantics and few different ways to form expressions. Designed about

Maclisp - Misplaced Pages Continue

2176-516: The self-hosting compiler , and the read–eval–print loop . The name LISP derives from "LISt Processor". Linked lists are one of Lisp's major data structures , and Lisp source code is made of lists. Thus, Lisp programs can manipulate source code as a data structure, giving rise to the macro systems that allow programmers to create new syntax or new domain-specific languages embedded in Lisp. The interchangeability of code and data gives Lisp its instantly recognizable syntax. All program code

2244-448: The theory of computation . Two professors, Hal Abelson and Gerald Jay Sussman , chose to remain neutral — their group was referred to variously as Switzerland and Project MAC for the next 30 years. Among much else, the AI Lab led to the invention of Lisp machines and their attempted commercialization by two companies in the 1980s: Symbolics and Lisp Machines Inc . This divided

2312-492: The 1930s, the wartime MIT Radiation Laboratory , the post-war Project Whirlwind and Research Laboratory of Electronics (RLE), and MIT Lincoln Laboratory 's SAGE in the early 1950s. At MIT, research in the field of artificial intelligence began in the late 1950s. On July 1, 1963, Project MAC (the Project on Mathematics and Computation, later backronymed to Multiple Access Computer, Machine Aided Cognitions, or Man and Computer)

2380-473: The 2000s (decade). The Revised Report on the Algorithmic Language Scheme standard of Scheme was widely accepted in the Scheme community. The Scheme Requests for Implementation process has created a lot of quasi-standard libraries and extensions for Scheme. User communities of individual Scheme implementations continue to grow. A new language standardization process was started in 2003 and led to

2448-482: The 2010s. Lisp is an expression oriented language . Unlike most other languages, no distinction is made between "expressions" and "statements" ; all code and data are written as expressions. When an expression is evaluated , it produces a value (possibly multiple values), which can then be embedded into other expressions. Each value can be any data type. McCarthy's 1958 paper introduced two types of syntax: Symbolic expressions ( S-expressions , sexps), which mirror

2516-595: The AI Lab into "camps" which resulted in a hiring away of many of the talented programmers. The incident inspired Richard Stallman's later work on the GNU Project . "Nobody had envisioned that the AI lab's hacker group would be wiped out, but it was." ... "That is the basis for the free software movement — the experience I had, the life that I've lived at the MIT AI lab — to be working on human knowledge, and not be standing in

2584-547: The DARPA funding to purchase an IBM 7094 for research use. One of the early focuses of Project MAC would be the development of a successor to CTSS, Multics , which was to be the first high availability computer system, developed as a part of an industry consortium including General Electric and Bell Laboratories . In 1966, Scientific American featured Project MAC in the September thematic issue devoted to computer science, that

2652-794: The DARPA grant was J. C. R. Licklider , who had previously been at MIT conducting research in RLE, and would later succeed Fano as director of Project MAC. Project MAC would become famous for groundbreaking research in operating systems , artificial intelligence , and the theory of computation . Its contemporaries included Project Genie at Berkeley , the Stanford Artificial Intelligence Laboratory , and (somewhat later) University of Southern California 's (USC's) Information Sciences Institute . An "AI Group" including Marvin Minsky (the director), John McCarthy (inventor of Lisp ), and

2720-491: The Extensible Markup Language ( XML ). The reliance on expressions gives the language great flexibility. Because Lisp functions are written as lists, they can be processed exactly like data. This allows easy writing of programs which manipulate other programs ( metaprogramming ). Many Lisp dialects exploit this feature using macro systems, which enables extension of the language almost without limit. A Lisp list

2788-556: The Lisp model of incremental compilation , in which compiled and interpreted functions can intermix freely. The language used in Hart and Levin's memo is much closer to modern Lisp style than McCarthy's earlier code. Garbage collection routines were developed by MIT graduate student Daniel Edwards , prior to 1962. During the 1980s and 1990s, a great effort was made to unify the work on new Lisp dialects (mostly successors to Maclisp such as ZetaLisp and NIL (New Implementation of Lisp) into

Maclisp - Misplaced Pages Continue

2856-485: The MIT Vice President of Research. CSAIL's research activities are organized around a number of semi-autonomous research groups, each of which is headed by one or more professors or research scientists. These groups are divided up into seven general areas of research: Computing Research at MIT began with Vannevar Bush 's research into a differential analyzer and Claude Shannon 's electronic Boolean algebra in

2924-470: The R RS Scheme standard in 2007. Academic use of Scheme for teaching computer science seems to have declined somewhat. Some universities are no longer using Scheme in their computer science introductory courses; MIT now uses Python instead of Scheme for its undergraduate computer science program and MITx massive open online course. There are several new dialects of Lisp: Arc , Hy , Nu , Liskell , and LFE (Lisp Flavored Erlang). The parser for Julia

2992-456: The S-expression syntax is also responsible for much of Lisp's power: the syntax is simple and consistent, which facilitates manipulation by computer. However, the syntax of Lisp is not limited to traditional parentheses notation. It can be extended to include alternative notations. For example, XMLisp is a Common Lisp extension that employs the metaobject protocol to integrate S-expressions with

3060-596: The concepts, such as list-processing and recursion, which came to be used in Lisp. McCarthy's original notation used bracketed " M-expressions " that would be translated into S-expressions . As an example, the M-expression car[cons[A,B]] is equivalent to the S-expression ( car ( cons A B )) . Once Lisp was implemented, programmers rapidly chose to use S-expressions, and M-expressions were abandoned. M-expressions surfaced again with short-lived attempts of MLisp by Horace Enea and CGOL by Vaughan Pratt . Lisp

3128-418: The core theme of an S-expression language. Moreover, each given dialect may have several implementations—for instance, there are more than a dozen implementations of Common Lisp . Differences between dialects may be quite visible—for instance, Common Lisp uses the keyword defun to name a function, but Scheme uses define . Within a dialect that is standardized, however, conforming implementations support

3196-596: The features of Lisp Machine Lisp (a large Lisp dialect used to program Lisp Machines ), but was designed to be efficiently implementable on any personal computer or workstation. Common Lisp is a general-purpose programming language and thus has a large language standard including many built-in data types, functions, macros and other language elements, and an object system ( Common Lisp Object System ). Common Lisp also borrowed certain features from Scheme such as lexical scoping and lexical closures . Common Lisp implementations are available for targeting different platforms such as

3264-415: The first item in a list and the rest of the list, respectively. The first complete Lisp compiler, written in Lisp, was implemented in 1962 by Tim Hart and Mike Levin at MIT, and could be compiled by simply having an existing LISP interpreter interpret the compiler code, producing machine code output able to be executed at a 40-fold improvement in speed over that of the interpreter. This compiler introduced

3332-504: The internal representation of code and data; and Meta expressions ( M-expressions ), which express functions of S-expressions. M-expressions never found favor, and almost all Lisps today use S-expressions to manipulate both code and data. The use of parentheses is Lisp's most immediately obvious difference from other programming language families. As a result, students have long given Lisp nicknames such as Lost In Stupid Parentheses , or Lots of Irritating Superfluous Parentheses . However,

3400-509: The late 1960s, Minsky's artificial intelligence group was seeking more space, and was unable to get satisfaction from project director Licklider. Minsky found that although Project MAC as a single entity could not get the additional space he wanted, he could split off to form his own laboratory and then be entitled to more office space. As a result, the MIT AI Lab was formed in 1970, and many of Minsky's AI colleagues left Project MAC to join him in

3468-453: The need to unify the community resulted in the modern Common Lisp language. Maclisp was named for Project MAC , and is unrelated to Apple's Macintosh (Mac) computer, which it predates by decades or to John McCarthy . The various Lisp systems for the Macintosh have no particular similarity to Maclisp. Lisp 1.5 Lisp (historically LISP , an abbreviation of "list processing") is

SECTION 50

#1732858496497

3536-442: The new laboratory, while most of the remaining members went on to form the Laboratory for Computer Science. Talented programmers such as Richard Stallman , who used TECO to develop EMACS , flourished in the AI Lab during this time. Those researchers who did not join the smaller AI Lab formed the Laboratory for Computer Science and continued their research into operating systems , programming languages , distributed systems , and

3604-428: The newly formed Schwarzman College of Computing by February 2020. From 1963 to 2004, Project MAC, LCS, the AI Lab, and CSAIL had their offices at 545 Technology Square , taking over more and more floors of the building over the years. In 2004, CSAIL moved to the new Ray and Maria Stata Center , which was built specifically to house it and other departments. The IMARA (from Swahili word for "power") group sponsors

3672-559: The same s-expression . Although both implementations put functions on the property list, Maclisp uses different syntax to define functions. Maclisp also has a load-on-demand feature. Maclisp began on Digital Equipment Corporation PDP-6 and PDP-10 computers running the Incompatible Timesharing System (ITS); later it was ported to all other PDP-10 operating systems, for example, Timesharing / Total Operating System , TOPS-10 and TOPS-20 . The original implementation

3740-474: The same core language, but with different extensions and libraries. After having declined somewhat in the 1990s, Lisp has experienced a resurgence of interest after 2000. Most new activity has been focused around implementations of Common Lisp , Scheme , Emacs Lisp , Clojure , and Racket , and includes development of new portable libraries and applications. Many new Lisp programmers were inspired by writers such as Paul Graham and Eric S. Raymond to pursue

3808-406: The special atom nil . This is the only entity in Lisp which is both an atom and a list. Expressions are written as lists, using prefix notation . The first element in the list is the name of a function, the name of a macro, a lambda expression or the name of a "special operator" (see below). The remainder of the list are the arguments. For example, the function list returns its arguments as

3876-564: The way of anybody's further using and further disseminating human knowledge". On the fortieth anniversary of Project MAC's establishment, July 1, 2003, LCS was merged with the AI Lab to form the MIT Computer Science and Artificial Intelligence Laboratory, or CSAIL. This merger created the largest laboratory (over 600 personnel) on the MIT campus and was regarded as a reuniting of the diversified elements of Project MAC. In 2018, CSAIL launched

3944-404: Was first implemented by Steve Russell on an IBM 704 computer using punched cards . Russell had read McCarthy's paper and realized (to McCarthy's surprise) that the Lisp eval function could be implemented in machine code . According to McCarthy Steve Russell said, look, why don't I program this eval  ... and I said to him, ho, ho, you're confusing theory with practice, this eval

4012-543: Was in assembly language , but a later implementation on Multics used PL/I . Maclisp developed considerably in its lifetime. Major features were added which in other language systems would typically correspond to major release numbers. Maclisp was used to implement the Macsyma computer algebra system (CAS) or symbolic algebra program. Macsyma's development also drove several features in Maclisp. The SHRDLU blocks-world program

4080-420: Was influenced by Smalltalk, with later dialects adopting object-oriented programming features (inheritance classes, encapsulating instances, message passing, etc.) in the 1970s. The Flavors object system introduced the concept of multiple inheritance and the mixin . The Common Lisp Object System provides multiple inheritance, multimethods with multiple dispatch , and first-class generic functions , yielding

4148-502: Was invented by McCarthy for a chess program written in Fortran . He proposed its inclusion in ALGOL , but it was not made part of the Algol 58 specification. For Lisp, McCarthy used the more general cond -structure. Algol 60 took up if–then–else and popularized it. Lisp deeply influenced Alan Kay , the leader of the research team that developed Smalltalk at Xerox PARC ; and in turn Lisp

SECTION 60

#1732858496497

4216-438: Was later published in book form. At the time, the system was described as having approximately 100 TTY terminals, mostly on campus but with a few in private homes. Only 30 users could be logged in at the same time. The project enlisted students in various classes to use the terminals simultaneously in problem solving, simulations, and multi-terminal communications as tests for the multi-access computing software being developed. In

4284-553: Was launched with a $ 2 million grant from the Defense Advanced Research Projects Agency (DARPA). Project MAC's original director was Robert Fano of MIT's Research Laboratory of Electronics (RLE). Fano decided to call MAC a "project" rather than a "laboratory" for reasons of internal MIT politics – if MAC had been called a laboratory, then it would have been more difficult to raid other MIT departments for research staff. The program manager responsible for

4352-580: Was limited by the 18-bit word memory address of the PDP-10, and considerable effort was expended in keeping the implementation lean and simple. Multics Maclisp had a far larger address space, but was costly to use. When the memory and processing power of the PDP-10 were exceeded, the Lisp Machine was invented: Lisp Machine Lisp is the direct descendant of Maclisp. Several other Lisp dialects were also in use, and

4420-520: Was originally created as a practical mathematical notation for computer programs , influenced by (though not originally derived from) the notation of Alonzo Church 's lambda calculus . It quickly became a favored programming language for artificial intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science , including tree data structures , automatic storage management , dynamic typing , conditionals , higher-order functions , recursion ,

4488-433: Was stimulated by its use in Lisp. Edsger W. Dijkstra in his 1972 Turing Award lecture said, With a few very basic principles at its foundation, it [LISP] has shown a remarkable stability. Besides that, LISP has been the carrier for a considerable number of in a sense our most sophisticated computer applications. LISP has jokingly been described as "the most intelligent way to misuse a computer". I think that description

4556-454: Was used as the implementation of the language Micro Planner , which was used in the famous AI system SHRDLU . In the 1970s, as AI research spawned commercial offshoots, the performance of existing Lisp systems became a growing issue, as programmers needed to be familiar with the performance ramifications of the various techniques and choices involved in the implementation of Lisp. Over its sixty-year history, Lisp has spawned many variations on

4624-509: Was written in Maclisp, and so the language was in widespread use in the artificial intelligence (AI) research community through the early 1980s. It was also used to implement other programming languages, such as Planner and Scheme . Multics Maclisp was used to implement the first Lisp-based Emacs . Maclisp was an influential Lisp implementation, but is no longer maintained actively. It now runs on PDP-10 emulators and can be used for experimenting with early AI programs. Maclisp began with

#496503