Lisp


Also found in: Dictionary, Thesaurus, Medical, Financial, Acronyms, Wikipedia.
Related to Lisp: Common Lisp

programming language

programming language, syntax, grammar, and symbols or words used to give instructions to a computer.

Development of Low-Level Languages

All computers operate by following machine language programs, a long sequence of instructions called machine code that is addressed to the hardware of the computer and is written in binary notation (see numeration), which uses only the digits 1 and 0. First-generation languages, called machine languages, required the writing of long strings of binary numbers to represent such operations as “add,” “subtract,” “and compare.” Later improvements allowed octal, decimal, or hexadecimal representation of the binary strings.

Because writing programs in machine language is impractical (it is tedious and error prone), symbolic, or assembly, languages—second-generation languages—were introduced in the early 1950s. They use simple mnemonics such as A for “add” or M for “multiply,” which are translated into machine language by a computer program called an assembler. The assembler then turns that program into a machine language program. An extension of such a language is the macro instruction, a mnemonic (such as “READ”) for which the assembler substitutes a series of simpler mnemonics. The resulting machine language programs, however, are specific to one type of computer and will usually not run on a computer with a different type of central processing unit (CPU).

Evolution of High-Level Languages

The lack of portability between different computers led to the development of high-level languages—so called because they permitted a programmer to ignore many low-level details of the computer's hardware. Further, it was recognized that the closer the syntax, rules, and mnemonics of the programming language could be to “natural language” the less likely it became that the programmer would inadvertently introduce errors (called “bugs”) into the program. Hence, in the mid-1950s a third generation of languages came into use. These algorithmic, or procedural, languages are designed for solving a particular type of problem. Unlike machine or symbolic languages, they vary little between computers. They must be translated into machine code by a program called a compiler or interpreter.

Early computers were used almost exclusively by scientists, and the first high-level language, Fortran [Formula translation], was developed (1953–57) for scientific and engineering applications by John Backus at the IBM Corp. A program that handled recursive algorithms better, LISP [LISt Processing], was developed by John McCarthy at the Massachusetts Institute of Technology in the early 1950s; implemented in 1959, it has become the standard language for the artificial intelligence community. COBOL [COmmon Business Oriented Language], the first language intended for commercial applications, is still widely used; it was developed by a committee of computer manufacturers and users under the leadership of Grace Hopper, a U.S. Navy programmer, in 1959. ALGOL [ALGOrithmic Language], developed in Europe about 1958, is used primarily in mathematics and science, as is APL [A Programming Language], published in the United States in 1962 by Kenneth Iverson. PL/1 [Programming Language 1], developed in the late 1960s by the IBM Corp., and ADA [for Ada Lovelace], developed in 1981 by the U.S. Dept. of Defense, are designed for both business and scientific use.

