Talks from APL 2010

Below are links to the presentations at APL2010 in Berlin which we recorded.
Each consists of the slides for that presentation, along with the presenter's speech.

Dyalog would like to thank those presenters who do not work for Dyalog for permission to include their presentations here.

Talks by Competition Winners

My APL Experience by Ryan Tarpine

Discovering APL by Mstislav Elagin

Talks by Customers and Other Presenters

APL2XML by Kai Jäger

APL And Web Services by Brian Becker

Migrating SimCorp Dimension to Dyalog APL Unicode by Stig Nielsen

Windows Presentation Foundation by Michael Hughes

Talks by Dyalog Presenters

Introduction to D-Functions - Part 1 by John Scholes

Introduction to D-Functions - Part 2 by John Scholes

Processing Regular Expressions by Richard Smith

Taking APL for a RIDE by John Daintree

Unifying Traditional Functions and D-Fns in APL# by John Scholes, Jonathan Manktelow, Morten Kromberg

My APL Exprerience

My APL Experience

Ryan Tarpine

Ryan is the winner of the Dyalog Programming Contest 2010. He is a 25-year-old PhD Candidate in Computer Science with a focus on computational biology from Brown University near Boston.

Discovering APL

Discovering APL

Mstislav Elagin

Mstislav is the runner-up in the Dyalog Programming Contest 2010. He is a 32-year old PhD student at the Humboldt-Universität zu Berlin, who is currently developing an online monitoring and early warning system for financial markets.

APL2XML

APL2XML

Kai Jäger

