A Development of APL2 Syntax

Total Page:16

File Type:pdf, Size:1020Kb

A Development of APL2 Syntax A development by James A. Brown of APL2 syntax This paper develops the rules governing the When language extensions are proposed we find that the writing of APL2 expressions and discusses the familiar rules do not cover all cases. For example, A PL 1 principles that motivated design decisions. has the concept of an operator (for example, /) applying to a function (for example, +) and producing a new function (called summation). In APL 2 operators are generalized so 1. introduction that they can apply to all functions—including those IBM has numerous products which follow the IBM internal produced by other operators. Therefore a syntactic decision standard for 4PL {VSAPL, APLSV, PC APL, SlOO has to be made about the meaning of a statement like A PL). In this paper this level of the A PL language is referred to as A PL 1. + .X/ APL2 is based on this writer's Ph.D. thesis [1], the array theory of Trenchard More [2], and most of all on APLl. It (where " . " is the matrix product operator). This could incorporates extensions to data structures, to primitive mean either operations, and to syntax. Those wishing a complete ( + .x)/or + .(x/) description of A PL 2 may refer to the A PL 2 publications library listed in the general references. The only extensions Operators are extended so that they take arrays as covered here are those which have an effect on the syntax of operands. Therefore, if "Z)OP" is a dyadic operator taking the language and those implied by the simplifications of an array right operand, syntax. + DOP A^B A presentation of syntax would be brief This is, rather, a discussion of how the syntax was designed and what could mean motivated the choices that were made. A longer discussion {+DOPA)^B or +DOP{A^B) of this and related topics appears in "The Principles of >1PL2"[3]. and the rules of A PL 1 are of no help. In either case x gets evaluated before DOP. The only question is "does x have 2. The objectives of APL2 syntax one or two arguments?" A PL 1 has always had a simple syntax governed by only a These questions and others like them could have been few rules. These rules are phrased in terms of general resolved by stipulating new rules that cover the cases statements that are easy to apply in practice: "All functions followed by a determination that no syntactic ambiguity was have equal precedence"; "functions are executed from right introduced. Instead APL 2 uses the concept of binding to left"; "operators have higher precedence than functions"; strength, which brings together in one measure all the etc. concepts of syntax—order of execution; precedence of operators over functions; building lists of arrays; etc. "Copyright 1985 by Internationa) Business Machines Corporation. It is well known that any precedence grammar can be Copying in pMinted form for private use is permitted without described by a matrix [4, 5]. This is made easier in APL 2 payment of royalty provided that (1) each reproduction is done without alteration and (2) the Journal reference and IBM copyright (and even A PL 1) because it has a small number of object notice are included on the first page. The title and abstract, but no classes. Bunda and Gerth [6] give a development of such a other portions, of this paper may be copied or distributed royalty matrix as a model for evaluating various extensions to A PL free without further permission by computer-based and other information-service systems. Permission to republish any other syntax. However, even a small matrix can be hard to portion of this paper must be obtained from the Editor. remember and apply in practice. Benkard [7] shows that 37 IBM J. RES. DEVELOP. VOL. 29 NO. 1 JANUARY 1985 JAMES A. BROWN A PL 2 can be simplified to a linear hierarchy of syntax but is not associated with an object in most implementations classes. It is this concept that is developed here. because the number is not representable. A given numeric object may be associated with many 3. The objects of APL2 names. For example, the number "fifteen" can be written APL 2 recognizes three classes of objects: arrays, functions, 15 or 15 . 0 or 1 . 5£'l or 15</0. and operators. It is this set of objects and the operations defined on them that must be expressed by the syntax. Since Character scalars are written by enclosing the graphic the kind of data we want to represent is already known and associated with the character in single quotation marks. the style of the syntax is already given, it is not a surprise that choices are made that make the syntax and the universe of objects work together. This is a single character and is treated as an indivisible Thus we chose arrays that are finite, rectangular unit despite the fact that on input it occupies three print collections of other arrays ultimately comprised of numbers positions. The use of the quotes means it is always possible and characters. We chose operations (functions and to distinguish between a number which is represented by a operators) which may take at most two arguments and single digit and the character whose graphic is that digit. which therefore can be easily represented by an infix notation. Primitive operation names Primitive operations are named by single symbols each of 4. Names which occupies one print position. The first step in developing the rules for syntax is There is a large set of primitive functions using the establishing the rules for identifying the objects of discourse symbols in the written notation. + -X** I rL?®o:i~A A name is a string of one or more characters which is, or may be, associated with an A PL 2 object. Some names are V'rvv<< = ^>3:»p DC , <t)^ + + always associated with the same object; others may not be associated with objects at all or may be associated with different objects at ditferent times. There are only a few primitive operators using the symbols Names are considered atomic, indivisible units of writing . / \/ \" even when they take more than one character to represent. Once names are identified, they are considered the tokens Note that dot (.) is an ambiguous symbol used as a decimal of the syntax and their structure is never again of interest. point as well as an operator. Which is intended in any instance is determined from context. • Primitive names Primitive names are those that are defined as part of the • Constructed names definition of the language. They have fixed associations in Constructed names are strings of one or more characters that a given primitive name is always associated with the with the following constraints: same object. An initial or only character is from the set ABC. .JYZAD Primitive array names ABC. .XIZL A PL 2 arrays are collections of numbers and characters. The primitive arrays (the ones given names) are single and remaining characters (if any) are from the set above numbers and single characters (that is. simple scalars). (excluding quad) along with Numeric scalars are written using their decimal 0123456789"_ representations. Complete rules for writing numbers may be found in [8]. Here are examples of various styles of numbers: User names 245. 5 2J3 User names follow the above rules except that the initial "245. 5 2£)i45 character may not be D. Any name constructed according to 2. 35£'13 IRl.716 these rules is valid (no length limitation), and none has any value (i.e.. none is associated with an object) until some (The second column shows three ways to write complex action is taken to specify the association. User names may be numbers.) associated with any class o(APL2 object. While any decimal number may be written, in an Arrays and user names are associated through use of the implementation not all are associated with a scalar object. specification arrow (•<-), through parameter substitution 38 For example. 2£'9 8 7 6 5 4 is a legal name for a number caused by invoking a defined operation, and as an implicit JAMES A BROWN IBM J, Ri;S DEVELOP VOL. 29 NO I JANUARY 1985 result of the DTF function. A name which is associated with • Operators have higher binding power than functions. an array is called a variable. Functions and operators are associated with user names as The syntax oi APL 2 must be able to express an implicit result of the DFX and DTF functions. Functions may also be associated with user names through • Arrays, parameter substitution in a defined operator. Thus a user • Functions and their application to arguments. name may indicate the same function as a primitive • Operators and their application to operands. function or even a derived function. The linear collection of special symbols and names Distinguished names (primitive and constructed) used to write arrays, functions Names which begin with the character D are reserved for and their application to arguments, and operators and their fixed uses in the language and are called distinguished application to operands is called an expression. names. Any distinguished name is valid, but only a few are The names and symbols used to write an expression are associated with objects. Distinguished names associated with divided into six syntax classes: arrays are called system variables; distinguished names associated with functions are called system functions. • Array, • Function, • Monadic operator, • Writing names • Dyadic operator, When writing a linear sequence of names, a primitive operation name need never be separated from adjacent • Assignment arrow, names.
Recommended publications
  • Super Family
    Super Family (Chaim Freedman, Petah Tikvah, Israel, September 2008) Yehoash (Heibish/Gevush) Super, born c.1760, died before 1831 in Latvia. He married unknown. I. Shmuel Super, born 1781,1 died by 1855 in Lutzin (now Ludza), Latvia,2 occupation alcohol trader. Appears in a list from 1837 of tax litigants who were alcohol traders in Lutzin. (1) He married Brokha ?, born 1781 in Lutzin (now Ludza), Latvia,3 died before 1831 in Lutzin (now Ludza), Latvia.3 (2) He married Elka ?, born 1794.4 A. Payka Super, (daughter of Shmuel Super and Brokha ?) born 1796/1798 in Lutzin (now Ludza), Latvia,3 died 1859 in Lutzin (now Ludza), Latvia.5 She married Yaakov-Keifman (Kivka) Super, born 1798,6,3 (son of Sholom "Super" ?) died 1874 in Lutzin (now Ludza), Latvia.7 Yaakov-Keifman: Oral tradition related by his descendants claims that Koppel's surname was actually Weinstock and that he married into the Super family. The name change was claimed to have taken place to evade military service. But this story seems to be invalid as all census records for him and his sons use the name Super. 1. Moshe Super, born 1828 in Lutzin (now Ludza), Latvia.8 He married Sara Goda ?, born 1828.8 a. Bentsion Super, born 1851 in Lutzin (now Ludza), Latvia.9 He married Khana ?, born 1851.9 b. Payka Super, born 1854 in Lutzin (now Ludza), Latvia.10 c. Rassa Super, born 1857 in Lutzin (now Ludza), Latvia.11 d. Riva Super, born 1860 in Lutzin (now Ludza), Latvia.12 e. Mushke Super, born 1865 in Lutzin (now Ludza), Latvia.13 f.
    [Show full text]
  • APL Literature Review
    APL Literature Review Roy E. Lowrance February 22, 2009 Contents 1 Falkoff and Iverson-1968: APL1 3 2 IBM-1994: APL2 8 2.1 APL2 Highlights . 8 2.2 APL2 Primitive Functions . 12 2.3 APL2 Operators . 18 2.4 APL2 Concurrency Features . 19 3 Dyalog-2008: Dyalog APL 20 4 Iverson-1987: Iverson's Dictionary for APL 21 5 APL Implementations 21 5.1 Saal and Weiss-1975: Static Analysis of APL1 Programs . 21 5.2 Breed and Lathwell-1968: Implementation of the Original APLn360 25 5.3 Falkoff and Orth-1979: A BNF Grammar for APL1 . 26 5.4 Girardo and Rollin-1987: Parsing APL with Yacc . 27 5.5 Tavera and other-1987, 1998: IL . 27 5.6 Brown-1995: Rationale for APL2 Syntax . 29 5.7 Abrams-1970: An APL Machine . 30 5.8 Guibas and Wyatt-1978: Optimizing Interpretation . 31 5.9 Weiss and Saal-1981: APL Syntax Analysis . 32 5.10 Weigang-1985: STSC's APL Compiler . 33 5.11 Ching-1986: APL/370 Compiler . 33 5.12 Ching and other-1989: APL370 Prototype Compiler . 34 5.13 Driscoll and Orth-1986: Compile APL2 to FORTRAN . 35 5.14 Grelck-1999: Compile APL to Single Assignment C . 36 6 Imbed APL in Other Languages 36 6.1 Burchfield and Lipovaca-2002: APL Arrays in Java . 36 7 Extensions to APL 37 7.1 Brown and Others-2000: Object-Oriented APL . 37 1 8 APL on Parallel Computers 38 8.1 Willhoft-1991: Most APL2 Primitives Can Be Parallelized . 38 8.2 Bernecky-1993: APL Can Be Parallelized .
    [Show full text]
  • Kenneth E. Iverson
    Kenneth E. Iverson Born December 17, 1920, Camrose, Alberta, Canada; with Adin Falkoff, inventor and implementer of the programming language APL. Education: BA, mathematics, Queen's University at Kingston, Ont., 1950; MA, mathematics, Harvard University, 1951; PhD, applied mathematics, Harvard University, 1954. Professional Experience: assistant professor, Harvard University, 1955-1960; research division, IBM Corp., 1960-1980; I.P. Sharp Associates, 1980-1987. Honors and Awards: IBM Fellow, 1970; AFIPS Harry Goode Award, 1975; ACM Turing Award, 1979; IEEE Computer Pioneer Award, 1982; National Medal of Technology, 1991; member, National Academy of Engineering. Iverson has been one of those lucky individuals who has been able to start his career with a success and for over 35 years build on that success by adding to it, enhancing it, and seeing it develop into a successful commercial property. His book A Programming Language set the stage for a concept whose peculiar character set would have appeared to eliminate it from consideration for implementation on any computer. Adin Falkoff is credited by Iverson for picking the name APL for the programming language implementation, and the introduction of the IBM “golf-ball” typewriter, with the replacement typehead, which provided the character set to represent programs. The programming language became the language of enthusiasts (some would say fanatics) and the challenge of minimalists to contain as much processing as possible within one line of code. APL has outlived many other languages and its enthusiasts range from elementary school students to research scientists. BIBLIOGRAPHY Biographical Falkoff, Adin D., and Kenneth E. Iverson, “The Evolution of APL,” in Wexelblat, Richard L., ed., History of Programming Languages, Academic Press, New York, 1981, Chapter 14.
    [Show full text]
  • APL-The Language Debugging Capabilities, Entirely in APL Terms (No Core Symbol Denotes an APL Function Named' 'Compress," Dumps Or Other Machine-Related Details)
    DANIEL BROCKLEBANK APL - THE LANGUAGE Computer programming languages, once the specialized tools of a few technically trained peo­ p.le, are now fundamental to the education and activities of millions of people in many profes­ SIons, trades, and arts. The most widely known programming languages (Basic, Fortran, Pascal, etc.) have a strong commonality of concepts and symbols; as a collection, they determine our soci­ ety's general understanding of what programming languages are like. There are, however, several ~anguages of g~eat interest and quality that are strikingly different. One such language, which shares ItS acronym WIth the Applied Physics Laboratory, is APL (A Programming Language). A SHORT HISTORY OF APL it struggled through the 1970s. Its international con­ Over 20 years ago, Kenneth E. Iverson published tingent of enthusiasts was continuously hampered by a text with the rather unprepossessing title, A inefficient machine use, poor availability of suitable terminal hardware, and, as always, strong resistance Programming Language. I Dr. Iverson was of the opinion that neither conventional mathematical nota­ to a highly unconventional language. tions nor the emerging Fortran-like programming lan­ At the Applied Physics Laboratory, the APL lan­ guages were conducive to the fluent expression, guage and its practical use have been ongoing concerns publication, and discussion of algorithms-the many of the F. T. McClure Computing Center, whose staff alternative ideas and techniques for carrying out com­ has long been convinced of its value. Addressing the putation. His text presented a solution to this nota­ inefficiency problems, the Computing Center devel­ tion dilemma: a new formal language for writing clear, oped special APL systems software for the IBM concise computer programs.
    [Show full text]
  • How We Got to APL\1130
    How We Got To APL\1130 by Larry Breed APLBUG at CHM, 10 May 2004 APL\1130 was implemented overnight in the autumn of 1967, but it took years of effort to make that possible. In 1965, Ken Iverson’s group in Yorktown was wrestling with the transition from Iverson Notation, a notation suited for blackboards and printed pages, to a machine-executable programming environment. Iverson had already developed a Selectric typeball and was writing a high-school math textbook. By autumn 1965, Larry Breed and Stanford grad student Philip Abrams had written the first implementation in 7090 Fortran (with batch execution). Eugene McDonnell was looking for applications to run on TSM, his project’s experimental time-sharing system on a virtual-memory 7090. With his help, Breed ported the Fortran code, added I/O routines for the 1050 terminals, called the result IVSYS; and Iverson Notation went interactive. Iverson, Breed and other associates now faced issues of input and output, function definition, error handling, suspended execution, and workspaces. They also struggled with both extending the notation to multidimensional arrays and new primitives, and limiting it to what could reasonably be implemented. Whatever it was, it wasn’t “APL”; that name came later. Iverson was also collaborating with John Lawrence of Science Research Associates (SRA), an IBM subsidiary in Chicago aimed at educational markets. Lawrence had been editor of the IBM Systems Journal when it published the Iversonian tour de force “A Formal Description of System/360.” At SRA he was leading a project to make Iverson’s notation the heart of a line of instructional materials, both books and interactive computer applications.
    [Show full text]
  • Synchronizer Synthesizer Sequencer It's So Easy for YOU To
    MARCH 1979 Tape Slide Synchronizer Synthesizer Sequencer It's so easy for YOU to I'm going to use the adjacent card to order obtain subscriptions, books, 40 binders and back issues acopy! from ETI! Only $3.00 There's got to be something in this book for all ETI readers. Canadian Projects Book Number One gives you twenty-five projects from issues of ETI sold in Canada.All the projects have been reworked since they were first published to update them with any information we might have received about availability of components, impr- ovements, etc. To order Canadian Projects Book Number One send $3.00 per copy + 4E4 for postage and handling to: Canadian Projects Book, ET! Magazine, Unit Six, 25 Overlea Blvd., Toronto, Ontario, M4H 1B1. Please do not send cash. Send a Cheque, Money Order, Master Charge, Chargex (Visa), please include Card No., Expiry Date, and Signature. Vol. 3. No. 3. MARCH 1979 Editor STEVE BRAIDWOOD BSc Assistant Editor electronics today GRAHAM WIDEMAN BASc international Advertising INCORPORATING ELECTRONIC WORKSHOP Advertising Manager MARK CZERWINSKI BASc Advertising Services SHARON WILSON Advertising Representatives JIM O'BRIEN PROJECTS Eastern Canada JEAN SEGUIN & ASSOCIATES INC.. 601 Cote Vertu. TAPE -SLIDE SYNCHRONISER 31 St. Laurent. Quebec H4L 1 X8. Keep the slides in step with the commentary, on one channel. Telephone (514) 748-6561 DUAL ELECTRONIC DICE 37 Subscriptions Department An LED game to keep you relatively honest. BEBE LALL SYNTHESIZER SEQUENCER 41 Accounts Department Automatic tunes, or control operation. SENGA HARRISON Layout and Assembly GAIL ARMBRUST Contributing Editors FEATURES WALLACE J. PARSONS (Audio) THE SPACE SHUTTLE 14 BILL JOHNSON (Amateur Radio) The story of the spacecraft that truly flies.
    [Show full text]
  • Final List of Participants
    Final list of participants 1) States and European Community 2) Entities and intergovernmental organizations having received a Standing invitation from the United Nations General Assembly 3) United Nations Secretariat and Organs 4) United Nations Specialized Agencies 5) Associate Members of Regional Commissions 6) Other invited intergovernmental organizations 7) Non governmental organizations (NGOs) and civil society organizations 8) Business Sector Entities 1) STATES AND EUROPEAN COMMUNITY Afghanistan Representatives: H.E. Mr Mohammad M. STANEKZAI, Ministre des Communications, Afghanistan, [email protected] H.E. Mr Shamsuzzakir KAZEMI, Ambassadeur, Representant permanent, Mission permanente de l'Afghanistan, [email protected] Mr Abdelouaheb LAKHAL, Representative, Delegation of Afghanistan Mr Fawad Ahmad MUSLIM, Directeur de la technologie, Ministère des affaires étrangères, [email protected] Mr Mohammad H. PAYMAN, Président, Département de la planification, Ministère des communications, [email protected] Mr Ghulam Seddiq RASULI, Deuxième secrétaire, Mission permanente de l'Afghanistan, [email protected] Albania Representatives: Mr Vladimir THANATI, Ambassador, Permanent Mission of Albania, [email protected] Ms Pranvera GOXHI, First Secretary, Permanent Mission of Albania, [email protected] Mr Lulzim ISA, Driver, Mission Permanente d'Albanie, [email protected] Algeria Representatives: H.E. Mr Amar TOU, Ministre, Ministère de la poste et des technologies
    [Show full text]
  • JAVA 277 James Gosling Power Or Simplicity 278 a Matter of Taste 281 Concurrency 285 Designing a Language 287 Feedback Loop 291
    Download at Boykma.Com Masterminds of Programming Edited by Federico Biancuzzi and Shane Warden Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Download at Boykma.Com Masterminds of Programming Edited by Federico Biancuzzi and Shane Warden Copyright © 2009 Federico Biancuzzi and Shane Warden. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc. 1005 Gravenstein Highway North, Sebastopol, CA 95472 O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (safari.oreilly.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editor: Andy Oram Proofreader: Nancy Kotary Production Editor: Rachel Monaghan Cover Designer: Monica Kamsvaag Indexer: Angela Howard Interior Designer: Marcia Friedman Printing History: March 2009: First Edition. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Masterminds of Programming and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. ISBN: 978-0-596-51517-1 [V] Download at Boykma.Com CONTENTS FOREWORD vii PREFACE ix 1 C++ 1 Bjarne Stroustrup Design Decisions 2 Using the Language 6 OOP and Concurrency 9 Future 13 Teaching 16 2 PYTHON 19 Guido von Rossum The Pythonic Way 20 The Good Programmer 27 Multiple Pythons 32 Expedients and Experience 37 3 APL 43 Adin D.
    [Show full text]
  • Why I'm Still Using
    Why I’m Still Using APL Jeffrey Shallit School of Computer Science University of Waterloo Waterloo, ON N2L 3G1 Canada www.cs.uwaterloo.ca/~shallit [email protected] What is APL? • a system of mathematical notation invented by Ken Iverson and popularized in his book A Programming Language published in 1962 • a functional programming language based on this notation, using an exotic character set (including overstruck characters) and right-to- left evaluation order • a programming environment with support for defining, executing, and debugging functions and procedures Frequency Distribution APL and Me • worked at the IBM Philadelphia Scientific Center in 1973 with Ken Iverson, Adin Falkoff, Don Orth, Howard Smith, Eugene McDonnell, Richard Lathwell, George Mezei, Joey Tuttle, Paul Berry, and many others Communicating APL and Me • worked as APL programmer for the Yardley Group under Alan Snyder from 1976 to 1979, with Scott Bentley, Dave Jochman, Greg Bentley, and Dave Ehret APL and Me • worked from 1974 to 1975 at Uni-Coll in Philadelphia as APL consultant • worked from 1975 to 1979 as APL consultant at Princeton • worked at I. P. Sharp in Palo Alto in 1979 with McDonnell, Berry, Tuttle, and others • published papers at APL 80, APL 81, APL 82, APL 83 and various issues of APL Quote-Quad • taught APL in short courses at Berkeley from 1979 to 1983 and served as APL Press representative • taught APL at the University of Chicago from 1983 to 1988 Why I’m Still Using APL Because • I don’t need to master arcane “ritual incantations” to do things
    [Show full text]
  • Contents Page Editorial: 2
    VECTOR Vol.21 No.4 Contents Page Editorial: 2 RESPONSES Thoughts on the Urn Problem Eddie Clough 4 CRCOMPARE in J Adam Dunne 7 NEWS News from Sustaining Members 10 Product Guide Gill Smith 13 DISCOVER At Play with J: Metlov’s Triumph Gene McDonnell 25 Functional Programming in Joy and K Stevan Apter 31 Function Arrays in APL Gianluigi Quario 39 LEARN A Suduko Solver in J Roger Hui 49 Sudoku with Dyalog APL John Clark & Ellis Morgan 53 APL+WebComponent (Part 2) Deploy your APL+Win Application on the Web Eric Lescasse 62 APL Idioms Ajay Askoolum 92 Review Mathematical Computing in J (Howard Peelle) Cliff Reiter 97 J-ottings 44: So easy a Child of Ten ... Norman Thomson 101 Zark Newsletter Extracts edited by Jonathan Barman 108 Crossword Solution 116 PROFIT Developer Productivity with APLX v3 and SQL Ajay Askoolum 117 Index to Advertisers 143 1 VECTOR Vol.21 No.4 Editorial: Discover, Learn, Profit The BAA’s mission is to promote the use of the APLs. This has two parts: to serve APL programmers, and to introduce APL to others. Printing Vector for the last twenty years has addressed the first part, though I see plenty more to do for working programmers – we publish so little on APL2, for example. But it does little to introduce APL to outsiders. If you’ve used the Web to explore a new programming language in the last few years, you will have had an experience hard to match with APL. Languages and technologies such as JavaScript, PHP, Ruby, ASP.NET and MySQL offer online reference material, tutorials and user forums.
    [Show full text]
  • Kenneth E. Iverson
    VECTOR Vol.23 N°4 An autobiographical essay Kenneth E. Iverson Ken and Donald McIntyre worked on what was to be The Story of APL & J in 2004 through a series of e-mail messages, with the last e-mail from Ken coming in the morning of Saturday, 2004-10-16. Now Donald McIntyre’s health prevents him continuing work on The Story of APL & J. The following autobiographical sketch has been extracted from the manu- script, which Vector hopes eventually to publish in its entirety. Donald McIntyre emphasises that the text of the sketch is in Ken’s own words. Vector is grateful for Roger Hui’s help with preparing it and for adding the endnotes. Ed. Preamble My friend Dr Donald McIntyre has a penchant for well-documented historical treatments of topics that interest him. His more important works concern his chosen discipline of geology; notably his discovery and discussion of the lost drawings of James Hutton, and his commemorative works on the occasion of Hutton’s bicen- tennial. Because of his fruitful use of my APL programming language, and its derivative language J, Donald has asked me many questions concerning their development. I finally suggested (or perhaps agreed to) the writing of a few thoughts on these and related matters. Because of my other interests in developing and applying J, I have deferred work on these essays, but now realise that the further application of J has already fallen into younger and better hands, such as those of Professor Clifford Reiter in his Fractals, Visualization, and J [1].
    [Show full text]
  • Programming Language) 1 APL (Programming Language)
    APL (programming language) 1 APL (programming language) APL Paradigm array, functional, structured, modular Appeared in 1964 Designed by Kenneth E. Iverson Developer Kenneth E. Iverson Typing discipline dynamic Major implementations IBM APL2, Dyalog APL, APL2000, Sharp APL, APLX Dialects A+, Dyalog APL, APLNext Influenced by mathematical notation [1] [2] [3] [4] Influenced J, K, Mathematica, MATLAB, Nial, PPL, Q APL (named after the book A Programming Language)[5] is an interactive array-oriented language and integrated development environment which is available from a number of commercial and non-commercial vendors[6] and for most computer platforms.[7] It is based on a mathematical notation developed by Kenneth E. Iverson. APL has a combination of unique and relatively uncommon features that appeal to programmers and make it a productive programming language:[8] • It is concise, using symbols rather than words and applying functions to entire arrays without using explicit loops. • It is solution focused, emphasizing the expression of algorithms independently of machine architecture or operating system. • It has just one simple, consistent, and recursive precedence rule: the right argument of a function is the result of the entire expression to its right. • It facilitates problem solving at a high level of abstraction. APL is used in scientific,[9] actuarial,[8] statistical,[10] and financial applications where it is used by practitioners for their own work and by programmers to develop commercial applications. It was an important influence on the development of spreadsheets, functional programming,[11] and computer math packages.[3] It has also inspired several other programming languages.[1] [2] [4] It is also associated with rapid and lightweight development projects in volatile business environments.[12] History The first incarnation of what was later to be the APL programming language was published and formalized in A Programming Language,[5] a book describing a notation invented in 1957 by Kenneth E.
    [Show full text]