Gabriele Santinelli 8 Agosto 2008

Total Page:16

File Type:pdf, Size:1020Kb

Gabriele Santinelli 8 Agosto 2008 APL Gabriele Santinelli 8 agosto 2008 Indice Introduzione2 1 La notazione3 1.1 Breve storia della notazione matematica..............3 1.2 L’importanza della notazione....................6 1.3 La notazione Iverson........................8 2 Il linguaggio APL 12 2.1 La Storia............................... 12 2.2 Il linguaggio............................. 14 2.2.1 Terminologia e regole................... 15 2.2.2 Qualche esempio...................... 18 2.2.3 Le critiche......................... 22 2.2.4 Il problema dei caratteri speciali.............. 23 2.3 Interpreti contro compilatori.................... 24 2.4 Utilizzo di APL........................... 26 3 Il dialetto J 27 4 Kenneth Iverson, biografia 31 4.1 Vita................................. 31 4.2 Riconoscimenti........................... 37 Bibliografia 39 1 Introduzione APL è un linguaggio di programmazione di tipo matematico, sviluppato da IBM, che ebbe una significativa diffusione sui calcolatori mainframe degli anni ’60 e ’80. Oggi di APL rimane poco (un minimo numero di aziende ancora lo utilizza per fini commerciali), se non la comune opinione che si trattasse di un linguaggio inspiegabilmente complicato da imparare e terribilmente difficile da scrivere e - soprattutto- da leggere, come è testimoniato da questi versi in rima che ancora oggi molti utenti Unix e Linux possono leggere attraverso l’applicazione Fortune: ’Tis the dream of each programmer Before his life is done, To write three lines of APL And make the damn thing run. In realtà, mentre a prima vista può sembrare un linguaggio incomprensibile, fu concepito con l’intento diametralmente opposto. APL è stato sviluppato per essere un linguaggio semplice e facile da impare per chiunque abbia delle conoscenze matematiche di base. Caratteristica saliente del linguaggio, come avremo modo di vedere nel corso di questo lavoro, è la sua estrema concisione. L’ideatore di APL, Kenneth Iverson, viene ricordato per il suo desiderio di riassumere e sintetizzare in qualunque ambito, non solo in quello informatico. Amici e colleghi lo ricordano amichevolmente con la regola che ideò per spiegare al suo gruppo di lavoro come ridurre all’osso i documenti tecnici [20]: “Se è un paragrafo, rendilo una frase. Se è una frase, rendila un aggettivo o un avverbio. Se è un aggettivo o un’avverbio, omettilo. Applica questa regola ricorsivamente.” Questo lavoro vuole riassumere le caratteristiche del linguaggio APL e le sue radici storiche. Cominceremo, nel capitolo1, con un cenno all’importanza della notazione mate- matica e alla sua evoluzione. Nel capitolo2 proseguiremo descrivendo la nascita del linguaggio APL e le sue caratteristiche, senza però dimenticare le gravi proble- matiche che da sempre limitarono il suo sviluppo. L’attenzione si sposterà poi, nel capitolo3 sul dialetto J, sulle sue differenze rispetto ad APL e sulle novità introdotte. Infine, il capitolo4 raccoglierà la biografia di Kenneth Iverson, padre del linguaggio, il cui nome è inscindibilmente legato a quello di APL. 2 1 La notazione 1.1 Breve storia della notazione matematica Nella società odierna siamo soliti imparare i simboli matematici da bambini, come se questi fossero dogmi tramandati a noi su tavole di pietra. In realtà i simbolismi che abbiamo imparato a maneggiare fin dalle scuole elementari hanno una storia e un’evoluzione secolare tutt’altro che scontata. Tale evoluzione è descritta, anche se sinteticamente, in [14]. Le principali notazioni matematiche oggi utilizzate hanno storie diverse. Ad esempio, il simbolo di addizione “+”, il primo che viene insegnato nelle scuole elementari di tutto il globo, è probabilmente un’abbreviazione del latino et, mentre il simbolo di sottrazione “-” si pensa sia un semplice trattino usato dai mercanti per separare le indicazioni della tara (che nell’antichità veniva chiamata minus) dal peso totale della merce. Questi simboli furono usati per la prima volta da Recorde1 nel 1557 nel libro “The Whetstone of Witte”, lo stesso sul quale comparve il simbolo di uguaglianza “=”: due trattini paralleli, che scelse “perchè non esistono due simboli più uguali di quelli”. La sigma “Σ”, invece, venne probabilmente scelta perchè ricorda la somma; mentre la epsilon “2” è la prima lettera del greco esti (letteralmente “è un”) che suggerisce un’appartenenza. Anche il simbolo di integrale “R ” (una ”S” allungata) e quello di derivata “d”, introdotti da Leibniz, stanno a ricordare la prima lettera dei termini latini summa e differentia. Per indicare l’abbreviazione di una parola, era pratica comune sbarrare la prima o l’ultima lettera. Questo spiega il simbolo ancora oggi usato della Sterlina inglese (“£”, dal latino libra); del Dollaro (“$”, un’abbreviazione di pesos); del centesimo Americano ( ). g Verso la fine del XVII secolo l’uso consapevole del simbolismo nei testi mate- matici era oramai una pratica consolidata, ma non tutti i simboli venivano facilmente accettati negli ambienti scientifici. Nel 1631, quindici anni dopo aver introdotto la croce di Sant’Andrea “×” come simbolo della moltiplicazione e aver esorta- 1Robert Recorde (1510-1558), fisico e matematico britannico. Scrisse diversi libri di aritmetica, geometria e astronomia sotto forma di di dialoghi tra maestro e alunno [1]. 3 1.1 Breve storia della notazione matematica 4 Figura 1.1: La prima rappresentazione scritta di una notazione matematica. to la comunità matematica ad utilizzarlo, Oughtred2, nel libro intitolato “Clavis Mathematicae” , scrisse: “My Treatise being not written in the usuall synthetical manner, nor with verbous expressions, but in the inventive way of Analitice3 and with symboles or notes of things instead of words, seemed unto many very hard; though indeed it was but their owne diffidence, being scared by the newness of the delivery; and not any difficulty in the thing it selfe. Anche l’introduzione del sistema di numerazione arabo, caldeggiato da Fibo- nacci4 nel 1202, fece molta fatica ad essere accettato: per molte persone era più semplice continuare a sommare e sottrarre col sistema numerico Romano, dal mo- mento che questo era sufficiente per i loro bisogni. Inoltre si pensava, non a torto, che i conti nel nuovo sistema di numerazione potessero essere facilmente falsificati, per esempio cambiando lo 0 in 6 o in 9. I numeri arabi fecero la loro prima comparsa sulle monete italiane con due secoli di ritardo, nel 1424; su quelle inglesi nel 1551. Ma facciamo un passo indietro, perchè quelle notazioni che in tempi -tutto sommato- moderni hanno impiegato decine di anni per essere comunemente accet- tate, già esistevano in popolazioni antiche, seppure in forma molto più elementare, ed erano utilizzate quotidianamente, in primo luogo negli scambi commerciali o per il pagamento dei tributi. Quella che può essere indicata come la prima traccia di una notazione matematica è stata rinvenuta scolpita su un masso di granito risalente al 3100 a.C., prima ancora dell’invenzione del papiro. 2William Oughtred (1575-1660), matematico inglese. Inventò nel 1622 il regolo calcolatore. Oltre al già citato simbolo della moltiplicazione, introdusse le notazioni “sin” e “cos” per indicare rispettivamente seno e coseno [1]. 3Nonostante questo brano venga spesso citato, non sono riuscito a trovare una spiegazione di chi o cosa sia l”’Analitice“ cui viene fatto riferimento. 4Leonardo Fibonacci (1170-1250), matematico pisano. Oltre al merito di aver introdotto il siste- ma di numerazione arabo, i suoi studi sulla crescita delle popolazioni di conigli lo portarono alla definizione della successione di Fibonacci (serie in cui ogni cifra è la somma delle due precedenti [1]). 1.1 Breve storia della notazione matematica 5 Figura 1.2: I simboli che costituiscono la notazione matematica egizia. Figura 1.3: Alcuni esempi di numeri scritti in notazione egizia. Una raffigurazione di questo reperto è illustrata in figura 1.1. Si tratta di un reso- conto del trionfo di Narmer5, per poterlo leggere abbiamo bisogno della figura 1.2 come chiave di lettura. In questo modo riusciamo a capire che Narmer catturò 400 000 buoi, 1 422 000 capre e 120 000 prigionieri. Nella numerazione egizia, infatti, i simboli corrispondono a potenze crescenti di 10, cioè rispettivamente ai valori 1 (un bastoncino), 10 (un bastoncino ripiegato), 100 (una corda arrotolata), 1 000 (un fiore di loto6), 10 000 (un dito), 100 000 (una rana), 1 000 000 (una persona con le braccia al cielo). Gli altri numeri si scrivevano ripetendo questi simboli il numero di volte necessario per arrivare al valore voluto, come mostrato negli esempi di figura 1.3. La base usata è quella decimale e, come nel sistema Romano, è assente la notazione posizionale. Per alcuni studiosi la loro origine porebbe essere legata a questioni fonetiche; per altri i simboli potevano essere direttamente ricollegati a questioni più pratiche, per esempio la corda era uno strumento comunemente usato dagli Egizi per misurare i campi e la principale unità di misura era il khet, pari a 100 cubiti, da qui il simbolo della corda per indicare il numero 100. Essendo la notazione matematica egizia di tipo additivo, il calcolo delle addi- zioni era banale (ed analogo a quello romano): per addizionare due o più valori 5Narmer, Re dell’Egitto che fondò la prima dinastia che univa l’alto e il basso Egitto. 6Loto, pianta acquatica dai grandi fiori bianchi o rosa. 1.2 L’importanza della notazione 6 bastava infatti mettere insieme i simboli di ciascuno degli addendi, ed eventualmente effettuare le opportune semplificazioni sostituendo dieci occorrenze di uno stesso simbolo col
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]
  • Dyalog User Conference Programme
    Conference Programme Sunday 20th October – Thursday 24th October 2013 User Conference 2013 Welcome to the Dyalog User Conference 2013 at Deerfield Beach, Florida All of the presentation and workshop materials are available on the Dyalog 2013 Conference Attendee website at http:/conference.dyalog.com/. Details of the username and password for this site can be found in your conference registration pack. This website is available throughout the conference and will remain available for a short time afterwards – it will be updated as and when necessary. We will be recording the presentations with the intention of uploading the videos to the Internet. For this reason, please do not ask questions during the sessions until you have been passed the microphone. It would help the presenters if you can wait until the Q&A session that concludes each presentation to ask your questions. If your question can't wait, or if the presenter specifically states that questions are welcome throughout, then please raise your hand to indicate that you need the microphone. All of Dyalog's presenters are happy to answer specific questions relating to their topics at any time after their presentation. Scavenger Hunt Have fun and get to know the other delegates by participating in the scavenger hunt that is running throughout Dyalog '13. The hunt runs until 18:30 on Wednesday and prizes will be awarded at the Banquet. Team assignments, rules and the scavenger hunt list will be handed out at registration. Guests are welcome to join in as well as conference delegates. Good luck and happy hunting! For practical information, see the back cover If you have any questions not related to APL, please ask Karen.
    [Show full text]
  • Technical Program Sessions | ACM Multimedia 2010
    Technical Program Sessions | ACM Multimedia 2010 http://www.acmmm10.org/program/technical-program/technical-program-... Technical Program Sessions Tuesday, October 26 morning PLENARY PL1 Chairs: Alberto Del Bimbo, University of Firenze, I Shih-Fu Chang, Columbia University, USA Arnold Smeulders, University of Amsterdam, NL Using the Web to do Social Science Duncan Watts, Yahoo! Research Chair: Shih-Fu Chang, Columbia University, USA ORAL SESSION FULL F1 Content Automatic image tagging Chair: Yong Rui, Microsoft Research, USA Leveraging Loosely-Tagged Images and Inter-Object Correlations for Tag Recommendation Yi Shen, University of North Carolina at Charlotte Jianping Fan, University of North Carolina at Charlotte Multi-label Boosting for Image Annotation by Structural Grouping Sparsity Fei Wu, Zhejiang University Yahong Han, Zhejiang University Qi Tian, University of Texas at San Antonio Yueting Zhuang, Zhejiang University Unified Tag Analysis With Multi-Edge Graph Dong Liu, Harbin Institute of Technology Shuicheng Yan, National University of Singapore Yong Rui, Microsoft China R&D Group Hong-Jiang Zhang, Microsoft Advanced Technology Center Efficient Large-Scale Image Annotation by Probabilistic Collaborative Multi-Label Propagation Xiangyu Chen, National University of Singapore Yadong Mu, National University of Singapore Shuicheng Yan, National University of Singapore Tat-Seng Chua, National University of Singapore ORAL SESSION FULL F2 Applications / Human-centered multimedia User-adapted media access Chair: Ralf Steinmetz, University
    [Show full text]
  • 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.
    [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]
  • Thinking in APL: Array-Oriented Solutions
    1 Thinking in APL: Array-oriented Solutions (Part 1) Richard Park 2 Thinking in APL: Array-oriented Solutions Tool of thought Language & thought Primitives Idioms 3 Thinking in APL: Array-oriented Solutions Array as the unit Direct expression Techniques Heuristics 4 This Webinar Food for thought Secret sauce 5 Notation as a Tool of Thought Iverson, K.E., 2007. In ACM Turing award lectures (p. 1979). 6 Notation as a Tool of Thought Ease of expressing constructs arising in problems. Suggestivity. Ability to subordinate detail. Economy. Amenability to formal proofs. 7 Notation as a Tool of Thought Design Patterns vs Anti pattern in APL by Aaron W Hsu at FnConf17 https://www.youtube.com/watch?v=v7Mt0GYHU9A 8 Language as a Tool of Thought Expression Suggestivity Subordination of detail Economy 9 Economy A Conversation with Arthur Whitney (ACM 2009) Brian Cantrill & Arthur Whitney AW: … we can remember seven things. BC: Right. People are able to retain a seven-digit phone number, but it drops off quickly at eight, nine, ten digits. AW: If you‘re Cantonese, then it’s ten. I have a very good friend, Roger Hui, who implements J. He was born in Hong Kong but grew up in Edmonton as I did. One day I asked him, “Roger, do you do math in English or Cantonese?” He smiled at me and said, “I do it in Cantonese because it‘s faster and it’s completely regular.” 10 APL Thinking? The thought process of someone using APL - Primitive functions and operators - Translating natural language algorithm descriptions - Translating pseudo code - Translating code from
    [Show full text]
  • APL / J by Seung­Jin Kim and Qing Ju
    APL / J by Seung-jin Kim and Qing Ju What is APL and Array Programming Language? APL stands for ªA Programming Languageº and it is an array programming language based on a notation invented in 1957 by Kenneth E. Iverson while he was at Harvard University[Bakker 2007, Wikipedia ± APL]. Array programming language, also known as vector or multidimensional language, is generalizing operations on scalars to apply transparently to vectors, matrices, and higher dimensional arrays[Wikipedia - J programming language]. The fundamental idea behind the array based programming is its operations apply at once to an entire array set(its values)[Wikipedia - J programming language]. This makes possible that higher-level programming model and the programmer think and operate on whole aggregates of data(arrary), without having to resort to explicit loops of individual scalar operations[Wikipedia - J programming language]. Array programming primitives concisely express broad ideas about data manipulation[Wikipedia ± Array Programming]. In many cases, array programming provides much easier methods and better prospectives to programmers[Wikipedia ± Array Programming]. For example, comparing duplicated factors in array costs 1 line in array programming language J and 10 lines with JAVA. From the given array [13, 45, 99, 23, 99], to find out the duplicated factors 99 in this array, Array programing language J©s source code is + / 99 = 23 45 99 23 99 and JAVA©s source code is class count{ public static void main(String args[]){ int[] arr = {13,45,99,23,99}; int count = 0; for (int i = 0; i < arr.length; i++) { if ( arr[i] == 99 ) count++; } System.out.println(count); } } Both programs return 2.
    [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]
  • Contract No. 1423-13627
    CONTRACT NO. 1423-13627 PAVEMENT MANAGEMENT SERVICES SECTION NO. 12-6CHAP-02-KS BETWEEN ~% I I) Ml a~ COOK COUNTY GOVERNMENT Department of Transportation and Highways Dynatest Consulting, Inc. APPROVen ev 80A» F COOK CO<We t.'0M@68@«E+ YAP; .'', I 7~~15 Cook County Contract No. 1423-13627 Pavement Management Services PROFESSIONAL SERVICES AGREEMENT TABLE QF CQNTKNTS TERMS AND CONDITIONS ................................................. ARTICLE 1) INCORPORATION OF BACKGROUND ....... ARTICLE 2) DEFINITIONS .................................................. a) Definitions ...............................,.............................,...........,. b).Interpretation ...............................,.....,.............,...,............... c).Incorporation of Exhibits ............................................... ARTICLE 3) DUTIES AND RESPONSIBILITIES OF CONSULTANT..... a) Scope of Services................................................................. b) Deliverables ........................,................................................ c) Standard of Performance ..................................................... d) Personnel ...........................,.....................,........,............ e) Minority and Women's Business Enterprises Commitm ent ........ f) Insurance .............................................................................. g) Indemnification.................................................................... 'h) Confidentiality and Ownership of Documents .................... i) Patents, Copyrights and Licenses
    [Show full text]