Kai says: "HelpAndManual (http://www.helpandmanual.com/) is, in my opinion, by far the best software available for creating any sort of documentation.
The software comes with a powerful editor that allows the user comfortably to edit all sorts of aspects of documentation, including references, a glossary, an index and a table of contents as a tree-structure. The application saves its data in XML files. The application compiles these files not only into ordinary Windows help files but also compiled help, RTF documents, PDF documents, web sites and electronic books.
That fact that it saves its internal data in ordinary XML files means that any application could create such XML files itself and then use HelpAndManual as a compiler in order to generate the preferred output format.
This seems to be particularly useful for classes: plenty of useful information can be generated from class scripts automatically: a list of methods including their syntax as well as a list of properties and fields.
In the case where a class script contains information about itself following some simple and basic rules, these pieces of information can be used as well.
This talk demonstrates how this can be achieved by using a couple of classes which are already available as part of the APLAPL project on the APL Wiki (ADOC; see http://aplwiki.com/ADOC) or will become available shortly before the APL2010 conference: the APL2XML classes.
With these classes one can create XML files which will be accepted by HelpAndManual as input files. Before the APL2010 conference ADOC will be enhanced to make use of the APL2XML classes in order to create any of the output formats supported by HelpAndManual.
Apart from its usefulness the approach demonstrates clearly the advantage of using XML as file format. This allows applications to work together although they don't know much about each other.
The advantages of an object-oriented approach in software development also becomes apparent: Both ADOC as well as the APL2XML classes are quite complex, but the complexity is hidden: the user is expected to deal only with the public interface which is easy and clean."

APL And Web Services

APL And Web Services

Brian Becker

Migrating SimCorp Dimension to Dyalog APL Unicode

Migrating SimCorp Dimension to Dyalog APL Unicode

Stig Nielsen

SimCorp Dimension is an integrated single database investment management system mainly coded in Dyalog APL, partly in C#. Due to market demands, the APL and database part of the system has been migrated to support Unicode. Stig will take you through the steps needed, and the pitfalls to be aware of, to get successful through the migration process and finally release the product. The main challenge was to get all the interfaces to e.g. external C-libraries, third party products and general native file access issues. A general introduction to what Unicode is and why it is, or is not, the answer to all problems with multilingual challenges when it comes to sharing data will start the session.

Windows Presentation Foundation

Windows Presentation Foundation

Michael Hughes

Windows Presentation Foundation is a graphical subsystem for rendering user interfaces, originally developed for desktop applications built using the Microsoft.Net platform - but now also available for web and mobile applications under Windows, Linux, on the Apple Macintosh - and coming to mobile platforms. The workshop will demonstrate how WPF can be used from Dyalog APL and APL# to create desktop and web applications.

Introduction to D-Functions - Part 1

Introduction to D-Functions - Part 1

John Scholes

Since their introduction in 1996, Dyalog's direct-definition functions (D-fns) have grown from an experimental toy to a notation used to implement large pieces of commercial software. D-fns are not only useful for expressing idioms, but also as a tool of thought for any problem that can benefit from a functional approach (and some would say that covers almost everything). Owing to their functional nature, D-fns also have greater potential for internal optimization, including compilation — and have been selected as the foundation for the new function syntax in the APL# dialect

Introduction to D-Functions - Part 2

Introduction to D-Functions - Part 2

John Scholes

Since their introduction in 1996, Dyalog's direct-definition functions (D-fns) have grown from an experimental toy to a notation used to implement large pieces of commercial software. D-fns are not only useful for expressing idioms, but also as a tool of thought for any problem that can benefit from a functional approach (and some would say that covers almost everything). Owing to their functional nature, D-fns also have greater potential for internal optimization, including compilation — and have been selected as the foundation for the new function syntax in the APL# dialect

Processing Regular Expressions

Processing Regular Expressions

Richard Smith

In so-called “scripting languages” (Perl, Ruby, Awk and Tcl, to name a few), the ability to search text using “regular expressions” is a cornerstone for the power and flexibility that these languages deliver. Although APL is (currently) mostly used to process numeric data, APL has most of the characteristics of a good scripting language, and many current and future APL applications could benefit from the availability of regular expression support tightly integrated with the language.
The support for regular expressions in Perl inspired Philip Hazel to create the Perl Compatible Regular Expression library known as PCRE, which has been incorporated into many open-source applications. Although APL vendors and tool smiths have previously implemented system or library functions which interface to PCRE and other “regex engines”, one of the typical usage patterns is to call a function to process each “match” of the regular expression within an input document, suggesting that an operator might be a more appropriate model. This paper will discuss the design decisions which led ultimately to ⎕RX, Dyalog’s first “system operator”, which can search using PCRE and make modifications to the text either by using a simple transformation syntax (similar to that used by the Unix utility “sed”), or by using an APL function to express the transformation.
The paper will illustrate some possible examples of ⎕RX in use. In doing so it will consider character classes (such as “an alphabetic character”) which may be used in regular expressions, and invite further discussion on whether there could or should be additional classes specifically included in order to support searching APL source code.

Taking APL for a RIDE

Taking APL for a RIDE

John Daintree

The Dyalog Remote Integrated Development Environment (RIDE) is a new graphical development environment for all versions of Dyalog APL on all platforms - from Windows Mobile to the largest AIX “midframes” (and in the future also the new APL# interpreter). The RIDE allows you to connect to Dyalog session from almost any web browser on any client platform. The RIDE is a cornerstone of a strategy which is intended to take the portability of applications written in Dyalog APL “to the next level”.

Unifying Traditional Functions and D-Fns in APL#

Unifying Traditional Functions and D-Fns in APL#

John Scholes, Jonathan Manktelow, Morten Kromberg

APL systems provide a definition mechanism so that expressions may be collected into non-primitive or “user-defined” functions and operators: the traditional function or “T-Fn”.
In 1996, Dyalog introduced a purer direct-definition style, now referred to as a “D-Fn”, which was designed to fit better with the functional programming paradigm.
APL#, pronounced “APL Sharp”, is a new dialect of APL, which is aimed at the Microsoft.NET and similar “virtual machine” frameworks.
This paper details an attempt, in Dyalog's APL# project, to combine both “T-Fn” and “D-Fn” definition styles into a unified whole, which supports both the procedural and functional modes of programming.