
Mikhail Barash Anya Helene Bagge (Eds.) History of Programming Languages: Collection of Student Essays Based on HOPL IV Papers Spring Term 2021 University of Bergen Norway Mikhail Barash Anya Helene Bagge (Eds.) History of Programming Languages: Collection of Student Essays Based on HOPL IV Papers Spring Term 2021 University of Bergen Norway | 1 To document our students’ learning experiences Preface with this course, we asked them to prepare a short essay summarizing the HOPL IV paper they have read and presented. The structure of each essay is as follows5: • a short discussion on why the student has chosen a particular HOPL IV paper to his document is a collection of essays writ- present, ten by the students of the seminar course • a brief overview of that HOPL IV paper, T INF328B on History of Programming Lan- guages that was given at the University of Bergen • a brief overview of the programming lan- (Norway) in the Spring term 2021. Instructors of guage, the course were Mikhail Barash and Anya Helene • a discussion of the student’s most favourite Bagge from Bergen Language Design Laboratory feature of that language, at the Department of Informatics. • related work on the language, both within the context of HOPL I–IV conferences and We had 13 students who actively participated a wider context, in the course (11 Master students, 1 Bachelor student, and 1 Ph.D. student). At each session • a brief overview of tooling available for the (classes were held once a week), a student or a language (compilers, IDEs), team of two students presented a paper from The • the student’s personal experience with the Fourth ACM SIGPLAN History of Programming language and the HOPL IV paper, Languages Conference (a.k.a. HOPL IV, to be held in June 20211). • questions that the student would ask the author(s) of the HOPL IV paper. The students of the course have presented HOPL We see these essays as a valuable documentation IV papers on history of the following program- of students’ learning experiences, and we hope ming languages: APL, Clojure, D, F#, Groovy, that this will be an exciting read for everyone. JavaScript, Logo, S&R, and Standard ML. In the meantime, we are looking forward to the next edition of our course—to be held in 2030s— The presentations on three languages from HOPL based on papers from the next HOPL conference. IV were given virtually at our course by the corre- sponding HOPL IV papers’ (co)author(s): Bjarne Stroustrup talked about history of C++2, John Reid presented history of Fortran3, and Peter Bergen, 14th June 2021 Van Roy gave a talk on history of Oz4. Mikhail Barash ([email protected]) Anya Helene Bagge ([email protected]) 1We are thankful to HOPL IV organizing committee, in particular, Guy L. Steele Jr., for offering a special rate for the students of our course to participate in the conference. 2The talk was organized in cooperation with University of Turku (Finland): https://www.utu.fi/fi/ajankohtaista/uu tinen/utu-tech-webinar-bjarne-stroustrup. 3Announcement: https://www.uib.no/ii/144128/history-coarrays-and-spmd-parallelism-fortran. 4Announcement: https://www.uib.no/en/ii/144917/history-oz-multiparadigm-language. 5 The LATEXtemplate we used is an adapted version of https://github.com/sylvain-kern/magazine. | 2 Contents APL 3 Essay by Karl Henrik Elg Barlinn ....................................4 Essay by Sondre Nilsen ..........................................8 Clojure 13 Essay by Daniel Berge ........................................... 14 Essay by Andreas Garvik ......................................... 17 D 20 Essay by Marius Kleppe Larnøy ..................................... 21 F# 25 Essay by Kenneth Fossen ......................................... 26 Groovy 30 Essay by Jenny Strømmen ........................................ 31 JavaScript 34 Essay by Kathryn Frid ........................................... 35 Essay by Åsmund Aqissiaq Arild Kløvstad ............................... 38 Logo 43 Essay by Simen André Lien ........................................ 44 Essay by Emily Mi L. Nguyen ....................................... 47 S&R 51 Essay by Janne Hauglid .......................................... 52 Standard ML 55 Essay by Knut Anders Stokke ....................................... 56 APL Link to the HOPL IV paper: https://dl.acm.org/doi/10.1145/3386319 Link to the students’ presentation: https://git.app.uib.no/uib-hopl-iv/slides/-/blob/master/APL.pdf APL | 4 infancy, known for the easy and natural way a Essay on History of non-technical user could create user interfaces. APL How this evolved with the arrival of non-text based user interfaces is also explored in the paper. The paper goes on to explore how compilers, and Karl Henrik Elg Barlinn interpreters have changed throughout the years, University of Bergen why APL does not really need a compiler, and why it has some anyway. Finally, the paper explores subjects that seem to interest the authors of the paper: what’s in a name, backwards compatibil- he paper “APL since 1978”[1] by Roger K.W. ity, index origin, among other more niche and Hui and Morten J. Kromberg picks up the minor topics. This is not a paper strictly about T story where the HOPL I paper The Evolu- the history of APL, it is a celebration on how far tion of APL [2] left off. The paper describes the APL have come since 1978. evolution of the APL umbrella of languages. It reflects on how not only APL, but the world as Brief Overview of APL a whole, have been shaped by the great progres- APL was created by Kenneth Iverson during the sion since 1978; and throws a few new ideas for 1960s to address the shortcomings of conven- how APL may yet be changed. tional mathematical notation, and to make it ex- ecutable. As such APL is designed for executing Brief Overview of the HOPL Pa- mathematical notation rather than a program- per ming language. This is one of the reasons it used The paper starts off by presenting a historical glyphs rather than the more normal ASCII names perspective on how the world as a whole has we are used to in other languages like C. Curi- changed since the previous HOPL paper on APL ously it has no operator precedent, everything is [2] was presented. Then it explores all new func- associated to the right. This first version of APL is tions and primitives which have been added to known as APL\360 was published in 1966 [1]. The the language. main targets of APL are domain experts without a It also explores what it means need to have a background in computer science. This drives the implementers of the language to I chose this particular HOPL to be primitive, why there are paper to present because I have so few of them, and what this try and accommodate this lack of formal educa- always been fascinated by means for the language as a tion in programming by for example, by making interesting problems. APL is a whole. New concepts such as it easy to create user interfaces. language which I knew nothing leading axis (major cell) and The main features of APL is the concise way com- about before preparing the trains are explained with spe- plex algorithms can be created. This is done presentation. During the initial cial regard to how they drive by having functions and operators perform com- elevator pitch lecture APL was the continuing development of monly needed tasks. A function is applied to called an “array processing the language. Branching lan- an array of arguments to produce array results. language with special graphical guages, such as J and K, are also There is also the notion of the major cell within notation” which does sound, to mentioned in how they influ- the design of functions. As explained by the pa- me at least, like nothing I have ence APL with their own con- per “A major cell of an array is a subarray with come across before and very cepts and ideas. The paper also rank one less than the rank of an array arranged interesting. explores the the famous sym- along its leading axis: an item of a vector, a row of —Elg bols of APL, and why there are a matrix, a plane of a 3-d array, etc. Operating on so few of them. APL was, in its the leading axis is analogous to treating an array APL | 5 as a (conceptual) vector and with the major cells of text matrix display, after all the screen can be as its (conceptual) items” [1]. Some functions looked at as another, rather special, matrix. Using mentioned in the paper are tally, which returns quad notation, namely win, a user could create the number of major cells in an array, and grade, state-of-the-arts character-based interfaces. which when used monadically produces the in- However, as the glory days of mainframes dwin- dices needed to sorts its argument. There are of dled, financial institutions drifted towards Mi- course others, but those are left to the reader to crosoft Windows. Due to the fierce competitive explore. APL market at the time there was no standard- Operators are higher order isation causing APL from different vendors not functions, meaning they take being executable. This was the time where Ob- In a way I always thought functions as arguments and ject Oriented Programming (OOP) also took off, programming languages should not arrays. An array can ei- Dyalog exploited this together with namespaces use a C style syntax; but the ther take a single argument to integrate the Win32 objects directly into the more I learn about non-C-like (monadic) or two arguments workspace. The HOPL IV paper, written by em- languages, the more I realize (dyadic), but not either one or ployees at Dyalog, argues that this makes APL how wrong I was.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages62 Page
-
File Size-