Skip to content

APL99 Abstracts and Tutorials

Vector 16:1, page 20

conference reports

Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 20

Invited Speakers

High-Confidence Design for Security, Prof Shiu-Kai Chin. The widespread use of networks makes information security a major concern where the underlying network (e.g., the Internet) is assumed to be insecure. Systems with security requirements typically must operate with a high degree of confidence — they must be highly assured.

The task of designing and building secure systems raises a fundamental question, how do we know with confidence that our designs will behave securely? Having confidence in a secure system requires having confidence in the following: the strength of the cryptographic algorithms, the correctness of the hardware and software implementations, and knowing the implementation supports a security model.

This article describes methods that establish confidence that implementations meet their specifications and security requirements. These methods are rigorous in nature. They rely on mathematical logic and are accessible to engineering students at the masters level. As is typical in systems engineering, a variety of methods are used depending on what level of design is being addressed.

Professor Shiu-Kai Chin
Laura J. and Douglas L. Meredith Professor for Teaching Excellence, University, Syracuse

An Overview of E-Commerce and Intelligent Agents in Supply Chain Management and What it Means to the IBM Micro-Electronics Division, Kenneth J. Fordyce, IBM Corporation. Since the middle of the 1990s one the hottest areas of Decision and Information Systems has been Supply Chain Management. At the end of 1997 another hot area began to emerge called E-Commerce. In September of 1998 the author and Garry Sullivan, IBM Burlington, Vermont, were given the assignment to evaluate E-commerce alone and its relationship to Supply Chain Management, develop a proposed plan how E-Commerce technology can be used in Micro-Electronics Division’s (MD) supply chain applications and business process, identify some initial projects with MD in this area, and develop partnerships with Universities and the NSF. This presentation will provide an overview of their work to date.

Kenneth J. Fordyce

Object-Oriented Concurrent, Parallel, and Distributed Programming in Java, Prof Doug Lea. An introductory survey of Java constructs and common designs used in concurrent, parallel, and distributed programming.

Main topics include:

  • Approaches to design
  • Threads, locks, and monitors
  • Exploiting multiprocessors
  • Distributed objects using RMI

Doug Lea is a professor of Computer Science at the State University of New York at Oswego. He is author of the book, Concurrent Programming in Java, and co-author of the text, Object-Oriented System Development. He is the author of several widely used software packages, as well as articles and reports on object oriented software development including those on specification, design and implementation techniques, distributed object systems, and software reusability.

Doug Lea, Computer Science Department
State University of New York at Oswego

