Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
APL (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== History == === Mathematical notation=== A [[mathematical notation]] for manipulating arrays was developed by [[Kenneth E. Iverson]], starting in 1957 at [[Harvard University]]. In 1960, he began work for [[IBM]] where he developed this notation with [[Adin Falkoff]] and published it in his book ''A Programming Language'' in 1962.<ref name="aplbook"/> The preface states its premise: {{blockquote|Applied mathematics is largely concerned with the design and analysis of explicit procedures for calculating the exact or approximate values of various functions. Such explicit procedures are called algorithms or ''programs''. Because an effective notation for the description of programs exhibits considerable syntactic structure, it is called a ''programming language''. }} This notation was used inside IBM for short research reports on computer systems, such as the [[Burroughs B5000]] and its stack mechanism when [[stack machine]]s versus [[register machine]]s were being evaluated by IBM for upcoming computers. Iverson also used his notation in a draft of the chapter ''A Programming Language'', written for a book he was writing with [[Fred Brooks]], ''Automatic Data Processing'', which would be published in 1963.<ref>Iverson, Kenneth E., [http://www.softwarepreservation.org/projects/apl/Books/Iverson-AutomaticDataProcessing-bilevel.pdf/view "Automatic Data Processing: Chapter 6: A programming language"] {{webarchive|url=https://web.archive.org/web/20090604091847/http://www.softwarepreservation.org/projects/apl/Books/Iverson-AutomaticDataProcessing-bilevel.pdf/view |date=June 4, 2009}}, 1960, Draft copy for Brooks and Iverson 1963 book, ''Automatic Data Processing''.</ref><ref>[[Fred Brooks|Brooks, Fred]]; Iverson, Kenneth, (1963), ''Automatic Data Processing'', John Wiley & Sons Inc.</ref> In 1979, Iverson received the [[Turing Award]] for his work on APL.<ref>{{cite web |url=http://awards.acm.org/citation.cfm?id=9147499&srt=all&aw=140&ao=AMTURING |title=Turing Award Citation 1979 |publisher=Awards.acm.org |access-date=February 3, 2010 |archive-url=https://web.archive.org/web/20091223064709/http://awards.acm.org/citation.cfm?id=9147499&srt=all&aw=140&ao=AMTURING |archive-date=2009-12-23 |url-status=dead}}</ref> === Development into a computer programming language === As early as 1962, the first attempt to use the notation to describe a complete computer system happened after Falkoff discussed with William C. Carter his work to standardize the instruction set for the machines that later became the [[IBM System/360]] family. In 1963, Herbert Hellerman, working at the IBM Systems Research Institute, implemented a part of the notation on an [[IBM 1620]] computer, and it was used by students in a special high school course on calculating transcendental functions by series summation. Students tested their code in Hellerman's lab. This implementation of a part of the notation was called Personalized Array Translator (PAT).<ref>{{cite journal |last1=Hellerman |first1=H. |title=Experimental Personalized Array Translator System |journal=Communications of the ACM |volume=7 |issue=7 |pages=433–438 |date=July 1964 |doi=10.1145/364520.364573 |s2cid=2181070 |doi-access=free}}</ref> In 1963, Falkoff, Iverson, and [[Edward H. Sussenguth Jr.]], all working at IBM, used the notation for a formal description of the [[IBM System/360]] series machine architecture and functionality, which resulted in a paper published in ''[[IBM Systems Journal]]'' in 1964. After this was published, the team turned their attention to an implementation of the notation on a computer system. One of the motivations for this focus of implementation was the interest of John L. Lawrence who had new duties with [[Science Research Associates]], an educational company bought by IBM in 1964. Lawrence asked Iverson and his group to help use the language as a tool to develop and use computers in education.<ref>{{cite journal |last1=Falkoff |first1=Adin D. |author1-link=Adin Falkoff |last2=Iverson |first2=Kenneth E. |author2-link=Kenneth E Iverson |date=August 1978 |url=http://www.jsoftware.com/papers/APLEvol.htm |title=The Evolution of APL |journal=ACM SIGPLAN Notices |volume=13|issue=8 |pages=47–57 |doi=10.1145/960118.808372 }}</ref> After [[Lawrence M. Breed]] and [[Philip S. Abrams]] of Stanford University joined the team at IBM Research, they continued their prior work on an implementation programmed in [[FORTRAN IV]] for a part of the notation which had been done for the [[IBM 7090]] computer running on the [[IBM 7090/94 IBSYS|IBSYS]] operating system. This work was finished in late 1965 and later named IVSYS (for Iverson system). The basis of this implementation was described in detail by Abrams in a Stanford University Technical Report, "An Interpreter for Iverson Notation" in 1966. The academic aspect of this was formally supervised by [[Niklaus Wirth]].<ref>Abrams, Philip S., [http://infolab.stanford.edu/TR/CS-TR-66-47.html ''An interpreter for "Iverson notation"''], Technical Report: CS-TR-66-47, Department of Computer Science, Stanford University, August 1966;</ref> Like Hellerman's PAT system earlier, this implementation omitted the APL character set, but used special English reserved words for functions and operators. The system was later adapted for a [[time-sharing]] system and, by November 1966, it had been reprogrammed for the [[IBM System/360 Model 50]] computer running in a time-sharing mode and was used internally at IBM.<ref>{{cite journal |last1=Haigh |first1=Thomas |year=2005 |title=Biographies: Kenneth E. Iverson |journal=IEEE Annals of the History of Computing |doi=10.1109/MAHC.2005.4}}</ref> === Hardware === [[File:APL Greek characters.jpg|thumb|IBM typeballs and typewheel containing APL Greek characters]] [[File:APL-keybd2.svg|thumb|A programmer's view of the IBM 2741 keyboard layout with the APL typing element print head inserted]] A key development in the ability to use APL effectively, before the wide use of [[Computer monitor#Cathode-ray tube|cathode-ray tube]] (CRT) terminals, was the development of a special [[IBM Selectric typewriter]] interchangeable typing element with all the special APL characters on it. This was used on paper printing terminal workstations using the Selectric typewriter and typing element mechanism, such as the [[IBM 1050]] and [[IBM 2741]] terminal. Keycaps could be placed over the normal keys to show which APL characters would be entered and typed when that key was struck. For the first time, a programmer could type in and see proper APL characters as used in Iverson's notation and not be forced to use awkward English keyword representations of them. Falkoff and Iverson had the special APL Selectric typing elements, 987 and 988, designed in late 1964, although no APL computer system was available to use them.<ref name="APLQQ91">Breed, Larry, [http://portal.acm.org/citation.cfm?id=138094.140933 "The First APL Terminal Session"], ''APL Quote Quad'', Association for Computing Machinery, Volume 22, Number 1, September 1991, p. 2–4.</ref> Iverson cited Falkoff as the inspiration for the idea of using an IBM Selectric typing element for the APL character set.<ref>[http://www.computerhistory.org/tdih/?setdate=December 19, 2009 Adin Falkoff] – Computer History Museum. "Iverson credited him for choosing the name APL and the introduction of the IBM golf-ball typewriter with the replacement typehead, which provided the famous character set to represent programs."</ref> Many APL symbols, even with the APL characters on the Selectric typing element, still had to be typed in by over-striking two extant element characters. An example is the ''grade up'' character, which had to be made from a ''delta'' (shift-H) and a ''[[Sheffer stroke]]'' (shift-M). This was necessary because the APL character set was much larger than the 88 characters allowed on the typing element, even when letters were restricted to upper-case (capitals). === Commercial availability === The first APL interactive login and creation of an APL workspace was in 1966 by Larry Breed using an IBM 1050 terminal at the IBM Mohansic Labs near [[Thomas J. Watson Research Center]], the home of APL, in [[Yorktown Heights]], New York.<ref name="APLQQ91"/> IBM was chiefly responsible for introducing APL to the marketplace. The first publicly available version of APL was released in 1968 for the [[IBM 1130]]. IBM provided ''APL\1130'' for free but without liability or support.<ref>{{cite journal |url=http://www.vector.org.uk/archive/v223/APL_1130.htm |title=How We Got to APL\1130 |last1=Breed |first1=Larry |author-link=Larry Breed |journal=Vector (British APL Association) |volume=22 |issue=3 |date=August 2006 |issn=0955-1433 |access-date=2007-04-02 |archive-url=https://web.archive.org/web/20080512031437/http://www.vector.org.uk/archive/v223/APL_1130.htm |archive-date=2008-05-12 |url-status=dead}}</ref><ref>[http://bitsavers.org/pdf/ibm/1130/lang/1130-03.3.001_APL_1130_May69.pdf APL\1130 Manual] {{Webarchive|url=https://web.archive.org/web/20110221034650/http://www.bitsavers.org/pdf/ibm/1130/lang/1130-03.3.001_APL_1130_May69.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://www.bitsavers.org/pdf/ibm/1130/lang/1130-03.3.001_APL_1130_May69.pdf |archive-date=2022-10-09 |url-status=live |date=2011-02-21}}, May 1969</ref> It would run in as little as 8k 16-bit words of memory, and used a dedicated 1 megabyte hard disk. APL gained its foothold on mainframe timesharing systems from the late 1960s through the early 1980s, in part because it would support multiple users on lower-specification systems that had no [[Memory management unit|dynamic address translation]] hardware.<ref>{{cite web|url=http://www.quadibloc.com/comp/aplint.htm |title=Remembering APL |publisher=Quadibloc.com |access-date=June 17, 2013}}</ref> Additional improvements in performance for selected [[IBM System/370]] mainframe systems included the ''APL Assist Microcode'' in which some support for APL execution was included in the processor's [[firmware]], as distinct from being implemented entirely by higher-level software. Somewhat later, as suitably performing hardware was finally growing available in the mid- to late-1980s, many users migrated their applications to the personal computer environment. Early IBM APL interpreters for IBM 360 and IBM 370 hardware implemented their own multi-user management instead of relying on the host services, thus they were their own timesharing systems. First introduced for use at IBM in 1966, the ''APL\360''<ref name="IBM APL\360 1968">Falkoff, Adin; Iverson, Kenneth E., [http://bitsavers.org/pdf/ibm/apl/APL_360_Users_Manual_Aug68.pdf "APL\360 Users Guide"] {{Webarchive|url=https://web.archive.org/web/20120229200744/http://bitsavers.org/pdf/ibm/apl/APL_360_Users_Manual_Aug68.pdf |date=2012-02-29}}, IBM Research, Thomas J. Watson Research Center, Yorktown Heights, NY, August 1968.</ref><ref>[http://bitsavers.org/pdf/ibm/apl/APL_360_Terminal_System_Mar67.pdf "APL\360 Terminal System"] {{Webarchive|url=https://web.archive.org/web/20100711092528/http://bitsavers.org/pdf/ibm/apl/APL_360_Terminal_System_Mar67.pdf |date=2010-07-11}}, IBM Research, Thomas J. Watson Research Center, March 1967.</ref><ref name="apl360">{{cite book |last1=Pakin |first1=Sandra |title=APL\360 Reference Manual |publisher=Science Research Associates, Inc. |year=1968 |isbn=978-0-574-16135-2}}</ref> system was a multi-user interpreter. The ability to programmatically communicate with the operating system for information and setting interpreter system variables was done through special privileged "I-beam" functions, using both [[Monad (functional programming)|monadic]] and [[Dyadics|dyadic]] operations.<ref>Falkoff, Adin D.; Iverson, Kenneth E.,[http://www.research.ibm.com/journal/rd/174/ibmrd1704F.pdf ''The Design of APL''], ''IBM Journal of Research and Development'', Volume 17, Number 4, July 1973. "These environmental defined functions were based on the use of still another class of functions—called "I-beams" because of the shape of the symbol used for them—which provide a more general facility for communication between APL programs and the less abstract parts of the system. The I-beam functions were first introduced by the system programmers to allow them to execute System/360 instructions from within APL programs, and thus use APL as a direct aid in their programming activity. The obvious convenience of functions of this kind, which appeared to be part of the language, led to the introduction of the monadic I-beam function for direct use by anyone. Various arguments to this function yielded information about the environment such as available space and time of day."</ref> In 1973, IBM released ''APL.SV'', which was a continuation of the same product, but which offered [[shared variable]]s as a means to access facilities outside of the APL system, such as operating system files. In the mid-1970s, the IBM mainframe interpreter was even adapted for use on the [[IBM 5100]] desktop computer, which had a small CRT and an APL keyboard, when most other small computers of the time only offered [[BASIC]]. In the 1980s, the ''VSAPL'' [[Software as a Product|program product]] enjoyed wide use with [[Conversational Monitor System]] (CMS), [[Time Sharing Option]] (TSO), [[VSPC]], [[MUSIC/SP]], and [[CICS]] users. In 1973–1974, Patrick E. Hagerty directed the implementation of the University of Maryland APL interpreter for the 1100 line of the Sperry [[UNIVAC 1100/2200 series]] mainframe computers.<ref>{{cite report |last1=Minker |first1=Jack |title=Beginning of Computing and Computer Sciences at the University of Maryland |url=http://www.cs.umd.edu/department/dept-history/minker-report.pdf |publisher=University of Maryland |access-date=May 23, 2011 |section=2.3.4 Computer Software Developments in the CSC, 1962–1973 |page=38 |date=January 2004 |archive-url= https://web.archive.org/web/20110610064807/http://www.cs.umd.edu/department/dept-history/minker-report.pdf |archive-date= June 10, 2011}}</ref> In 1974, student Alan Stebbens was assigned the task of implementing an internal function.<ref>{{cite web |last1=Stebbens |first1=Alan |title=How it all began |url=http://lathwellproductions.ca/wordpress/film |access-date=2011-05-22 |archive-url=https://web.archive.org/web/20160304000314/http://lathwellproductions.ca/wordpress/film |archive-date=2016-03-04 |url-status=dead}}</ref> Xerox APL was available from June 1975 for Xerox 560 and Sigma 6, 7, and 9 mainframes running [[Universal Time-Sharing System#CP-V|CP-V]] and for [[Honeywell CP-6]].<ref>{{cite web |title=Xerox APL Language and Operations Reference Manual |url=http://www.softwarepreservation.org/projects/apl/Books/197506_Xerox%20APL%20Language%20and%20Operations%20Reference%20Manual_90131C.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://www.softwarepreservation.org/projects/apl/Books/197506_Xerox%20APL%20Language%20and%20Operations%20Reference%20Manual_90131C.pdf |archive-date=2022-10-09 |url-status=live}}</ref> In the 1960s and 1970s, several timesharing firms arose that sold APL services using modified versions of the IBM APL\360<ref name="apl360"/> interpreter. In North America, the better-known ones were [[IP Sharp Associates]], [[Scientific Time Sharing Corporation]] (STSC), Time Sharing Resources (TSR), and [[The Computer Company]] (TCC). CompuServe also entered the market in 1978 with an APL Interpreter based on a modified version of Digital Equipment Corp and Carnegie Mellon's, which ran on DEC's KI and KL 36-bit machines. CompuServe's APL was available both to its commercial market and the consumer information service. With the advent first of less expensive mainframes such as the [[IBM 4300]], and later the personal computer, by the mid-1980s, the timesharing industry was all but gone. ''Sharp APL'' was available from IP Sharp Associates, first as a timesharing service in the 1960s, and later as a program product starting around 1979. ''Sharp APL'' was an advanced APL implementation with many language extensions, such as ''packages'' (the ability to put one or more objects into a single variable), a file system, nested arrays, and [[shared variable]]s. APL interpreters were available from other mainframe and mini-computer manufacturers also, notably [[Burroughs Corporation|Burroughs]], [[Control Data Corporation]] (CDC), [[Data General]], [[Digital Equipment Corporation]] (DEC), [[Harris Corporation|Harris]], [[Hewlett-Packard]] (HP), [[Siemens]], [[Xerox]] and others. Garth Foster of [[Syracuse University]] sponsored regular meetings of the APL implementers' community at Syracuse's Minnowbrook Conference Center in [[Blue Mountain Lake (hamlet), New York|Blue Mountain Lake, New York]]. In later years, Eugene McDonnell organized similar meetings at the [[Asilomar Conference Grounds]] near [[Monterey]], [[California]], and at Pajaro Dunes near [[Watsonville]], California. The SIGAPL special interest group of the [[Association for Computing Machinery]] continues to support the APL community.<ref>{{cite web |url=http://www.sigapl.org/ |title=SIGAPL |publisher=Sigapl.org |access-date=June 17, 2013}}</ref> === Microcomputers === On microcomputers, which became available from the mid-1970s onwards, [[BASIC]] became the dominant programming language.<ref>{{cite magazine|url=https://time.com/69316/basic/|title=Fifty Years of BASIC, the Programming Language That Made Computers Personal|date=April 29, 2014|magazine=[[Time (magazine)|Time]] |access-date=April 29, 2018}}</ref> Nevertheless, some microcomputers provided APL instead – the first being the [[Intel 8008]]-based [[MCM/70]] which was released in 1974<ref>{{cite web|url=http://www.old-computers.com/museum/computer.asp?c=346 |title=MCM Computers M70/M700|website=old-computers.com|access-date=April 8, 2018 |archive-url=https://web.archive.org/web/20180403063223/http://www.old-computers.com/museum/computer.asp?c=346|archive-date=April 3, 2018|url-status=dead}}</ref><ref>{{cite book|last1=Stachniak|first1=Stachniak |date=2011|title=Inventing the PC: The MCM/70 Story|publisher=McGill Queens's University Press |isbn=978-0-7735-3852-8|url=https://books.google.com/books?id=cyWOA2FED7EC}}</ref> and which was primarily used in education.<ref>{{cite magazine |last1=Miller |first1=Michael |date=December 17, 2014 |title=PCs That Paved the Way for the Altair |url=http://uk.pcmag.com/opinion/38348/opinion/pcs-that-paved-the-way-for-the-altair |magazine=[[PC Magazine]]|publisher=Ziff Davis |access-date=April 29, 2018}}</ref> Another machine of this time was the [[VideoBrain Family Computer]], released in 1977, which was supplied with its dialect of APL called APL/S.<ref>[https://books.google.com/books?id=OQEAAAAAMBAJ&q=videobrain+family+computer+apl%2Fs&pg=PA133/s "VideoBrain Family Computer"], ''[[Popular Science]]'', November 1978, advertisement.</ref> The [[Commodore SuperPET]], introduced in 1981, included an APL interpreter developed by the [[University of Waterloo]].<ref>{{cite magazine |date=December 1981 |title=A Look at SuperPet |url=https://archive.org/stream/1981-12-compute-magazine/Compute_Issue_019_1981_Dec#page/n131/mode/2up |magazine=[[Compute!]] |publisher=Small System Services Inc |access-date=April 29, 2018}}</ref> In 1976, Bill Gates claimed in his [[Open Letter to Hobbyists]] that [[Microsoft Corporation]] was implementing APL for the [[Intel 8080]] and [[Motorola 6800]] but had "very little incentive to make [it] available to hobbyists" because of [[software piracy]].<ref>{{cite magazine |last1=Gates |first1=Bill |date=January 31, 1976 |title=An Open Letter to Hobbyists |magazine=[[Homebrew Computer Club]] Newsletter |url=http://www.digibarn.com/collections/newsletters/homebrew/V2_01/index.html |access-date=April 29, 2018}}</ref> It was never released. === APL2 === Starting in the early 1980s, IBM APL development, under the leadership of [[Jim Brown (computer scientist)|Jim Brown]], implemented a new version of the APL language that contained as its primary enhancement the concept of ''nested arrays'', where an array can contain other arrays, and new language features which facilitated integrating nested arrays into program workflow. Ken Iverson, no longer in control of the development of the APL language, left IBM and joined [[I. P. Sharp Associates]], where one of his major contributions was directing the evolution of Sharp APL to be more in accord with his vision.<ref>{{cite web |last1=Hui |first1=Roger |title=Remembering Ken Iverson |url=http://keiapl.org/rhui/remember.htm|archive-url=https://archive.today/20130415054224/http://keiapl.org/rhui/remember.htm|url-status=usurped|archive-date=April 15, 2013|website=keiapl.org|publisher=KEIAPL |access-date=January 10, 2015}}</ref><ref>{{cite web |website=ACM A.M. Turing Award |title=Kenneth E. Iverson |url=http://amturing.acm.org/award_winners/iverson_9147499.cfm |publisher=ACM |access-date=January 10, 2015}}</ref><ref>{{cite web |title=APL2: The Early Years: Can you and should you compromise on technical issues? |website=SIGPLAN Chapter on Array-Programming Languages |url=http://www.sigapl.org/Articles/JimBrown-TechCompromise.php |publisher=ACM |access-date=January 10, 2015}}</ref> APL2 was first released for [[Conversational Monitor System|CMS]] and [[Time Sharing Option|TSO]] in 1984.<ref name="FalkoffIBMFamily">{{cite journal |title=The IBM family of APL systems |first1=Adin D. |last1=Falkoff |s2cid=19030940 |year=1991 |journal=IBM Systems Journal |volume=30 |issue=4 |pages=416–432 |doi=10.1147/sj.304.0416}}</ref> The APL2 Workstation edition (Windows, [[OS/2]], [[IBM AIX|AIX]], [[Linux]], and [[Solaris (operating system)|Solaris]]) followed later.<ref>{{cite web |url=http://www.edm2.com/index.php/IBM_APL2 |title=IBM APL2 |website=EDM2 |date=2019-10-09 |access-date=2021-11-17 |archive-date=2021-11-17 |archive-url=https://web.archive.org/web/20211117121942/http://www.edm2.com/index.php/IBM_APL2 |url-status=dead}}</ref><ref>{{cite web |title=APL2: What's New |url=http://www-01.ibm.com/support/docview.wss?uid=swg22012321 |website=ibm.com |publisher=IBM |access-date=April 22, 2018}}</ref> As other vendors were busy developing APL interpreters for new hardware, notably [[Unix]]-based [[microcomputer]]s, APL2 was almost always the standard chosen for new APL interpreter developments. Even today, most APL vendors or their users cite APL2 compatibility as a selling point for those products.<ref>{{cite web|last1=Micro APL|title=Overview of the APL System |url=https://microapl.com/apl/apl_concepts_chapter1.html |website=microapl.com|publisher=Micro APL|access-date=January 10, 2015}}</ref><ref>{{cite web |last1=Robertson |first1=Graeme |title=A Personal View of APL2010 |url=http://archive.vector.org.uk/art10500450|website=archive.vector.org.uk |publisher=Vector – Journal of the British APL Association |access-date=January 10, 2015 |archive-url=https://web.archive.org/web/20150402093211/http://archive.vector.org.uk/art10500450 |archive-date=April 2, 2015 |url-status=dead}}</ref> IBM cites its use for problem solving, system design, prototyping, engineering and scientific computations, expert systems,<ref>{{cite journal |last1=Rodriguez |first1=P. |last2=Rojas |first2=J. |last3=Alfonseca |first3=M. |last4=Burgos |first4=J. I. |title=An Expert System in Chemical Synthesis written in APL2/PC |journal=ACM SIGAPL APL Quote Quad |date=1989 |volume=19 |issue=4 |pages=299–303 |doi=10.1145/75144.75185 |s2cid=16876053}}</ref> for teaching mathematics and other subjects, visualization and database access.<ref>{{cite web |title=APL2: A Programming Language for Problem Solving, Visualization and Database Access|url=http://www-03.ibm.com/software/products/en/apl2|archive-url=https://web.archive.org/web/20131122133145/http://www-03.ibm.com/software/products/en/apl2|url-status=dead|archive-date=November 22, 2013|website=www-03.ibm.com|publisher=IBM|access-date=January 10, 2015}}</ref> === Modern implementations === Various implementations of APL by APLX, Dyalog, et al., include extensions for [[object-oriented programming]], support for [[.NET]], XML-array conversion primitives, graphing, operating system interfaces, and [[lambda calculus]] expressions. Freeware versions include GNU APL for Linux and NARS2000 for Windows (which also runs on Linux under Wine). Both of these are fairly complete versions of APL2 with various language extensions. === Derivative languages === APL has formed the basis of, or influenced, the following languages:{{citation needed|reason=Not contesting these statements at all; some of them are nearly self-evident (J and K, for example), but still, WP quality standards require sources|date=February 2020}} * [[A+ (programming language)|A and A+]], an alternative APL, the latter with graphical extensions. * [[FP (programming language)|FP]], a functional programming language. * Ivy, an interpreter for an APL-like language developed by [[Rob Pike]], and which uses [[ASCII]] as input.<ref>{{Cite web |url=https://godoc.org/robpike.io/ivy |title=Ivy |last1=Pike |first1=Rob |date=2018-03-25 |website=GoDoc |archive-url=https://web.archive.org/web/20190813210651/https://godoc.org/robpike.io/ivy|archive-date=2019-08-13}}</ref> * [[J (programming language)|J]], which was also designed by Iverson, and which uses [[ASCII]] with [[Digraph (computing)|digraphs]] instead of special symbols.<ref name="jinsp">{{cite web |last1=Hui |first1=Roger |url=http://www.jsoftware.com/jwiki/Essays/Bibliography |title=A Bibliography of APL and J |website=jsoftware.com/jwiki |access-date=March 2, 2010}}</ref> * [[K (programming language)|K]], a proprietary variant of APL developed by Arthur Whitney.<ref name="kinsp">{{cite web |url=http://kx.com/Company/press-releases/arthur-interview.php |title=An Interview with Arthur Whitney |publisher=Kx Systems |date=January 4, 2004 |access-date=March 2, 2010 |url-status=dead |archive-url=https://web.archive.org/web/20090404064737/http://kx.com/Company/press-releases/arthur-interview.php |archive-date=April 4, 2009}}</ref> * [[MATLAB]], a numerical computation tool.<ref name="mworks">{{cite web |url=http://www.mathworks.com/company/newsletters/news_notes/clevescorner/jan06.pdf |title=The Growth of MATLAB |last1=Moler |first1=Cleve |access-date=February 3, 2010 |url-status=dead |archive-url=https://web.archive.org/web/20090411120119/http://www.mathworks.com/company/newsletters/news_notes/clevescorner/jan06.pdf |archive-date=April 11, 2009}}</ref> * [[Nial]], a high-level array programming language with a functional programming notation. * [[Polymorphic Programming Language]], an interactive, extensible language with a similar base language. * [[S (programming language)|S]], a statistical programming language (usually now seen in the open-source version known as [[R (programming language)|R]]). * [[Snap! (programming language)|Snap''!'']], a low-code block-based programming language, born as an extended reimplementation of [[Scratch (programming language)|Scratch]] * [[Speakeasy (computational environment)|Speakeasy]], a numerical computing interactive environment. * [[Wolfram Language]], the programming language of [[Mathematica]].<ref>{{Cite web|url=https://www.wolfram.com/language/faq/|title=Wolfram Language FAQ|quote=LISP and APL were two early influences|publisher=Wolfram|access-date=February 20, 2020}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)