BASIC [Beginner's All-purpose Symbolic Instruction Code] was developed by two Dartmouth College professors, John Kemeny and Thomas Kurtz, as a teaching tool for undergraduates (1966); it subsequently became the primary language of the personal computer revolution. In 1971, Swiss professor Nicholas Wirth developed a more structured language for teaching that he named Pascal (for French mathematician Blaise Pascal, who built the first successful mechanical calculator). Modula 2, a Pascallike language for commercial and mathematical applications, was introduced by Wirth in 1982. Ten years before that, to implement the UNIX operating system, Dennis Ritchie of Bell Laboratories produced a language that he called C; along with its extensions, called C++, developed by Bjarne Stroustrup of Bell Laboratories, it has perhaps become the most widely used general-purpose language among professional programmers because of its ability to deal with the rigors of object-oriented programming. Java is an object-oriented language similar to C++ but simplified to eliminate features that are prone to programming errors. Java was developed specifically as a network-oriented language, for writing programs that can be safely downloaded through the Internet and immediately run without fear of computer viruses. Using small Java programs called applets, World Wide Web pages can be developed that include a full range of multimedia functions.

Fourth-generation languages are nonprocedural—they specify what is to be accomplished without describing how. The first one, FORTH, developed in 1970 by American astronomer Charles Moore, is used in scientific and industrial control applications. Most fourth-generation languages are written for specific purposes. Fifth-generation languages, which are still in their 06/98infancy, are an outgrowth of artificial intelligence research. PROLOG [PROgramming LOGic], developed by French computer scientist Alain Colmerauer and logician Philippe Roussel in the early 1970s, is useful for programming logical processes and making deductions automatically.

Many other languages have been designed to meet specialized needs. GPSS [General Purpose System Simulator] is used for modeling physical and environmental events, and SNOBOL [String-Oriented Symbolic Language] is designed for pattern matching and list processing. LOGO, a version of LISP, was developed in the 1960s to help children learn about computers. PILOT [Programmed Instruction Learning, Or Testing] is used in writing instructional software, and Occam is a nonsequential language that optimizes the execution of a program's instructions in parallel-processing systems.

There are also procedural languages that operate solely within a larger program to customize it to a user's particular needs. These include the programming languages of several database and statistical programs, the scripting languages of communications programs, and the macro languages of word-processing programs.

Compilers and Interpreters

Once the program is written and has had any errors repaired (a process called debugging), it may be executed in one of two ways, depending on the language. With some languages, such as C or Pascal, the program is turned into a separate machine language program by a compiler, which functions much as an assembler does. Other languages, such as LISP, do not have compilers but use an interpreter to read and interpret the program a line at a time and convert it into machine code. A few languages, such as BASIC, have both compilers and interpreters. Source code, the form in which a program is written in a high-level language, can easily be transferred from one type of computer to another, and a compiler or interpreter specific to the machine configuration can convert the source code to object, or machine, code.

Bibliography

See R. Cezzar, A Guide to Programming Languages: Overview and Comparison (1995), T. W. Pratt and M. V. Zelkowitz, Programming Languages: Design and Implementation (3d ed. 1996); C. Ghezzi and M. Jazayem, Programming Language Concepts (3d ed. 1997); R. W. Sebasta, Concepts of Programming Languages (4th ed. 1998).

The Columbia Electronic Encyclopedia™ Copyright © 2022, Columbia University Press. Licensed from Columbia University Press. All rights reserved.
The following article is from The Great Soviet Encyclopedia (1979). It might be outdated or ideologically biased.

Lisp

 

(parasigmatism), the imperfect pronunciation of sibilants (z, s, ts, 3, t ʃ, ʃ, ʃ t ʃ). It may be due to defective arrangement of the teeth (such as the presence of a gap between the front teeth), inadequate mobility of the tongue, partial deafness, or other cause. It sometimes occurs when the structure of the vocal apparatus is normal as a manifestation of underdeveloped speech. The afflicted person usually places the tip of the tongue between the front teeth when articulating sibilants, which results in the characteristic lisping sound. Logopedic methods are used to correct the defect. Surgery or the use of a prosthesis is sometimes indicated when there are structural anomalies of the vocal apparatus.

The Great Soviet Encyclopedia, 3rd Edition (1970-1979). © 2010 The Gale Group, Inc. All rights reserved.

LISP

[lisp]
(computer science)
An interpretive language developed for the manipulation of symbolic strings of recursive data; can also be used to manipulate mathematical and arithmetic logic. Derived from list processing language.
McGraw-Hill Dictionary of Scientific & Technical Terms, 6E, Copyright © 2003 by The McGraw-Hill Companies, Inc.

Lisp

(language)
LISt Processing language.

(Or mythically "Lots of Irritating Superfluous Parentheses"). Artificial Intelligence's mother tongue, a symbolic, functional, recursive language based on the ideas of lambda-calculus, variable-length lists and trees as fundamental data types and the interpretation of code as data and vice-versa.

Data objects in Lisp are lists and atoms. Lists may contain lists and atoms. Atoms are either numbers or symbols. Programs in Lisp are themselves lists of symbols which can be treated as data. Most implementations of Lisp allow functions with side-effects but there is a core of Lisp which is purely functional.

All Lisp functions and programs are expressions that return values; this, together with the high memory use of Lisp, gave rise to Alan Perlis's famous quip (itself a take on an Oscar Wilde quote) that "Lisp programmers know the value of everything and the cost of nothing".

The original version was LISP 1, invented by John McCarthy <jmc@sail.stanford.edu> at MIT in the late 1950s. Lisp is actually older than any other high level language still in use except Fortran. Accordingly, it has undergone considerable change over the years. Modern variants are quite different in detail. The dominant HLL among hackers until the early 1980s, Lisp now shares the throne with C. See languages of choice.

One significant application for Lisp has been as a proof by example that most newer languages, such as COBOL and Ada, are full of unnecessary crocks. When the Right Thing has already been done once, there is no justification for bogosity in newer languages.

See also Association of Lisp Users, Common Lisp, Franz Lisp, MacLisp, Portable Standard Lisp, Interlisp, Scheme, ELisp, Kamin's interpreters.
This article is provided by FOLDOC - Free Online Dictionary of Computing (foldoc.org)

LISP

(1) (Locator/Identifier Separation Protocol) A network architecture from Cisco for reducing the size of the constantly expanding routing tables in the Internet. Working in conjunction with the border gateway protocol (BGP), LISP-identified packets enter the core routers with the destination service provider's IP address. The provider's edge routers remove the LISP data and deliver the packets to the end users.

(2) (LISt Processing) A high-level programming language used for developing artificial intelligence (AI) applications. Developed in the late 1950s by John McCarthy, its syntax and structure is very different from traditional programming languages. For example, there is no syntactic difference between data and instructions, which allows the language to be extended in unusual ways by innovative programmers.

LISP is available in both interpreter and compiler versions and can be modified and expanded by the programmer. Many varieties have been developed, including versions that perform calculations efficiently. The following example from the popular Common LISP dialect converts Fahrenheit to Celsius. See LISP machine.

   (defun convert ()
     (format t "Enter Fahrenheit ")
     (let ((fahr (read)))
      (format t "Celsius is <126>D"
        (truncate (*(-fahr 32)
            (/ 5 9))))))
Copyright © 1981-2019 by The Computer Language Company Inc. All Rights reserved. THIS DEFINITION IS FOR PERSONAL USE ONLY. All other reproduction is strictly prohibited without permission from the publisher.
References in periodicals archive ?
Luchangco, LISP IV spans 200 hectares of real estate constituting the industrial portion of the 250-hectare Malvar Cybergreen, which also includes a 50-hectare area for commercial and residential development.
Available data for SPPI's three industrial estates follow: LISP I, 64 companies and 25,500 employees; LISP II, 27 companies and 9,500 employees; and LISP III, 21 companies and 5,820 employees.
The voice is still as distinctive as ever with a slight lisp here and there as he sang out New Recordings (the title of his solo album) such as The Further North You Go or Bethlehem's Gate, interspersed with the `oldies' Love and Regret, Loaded and an excellent, stripped-down version of Dignity.
Cambridge, Massachusetts-based Harlequin has also released version 4.1 of its LispWorks implementation of Common Lisp, for Windows and Unix.
The editor is written in Common Lisp. The editor uses a C program called WGL to generate images.
To follow some of the discussions in chapters 5 and 6 requires a working knowledge of LISP, but the book is well illustrated throughout with music examples.
The programming language Lisp (see McCarthy [1960] and McCarthy et al.
Sporting a new Motif-like user interface with button icons and floating tool bars, this release integrates surface-modeling capabilities through FastSurf, includes a new drafting module from Baystate Technologies, Marlborough, Mass., new LISP programming interface, and a 3-D input device called Space-Controller.
Ratings of the speech, intelligence, education, and friendliness of two attorneys with normal speech decreased significantly when they were taught to lisp (Mowrer, Wahl, & Doolan, 1978).
The ultimate survivor, who despite her frequent coy, cloying questions and pronounced lisp, can corner the latest celebrity and get him or her to talk.