What is Dyalog?
By using mathematically derived symbols, the APL notation upon which Dyalog is built enables users to write short and efficient programs. It is especially noted for its ability to generate vectors and matrices, as well as supporting higher dimensional arrays. APL is unique in putting the programming directly in the hands of non-programmers and giving them the opportunity to tailor their own solutions.
APL is particularly well suited for parallel programming and is widely used to analyse or process large amounts of data, especially within the financial and scientific fields.
A Language for Teaching and Communication
Kenneth E. Iverson developed the language in the late 1950s while working as a professor of mathematics at Harvard University. APL was originally intended as a tool to help him teach his students. When Iverson and colleagues at IBM subsequently implemented APL as a programming language in the 1960s, the nature of APL as a tool of thought and communication was preserved.
A Notation for Modelling and Specification
An APL program is a direct expression of the solution without a detailed description of how the computer should use loops or other low-level techniques to process it. APL can be described as a specification language for writing high-level models that can be executed immediately. For example, the APL expression to compute the mean of a list of numbers is:
(+/data) ÷ (≢data)
In English: The sum of the data (+/data) divided by the count of the number of elements (+/data) ÷ (≢data).
As a result, APL programs have a high semantic density – they are composed almost entirely of syntax elements that a subject matter expert can relate to as statements of the original problem. The concise nature of APL allows subject matter experts who are not software engineers to express solutions to problems within their field of expertise.
Dyalog vs. APL
Today, Dyalog is a multi-paradigm programming language that combines the original APL notation with modern language features, in particular a more strict form of functional programming and object-oriented programming. The additional features allow the APL notation to be used to create high-performance applications that integrate well with any IT infrastructure.
Bernard Legrand has written a superb, informal introduction entitled APL – a glimpse of heaven (printed in Vector, the journal of the British APL Association).