The Switch Back Gravity Railroad and APL2, Walt Niehoff. A discussion of the gravity railroad that was America’s second railroad and first coal-hauling railroad. It was the first to open up the Anthracite Region of which Scranton was a big part. The railroad was called the Switch Back Gravity Railroad and was based at Mauch Chunk, Pennsylvania (now Jim Thorpe) about an hour south of Scranton. As an early user of APL since the late 1960’s who had co-authored GRAPHPAK, the APL graphics package, during his days at IBM, Walt used APL2 and GRAPHPAK in his research on the gravity railroad. (http://www.software.ibm.com/ad/apl/apl2-sbgrr.html)

Walt Niehoff is the author of The Reincarnation of Switch Back Gravity Railroad, 1995. While at IBM, he co-authored GRAPHPAK, a graphics package written in APL.

Walter H. Niehoff, Consultant

Abstracts of Papers

Generalization of Pick’s Theorem for Surface Polyhedra, Dr. Mihaly Agfalvi, Istvan Kadar and Erik Papp, Budapest, Hungary. Because Pick’s theorem was first published in 1899, our planned presentation is timed for its 100th anniversary. Currently it has greater importance than realized heretofore because it forms a connection between the old Euclidean and the new digital (discrete) geometry. Today the question is not the old one: how can we produce traditional area without co-ordinates, using only inside points and boundary points. Just on the contrary: how is it possible to simply determine digital boundary and digital area (namely the number of boundary points and inside points) using known co-ordinates of vertices.

Dynamic Systems Simulation Using APL2, Robertas Alzbutas and Vytautas Janilionis, Kaunas, Lithuania. In this paper, we describe methods, models and software applied for dynamic system simulation using APL2.

When Bears are Blue and Bulls are Red, Linda Alvord and Tama Traberman, Milford, NJ. Analysts deal with real numerical data. Often the data is collected over time. Because numbers are abstract, analysts often use graphs to make numerical data more meaningful. Real data typically fluctuates in some random fashion. However, patterns often exist in the data. An example would be the seasonal fluctuations in commodities. Analysts use a variety of techniques to help them find patterns that have the potential to improve their skill in predicting future trends. This paper suggests some ways to make some of these patterns more obvious.

Functions and Data Can Dance as Equal Partners, J. Philip Benkard, Stamford, CT

The Zark Library of Utility Functions, Gary A. Bergquist, Ellington CT. The primary appeal of APL has always been its PRODUCTIVITY. You can develop and maintain computer applications faster with APL than with any other high-level programming language. APL has a number of distinct traits that contribute to this productivity advantage over other languages. However, language productivity is only one side of the programmer productivity triangle. The other two are programmer experience and utility software. The programmer with the most productive language, the most experience, and the best utility software will develop better code, and faster than the programmer who is deficient in any of these three areas. Experienced APL programmers generally score well in the first two areas, but poorly in the third, probably because APL obviates the perceived need for high quality utility software. Programmers in other languages do not have this luxury and so tend to develop and rely upon more extensive and higher quality utility software. Consequently, the productivity advantage of APL programmers over other programmers is not as significant as it can be. ZarkLib, the Zark Library of Utility Functions, is a scheme that attempts to remedy this problem. It is both an extensive collection of APL utility software and a motivational scheme. It guarantees its growth and maintenance by employing a "pyramid" scheme that motivates APL programmers to give until it hurts, and then give again.

Choices in Server Side Programming, A Comparative Programming Exercise, Robert G. Brown and Willi Hahn, Lingo Allegro, Chicago, IL

Regions: An Abstraction for Expressing Array Computation, Bradford L. Chamberlain, E. Christopher Lewis, Calvin, and Lawrence Snyder, U of Washington, Seattle, and U of Texas, Austin. Most array languages, including Fortran 90, Matlab, and APL, provide support for referencing arrays by extending the traditional array subscripting construct found in scalar languages. We present an alternative to subscripting that exploits the concept of regions — an index set representation that can be named, manipulated with high-level operators, and syntactically separated from array references. This paper develops the concept of region-based programming and describes its benefits in the context of an idealized array language called pure. We show that regions simplify programming, reduce the likelihood of errors, and enable code reuse. Furthermore, we describe how regions accentuate the locality of array expressions and how this locality is important when targeting parallel computers. We also show how the concepts of region-based programming have been used in ZPL, a fully-implemented practical parallel programming language in use by scientists and engineers. In addition, we contrast region-based programming with the array reference constructs of other array languages.

Accelerating APL Programs with SAC, Clemens Grelck, Sven-Bodo Scholz, University of Kiel, Germany. The paper investigates how SAC, a purely functional language based on C syntax, relates to APL in terms of expressiveness and run-time behaviour. To do so, three different excerpts of real world APL programs are examined. It is shown that after defining the required APL primitives in SAC, the example programs can be re-written in SAC with an almost one-to-one correspondence. Run-time comparisons between interpreting APL programs and compiled SAC programs show that speedups due to compilation vary between 2 and 500 for three representative benchmark programs.

Sparse Arrays in J (Preliminary Version), Roger Hui, Toronto, Canada

INFO: Interactive APL Documentation, George Mebus, Lex2000, Inc. Princeton, NJ. A large body of APL code may be hard to understand and analyze, particularly if you are not its author. A code system that spans multiple workspaces (WSs) compounds that problem.

INFO is a Multi-WS system written in APL+Win that provides convenient interactive documentation of APL+Win and APL+DOS multi-WS systems. The User has a variety of displays that give insight into the system structures and relationships within single- or multi-WS systems. An administrator can easily set up and maintain the INFO static analysis data bases for any number of WS groups.

This paper demonstrates INFO by showing how INFO documents itself. A distribution package contains the complete code and instructions for setting up this self-documentation.

A Retro/Prospective on APL GRAPHPAK, Walt Niehoff, Vestal, NY. This paper suggests two general directions that one could take to modernize APL2 Graphpak and revitalize its evolution. One direction springboards off lessons learned during Graphpak’s first decade and from some thinking that evolved during early (c. 1980) experiments with general arrays. The second direction exploits general arrays and APL2 functionality at a user-level. Some experiments are reported relating to both areas.

Teaching J as a Computer Notation for Secondary Mathematics, Howard A. Peelle, Amherst, MA. This article summarizes a teacher-education course which introduces J as a computer notation well-suited for teaching secondary mathematics. This one-semester course is designed as a series of workshops with accompanying discussions. The first workshop is described here in detail; the others are sketched. Teachers’ experiences and reactions to using J are reported informally throughout.

An Object-Oriented Approach to Educational Software in Building Physics, G. Reichard, Graz, Austria. An object-oriented building-physics software A.T.O.N. (which is the acronym for the German "General Thermal and Ecological Verifications") is described as an example for educational software written in APL. The software was developed at the Department for Structural Analysis at the Technical University of Graz, and has been successfully used for teaching building-physics. A.T.O.N. was designed in only four months. It comes with an user-friendly interface, which is easy and effortless to learn. EvAn object-oriented building-physics software A.T.O.N. (which is the acronym for the German "General Thermal and Ecological Verifications") is described as an example for educational software written in APL. The software was developed at the Department for yPro(tm) as an interactive development environment.

APL Generated Teaching and Testing Items to Enhance a Student’s Ability to Discover Functional Relationships, Alvin J. Surkan, Lincoln, NE. Ideas and designs for programs to generate teaching examples are introduced. Some of these ideas are tested and demonstrated by a prototype APL program. Descriptions of the internal structure and requirements of the example generators are presented. The examples produced by the program are designed to motivate students to discover rules or relationships capable of mapping the in-domain inputs to correct outputs. Experimental examples used for demonstrating typical concepts and mathematical processes include the functions: ⍴, ⍳, ×, +, ÷, | and ⍕ with their intrinsic APL definitions. Initially, the types of arguments for these examples will be kept simple at first to promote learning such mathematical functions by permitting only single scalar arguments. Later, for discovery learning, the functions may be selected to permit or require arguments that are vector or array objects. An important component in the design of this system is parameter specification. Parameters determine the number of examples and their perspicuity. A student using the system may request additional examples that are easy to comprehend before the function is discovered from the program generated examples provided. The example-generating program also facilitates checking that establishes that a student’s response is operationally equivalent to a correct one.

GFSR Pseudo-random Number Generation Using APL, Charles Winton, Jacksonville, FL. This paper demonstrates the effectiveness of APL for implementing the generalized feedback shift register (GFSR) approach to producing a random number stream. Various approaches to generating streams of pseudorandom numbers computationally have been devised, dating at least as far back as Norbert Wiener. These are normally discussed in the context of a course in modeling and simulation, since there may be practical implications to consider when building simulation models in APL or any other high level language. This is particularly the case for those circumstances when a (pseudo) random number sequence needs to be repeated, or when multiple streams are needed. In such cases a pseudorandom number generator other than that supplied in the programming language command set needs to be implemented. The linear congruential method for pseudorandom number generation is still commonly used, and is easily implemented in APL or any other high level language; however, it is known to have undesirable n-space uniformity characteristics. Moreover, the period length of its random number stream is limited by the underlying machine’s word size. This is a serious issue, since at present day computer speeds, a simulation run could exhaust such a random number stream in a few hours. Very long period (VLP) pseudorandom number generators remedy this deficiency.

One class of these, generalized feedback shift register (GFSR) pseudorandom number generators, is based on algebraic manipulation of irreducible trinomials of high order. The manner in which this is accomplished particularly lends itself to elegant APL implementation.

Tutorials and Workshops

Chaos and Symmetry Exhibit by Bruce Adcock, Ned Allis, Jeffrey P. Dumont, Flynn J. Heiss, Kevin C. Jones, Clifford A. Reiter, and Lisa M. Vislocky. The fact that chaos is compatible with symmetry is intriguing. This exhibit is a visual exploration of chaos with symmetry created with J. This includes explorations of planar crystallographic symmetries, their evolution from one symmetry type to another reminiscent of Escher’s Metamorphosis, and explorations near forbidden symmetries. Chaos in space with 3-dimensional symmetry is also considered. J provides a remarkably flexible environment for the creation and exploration of these complex, yet structured, objects.

The Creation of Chaos with Symmetry. Bruce Adcock, Ned Allis, Jeffrey P. Dumont, Flynn J. Heiss, Kevin C. Jones, Clifford A. Reiter, and Lisa M. Vislocky. The creation of images of chaos containing symmetry will be described. This includes a discussion of the power of using J as an exploratory tool. Indeed, the generality of J makes it possible to create images of any of the 17 planar wallpaper groups or any of the 230 space groups using the same handful of adverbs and conjunctions. In addition to considering a wide variety of two and three dimensional symmetry groups, explorations near forbidden symmetry will be illustrated. Animations showing the evolution from one planar symmetry type to another will be shown in addition to rotations of three dimensional symmetric chaotic objects.

ISAP (Lingo Allegro’s high level interface between Microsoft’s Internet Information Server and Dyalog APL), Willi Hahn

Introduction - What it is all about, how to set up the environment
A very simple example - Introducing the concepts
German Lotto - See how it works, obviously APL is involved
One may calculate - Dealing with numerical variables
Creating an account - A common task in e-business
Send email - Without relying on the browser’s mail client
A bookstore - More details on the joint paper I’m going to present with Bob Brown
APL with a WEB interface - How APL could be advertised over the Internet
Graphics - How to produce fast business graphics with ISAP on the Internet
Connect to a database - Showing how APL works as an integrating tool
Code browsing - Showing APL code on Web Pages
Errors to avoid - Report on some experience
Resume - What it is, what it is not

Window Models and Management, Paul Mansour, President, the Carlisle Group, Inc. Discusses MDI, SDI, workspaces, workbooks, projects and namespaces.

Reading the Dictionary of J, Martin Neitzel. This workshop is for those who found the Dictionary of J unapproachable or feel not at ease with it.

We will read just a few pre-selected sections but these with a great attention to detail. After attending this tutorial, you should be able to answer questions involving items, cells, and rank on your own with a bit more confidence.

J Programming in a Unix environment, Martin Neitzel. The demonstration/discussion workshop presents how J programs can be developed in and for the Unix environment. Specific topics will be:

  • J in a multi-user environment
  • interactive J: approaches to session management
  • batch-oriented J runs
  • communicating between J and the outside world: stdio, host commands and pipes, TCP/IP, shared library interface
  • useful Unix tools for the J programmer
  • using the juggle.gaertner.de information central

The overall purpose of the workshop is threefold:

  • Introduce relevant aspects of the Unix environment to those J programmers usually working with Windows
  • Exchange practical tips & tricks between users of J under Unix
  • Discuss possible future directions for the J system on Unix

The J Workbench, Martin Neitzel. The J Workbench is a session manager geared towards tacit programming. It replaces the usual scrolling execution window of the Windows J system with a form of several input and output fields. The form separates test arguments from the verb under development. A history is kept of the test arguments and switching between verbs happens in a hypertext-like fashion without the need for explicitly coded references. The workbench allows debugging fragments of tacit phrases simply by highlighting the points of interest.

The tutorial focuses on the presentation of the J Workbench from a user’s perspective. However, the J source of the Workbench is freely available and a quick tour through its organization will be given to ease the life of daring contributors.

Developing Quality Business and Statistical Graphics with Causeway RainPro, Alan Sykes, Swansea University. Workshop, with hands-on PCs. This workshop will cover the basic techniques of chart design using the RainPro tools from Causeway. All the experience gained will be equally applicable to APL+Win and Dyalog APL. Attendees will learn how to construct a variety of composite charts, and how this code can be assembled into an effective utility set for generating many standard statistical presentations, such as multiple box-whisker plots.

The workshop will also cover the various publication options now available, for example in the production of PDF documents or HTML pages using the latest capabilities of Dyalog 8.2. Delegates will be shown how to make ‘active’ graphics where clicking on particular data items might route a user to another page on a web site.

All the examples are illustrated on the Causeway web site — please check out www.causeway.co.uk/apl99/ before joining the workshop, and bring your own examples along too.

Using HTML for Forms Design in APL, Fred Wald. Workshop: half-day, hands-on. This workshop will demonstrate the use of his HTML parser written in APL, and give the attendees experience in using HTML as a page-description language to design forms which are then used an APL application. The use of an existing WYSIWYG html editor to create the HTML, and hence the forms, will be covered. This allows a de-coupling of the APL coding and forms design processes. The attendees will also be exposed to creating HTML scripts dynamically, with APL code, and then using those created scripts to build forms. The ability to capture forms from the web, or other HTML source, and incorporate them into an APL application, will also be covered.

APL and the Internet, Peter Donnelly, Dyadic Systems, Ltd. In this workshop, students will learn how to implement an APL application as a Web SERVER, how to run APL in a Web BROWSER, and how to combine the two for a wholly APL web client/server solution. The workshop is based upon the APLSERVE software supplied with Dyalog APL Version 8.2.

Dynamic Functions "Masterclass", John Scholes, Dyadic Systems, Ltd. The workshop will discuss a range of techniques available to the Dynamic Function programmer. It will include programming in a functional style and will address performance issues.

APL and OLE, John Daintree, Dyadic Systems, Ltd. This workshop will show students how to drive applications such as Excel and Access, or components such as Active Data Objects (ADO), from Dyalog APL APL using COM/OLE interfaces. Mechanisms for accessing other interfaces such as those provided by the Window shell and DirectX will also be covered.