Information Processing Language: Difference between revisions

Content deleted Content added
OAbot (talk | contribs)
m Open access bot: doi updated in citation with #oabot.
 
(7 intermediate revisions by 6 users not shown)
Line 1:
{{Short description|Early programming language for lists}}
{{More citations needed|date=January 2022}}
{{Infobox programming language
Line 21 ⟶ 22:
'''Information Processing Language''' ('''IPL''') is a [[programming language]] created by [[Allen Newell]], [[Cliff Shaw]], and [[Herbert A. Simon]] at [[RAND Corporation]] and the [[Carnegie Institute of Technology]] about 1956. Newell had the job of language specifier-application programmer, Shaw was the system programmer, and Simon had the job of application programmer-user.
 
TheIPL code includesincluded features intended to helpfacilitate withAI programsprogramming, that perform simplespecifically [[Problem_solving|problem solving actions]]. such as lists, [[dynamic memory allocation]], [[data type]]s, [[Recursion (computer science)|recursion]], [[Subroutine|functions]] as arguments, generators, and [[cooperative multitasking]]. IPL inventedalso introduced the conceptconcepts of [[Symbolic_language_(programming)|symbol processing]] and list processing. Unfortunately, albeitall of these innovations were cast in ana difficult [[Assembly language|assembly-language]] style. Nontheless, IPL-V (the only public version of IPL) ran on many computers through the mid 1960s.
 
==Basics of IPL==
Line 38 ⟶ 39:
The data structure of IPL is the list, but lists are more intricate structures than in many languages. A list consists of a singly linked sequence of symbols, as might be expected—plus some ''description lists'', which are subsidiary singly linked lists interpreted as alternating attribute names and values. IPL provides primitives to access and mutate attribute value by name. The description lists are given local names (of the form 9–1). So, a list named L1 containing the symbols S4 and S5, and described by associating value V1 to attribute A1 and V2 to A2, would be stored as follows. 0 indicates the end of a list; the cell names 100, 101, etc. are automatically generated internal symbols whose values are irrelevant. These cells can be scattered throughout memory; only L1, which uses a regional name that must be globally known, needs to reside in a specific place.
 
{|style="font-family:monospace; margin: 1em auto" class="wikitable"
|+ '''IPL-V List Structure Example'''
|-
!Name !! SYMB !! LINK
Line 81 ⟶ 82:
IPL was used to implement several early [[artificial intelligence]] programs, also by the same authors: the [[Logic Theorist]] (1956), the [[General Problem Solver]] (1957), and their [[computer chess]] program [[NSS (chess program)|NSS]] (1958).
 
Several versions of IPL were created: IPL-I (never implemented), IPL-II (1957 for [[JOHNNIAC]]), IPL-III (existed briefly), IPL-IV, IPL-V (1958, for [[IBM 650]], [[IBM 704]], [[IBM 7090]], [[Philco model 212]], many others. Widely used). IPL-VI was a proposal for an IPL hardware.<ref>{{FOLDOC|Information+Processing+Language}}</ref>{{sfn|Shaw|Newell|Simon|Ellis|1958}}{{sfn|Sammet|1969|p=389}}
 
A co-processor “IPL-VC” for the CDC 3600 at Argonne National Libraries was developed which could run IPL-V commands.{{sfn|Hodges|1964}}{{sfn|Sammet|1969|p=393–394}} It was used to implement another checker-playing program.{{sfn|Cowell|Reed|1965}} This hardware implementation did not improve running times sufficiently to “compete favorably with a language more directly oriented to the structure of present-day machines”.{{sfn|Carson|Robinson|1966|p=5}}
Line 189 ⟶ 190:
|journal=Communications of the ACM
|pages=205–211|s2cid=16609075
|doi-access=free
}}
 
Line 213 ⟶ 215:
|title=Advances in Computers Volume 1
|chapter=Programming Computers to Play Games
|series=Advances in Computers
|volume=1
|editor-last=Alt
Line 228 ⟶ 229:
* [http://bitsavers.org/pdf/rand/ipl/ IPL documents from BitSavers]
* [http://www-formal.stanford.edu/jmc/history/lisp/node2.html Influence of IPL on LISP]
* [https://github.com/jeffshrager/IPL-V A Common LISP interpreter for IPL-V, including a working transcription of the Logic Theory Machine (actively under development in 2025)]
 
{{Authority control}}
Line 234 ⟶ 236:
[[Category:History of artificial intelligence]]
[[Category:Programming languages created in 1956]]
[[Category:Management cybernetics]]