Documentation Centre (19.0)

All our documentation is available as PDFs (a subset of online documentation is also available at help.dyalog.com). In addition, Bernard Legrand's Mastering Dyalog APL is available as a softback book, a PDF and an interactive online document.

Viewing Tips

.chm files

By default, Microsoft Windows blocks access to downloaded Compiled HTML Help (.chm) files. To enable access, right-click on each downloaded .chm file in Microsoft Windows explorer, select Properties from the drop-down menu and click Unblock.

Table of Contents

Unless otherwise mentioned, the documentation on this page is for Dyalog version 19.0 and components shipped with that release. For other versions, see the links at the end of the page.

For each document, a summary provides a brief description and a statement of the level of understanding expected from the reader. You can toggle the display of each individual summary, or for all documents at once:
Display all summaries Hide all summaries

NOTE: In all Dyalog documentation, the values of ⎕IO and ⎕ML are 1.

Core Documentation

These documents describe the details of the language and program construction; they are not specific to an operating system.

  • Dyalog APL Language Reference Guide (summary)

    This document details the individual elements that form the 'vocabulary' of the APL language. It explains every primitive function, primitive operator, system function, system variable, system command and error message in Dyalog.

    It is assumed that the reader has a reasonable understanding of mathematics.

  • Dyalog Programming Reference Guide (summary)

    This document details the syntax that forms the 'grammar' of the APL language. It describes the viable values that can be used in expressions and explains how the individual language elements can be manipulated through defined functions and operators, control structures and object oriented programming, as well as the way in which multi-threading can be implemented.

    It is assumed that the reader has a reasonable understanding of mathematics.


  • .NET Interface Guide (summary) NOTE: Dyalog Unicode edition only

    This document describes the Dyalog interface to Microsoft .NET, the cross-platform (Windows, Linux and macOS) successor to Microsoft's .NET Framework. It does not attempt to explain the features of .NET, except in terms of their APL interfaces.

    It is assumed that the reader is familiar with .NET and/or .NET Framework and has a basic understanding of OO methodologies.

  •        Comparison of .NET/.NET Framework Interfaces
  • Compiler User Guide (summary)

    This document is a complete guide to the compiler, which reduces interpreter overhead, and details the syntax and restrictions of its current implementation.

    It is assumed that the reader has a reasonable knowledge of Dyalog.

  • Parallel Language Features (summary)

    This document describes proposals for two new primitives, the function isolate and the monadic operator parallel, and a new type of array known as a future. These are designed to allow APL developers to take advantage of multiple processors to execute code in parallel.

    NOTE: Although this is only a model, the design is very close to being complete. All users with applications containing potential parallelism are encouraged to make use of this experimental implementation to help confirm the design and reveal any weaknesses that need to be worked on in the final implementation as part of the core language.

  • Shared Code Files User Guide (summary) NOTE: Dyalog Unicode edition only

    This document describes shared code files, which can improve the performance of large applications while reducing their memory consumption and initialisation time.

Microsoft Windows-Specific Documentation

These documents are specific to running Dyalog on the Microsoft Windows operating system.

  • Dyalog for Microsoft Windows Installation and Configuration Guide (summary)

    This document covers the installation procedure and configuration options for Dyalog on the Microsoft Windows operating system. It details the parameters that can be used to customise individual instances, the creation of executables and run-time applications, use of the command line and the Dyalog Dynamic Link Library, as well as describing the recovery process if a system error is encountered.

    It is assumed that the reader has a basic knowledge of Microsoft Windows and software terminology; a working knowledge of Dyalog is useful but not essential.

  • Dyalog for Microsoft Windows UI Guide (summary)

    This document introduces the Dyalog user interface. It describes the windows, menu options, built-in tools and customisation possibilities that are available when running Dyalog on the Microsoft Windows operating system and explains the programming techniques, file storage mechanisms, integrity checking features and error trapping concepts available with Dyalog.

    It is assumed that the reader has a basic understanding of software terminology.

  • Dyalog for Microsoft Windows Object Reference Guide (summary)

    This document describes the complete set of objects, properties, events and methods through which Dyalog supports the creation of a Graphical User Interface. This document should be read in conjunction with the Dyalog for Microsoft Windows Interfaces Guide.

  • Dyalog for Microsoft Windows Interfaces Guide (summary)

    This document describes various interfaces between Dyalog and Microsoft Windows, including the Multiple Document Interface (MDI) and docking, the Component Object Model (COM) interface and other Microsoft Windows applications. It also describes the underlying concepts, implementation rules and graphical resources available when creating a user interface using Dyalog. This document should be read in conjunction with the Dyalog for Microsoft Windows Object Reference Guide.

  • Dyalog for Microsoft Windows .NET Framework Interface Guide (summary)

    This document describes the Dyalog interface to the Microsoft .NET Framework. The information provided in this document does not explain the features of the .NET Framework but concentrates on explaining the APL interfaces that sit between the .NET Framework and the APL Session.

    It is assumed that the reader has is familiar with the .NET Framework and has a basic understanding of OO methodologies.

  •        Comparison of .NET Framework/.NET Interfaces

UNIX-Specific Documentation

These documents are specific to running Dyalog on various UNIX platforms, for example, AIX or Linux distributions.

  • Dyalog for UNIX Installation and Configuration Guide (summary)

    This document covers the installation procedure and configuration options for Dyalog on a UNIX platform. It details the environment variables that can be used to customise individual instances, the requirements for using the PuTTY terminal emulator and the upgrade and uninstall procedures.

    It is assumed that the reader has a basic knowledge of UNIX and software terminology; a working knowledge of Dyalog is useful but not essential.

  • Dyalog for UNIX UI Guide (summary)

    This document describes the different input windows available and the keystrokes that can be used within them, how commands can be entered and the (configurable) keycode-keystroke mappings.

    It is assumed that the reader has a basic knowledge of UNIX.

  • Dyalog for Raspberry Pi User Guide (summary)

    This document is intended for anyone who wants to run Dyalog on a Raspberry Pi. The information provided in this document supplements that given in the Dyalog for UNIX Installation and Configuration Guide and the Dyalog for UNIX User Guide. In cases where the information given is different between these documents, this document should be regarded as the definitive source for Dyalog on the Raspberry Pi.

    It is assumed that the reader has a basic understanding of Linux on the Raspberry Pi. No prior knowledge of Dyalog is required.

macOS-Specific Documentation

These documents are specific to running Dyalog on the macOS operating system.

  • Dyalog for macOS Installation and Configuration Guide (summary)

    This document covers the installation procedure and configuration options for Dyalog on macOS. It details the pre-requisites for installation and the configuration parameters that can be used to customise individual instances.

    It is assumed that the reader has a basic knowledge of macOS and software terminology; no prior knowledge of Dyalog is required.

  • Dyalog for macOS UI Guide (summary)

    This document summarises starting Dyalog with either RIDE or the TTY interface.

Tools Documentation

The tools described by these documents can be used to supplement Dyalog's core functionality; they can enable a developer to produce code more efficiently, provide an interface to other software/platforms or be integrated and deployed in an application.

  • Conga User Guide (summary)

    This document is a complete guide to Conga, Dyalog's framework for TCP/IP communications. It describes the tools with which Conga can be used to create a variety of clients and servers using protocols based on TCP/IP, including HTTP, HTTPS, FTP, Telnet and SMTP. It covers Conga support for secure communications (using SSL/TLS) and communication between APL processes (allowing them to exchange native APL data directly). It also introduces the Conga workspace, which includes a comprehensive collection of samples showing the implementation of various types of servers and clients, and contains a technical reference of the namespaces, classes and functions provided with Conga.

    It is assumed that the reader has a reasonable understanding of server-client connection protocols; a working knowledge of the relevant protocol (for example, HTTP, FTP or SMTP) is needed to understand the samples provided with the Conga workspace.

  • HTMLRenderer User Guide (summary) – also available as a web document to facilitate copying example code)

    This document describes the HTMLRenderer object, a cross-platform mechanism for producing Graphical User Interfaces (GUI) based on HyperText Markup Language (HTML). It describes the properties and events associated with the HTMLRenderer object and provides some simple examples and debugging advice.

    It is assumed that the reader has a working knowledge of Dyalog objects and HTML. Knowledge of CSS and JavaScript is useful but not essential.

  • HttpCommand User Guide (summary)

    This document is a complete guide to HttpCommand, a utility that makes it easy for the APL user to send HTTP requests to servers and process the resultant HTTP responses. It describes how to load HttpCommand and how to send HTTP requests and manage the responses, as well as covering using HTTPS for secure communication and dealing with proxy servers.

    It is assumed that the reader has a basic knowledge of the HTTP protocol and reasonable understanding of Dyalog.

  • Link User Guide (summary)
  • RIDE User Guide (summary)

    This document is a complete guide to RIDE, a cross-platform integrated development environmnent. It describes the installation process and RIDE's user interface (windows, menus, customisation options, keycode/keystroke mappings, and so on).

  • SALT User Guide (summary)

    This document is a complete guide to SALT – the Simple APL Library Toolkit – and explains its functions, their syntax, modifiers and modifier values.

    NOTE: Dyalog Ltd expects that Link will replace SALT as the mechanism for managing APL source code and recommends migrating from SALT to Link as soon as is convenient to do so. For more information, see the Link User Guide

  • SAWS User Guide (summary)

    This document is a complete guide to SAWS, the Stand-Alone Web Service framework that facilitates the sharing of functionality developed in Dyalog using Web Services and enables the integration of functionality from external Web Services into an APL application. It describes how SAWS can be used to build and run a Web Service that can then be shared over a local network, intranet or the Internet. It also covers the way in which SAWS can be integrated with an application and explains the namespaces, functions and common data structures provided with SAWS.

    It is assumed that the reader has a basic knowledge of Web Services.

  • SharpLeaf User Guide (summary)

    This document is a complete guide to SharpLeaf, the frame-based publishing tool that enables high-quality printed output to be generated from simple APL arrays. It details the user interface, syntax and page design elements that combine to allow complete customisation of the output and includes a tutorial that walks through the process of constructing progressively more sophisticated tables. It also explains the namespaces, objects and properties supplied with the SharpLeaf workspace.

  • SharpPlot User Guide (summary)

    This document is a complete guide to SharpPlot, the charting software engine that brings true publication-quality graphics to your application. It covers the generation of all the different chart types that can be produced along with the properties and methods that can be used to customise them.

    It is assumed that the reader has a reasonable understanding of the .NET bridge.

  • SQL Interface Guide (summary)

    This document is a complete guide to SQAPL, the interface between APL and database drivers that conform to the Microsoft ODBC specification. It describes the way in which SQAPL can be integrated with an application, details the objects and data types supported by SQAPL and explains the functions (both high-level and low-level) provided with SQAPL.

    It is assumed that the reader has a reasonable understanding of SQL.

  • User Commands User Guide (summary)

    This document is a complete guide to user commands. It describes how to create and implement new user commands and how to find information on the user commands supplied with Dyalog.


  • APL As A Shared Library (summary)

    This document describes the API that can be used to call APL code as a shared library (that is, .dll, .so, and .dylib files). It describes the SDK to create such a shared library and includes samples showing how it can be called.

    It is assumed that the reader has a working knowledge of the C programming language. Awareness of Dyalog's "Direct Workspace Access" SDK is beneficial but not essential.

  • APL Workspace Transfer Guide (summary)

    This document describes the steps that are involved in moving code and data, either from a different dialect of APL to Dyalog or from one version of Dyalog to an earlier version. It also provides examples of importing workspaces created in APL2, APLX or APL+Win into Dyalog.

    It is assumed that the reader has a reasonable understanding of Dyalog and, if a migration is being performed from another dialect of APL, a reasonable understanding of that dialect of APL.

  • Application Tuning Guide (summary)

    This document describes the way in which the ⎕PROFILE system function and the associated ]PROFILE user command can be used to obtain a performance profile of an application. It describes both the graphical and textual output that can be obtained following data collection and shows how this data can be analysed and potential inefficiencies identified.

  • Code Libraries Reference Guide (summary)

    This document describes the workspaces, scripts and DLLs that are supplied with Dyalog.

  • The JSON_APL Shared Object (summary)

    This document describes the JSON_APL shared object, which allows a user to execute APL statements in the Dyalog interpreter from any programming language that can access shared objects. This is a specific example of more general tools for wrapping APL applications as shared libraries; for more information see APL as a Shared library.

    It is assumed that the reader has a working knowledge of the APL application to be called, the mechanisms used by the client language to make calls to shared libraries (typically called the "foreign function interface"), and how to create and use JSON strings in that environment.

Cheat Sheets

These short documents comprise brief summaries of some of the terminology, syntax and conventions used in Dyalog.

  • Nomenclature: Functions and Operators
  • Component Files
  • Native Files
  • Idioms
  • I-Beams
  • Nameclasses and Subclasses (⎕NC)
  • Binding Strengths
  • SALT Functions: Syntax

Release Notes

These documents cover the changes made to Dyalog and some of its supported tools since the release of Dyalog version 18.2.

  • Dyalog Version 19.0 Release Notes (summary)
    This document describes the changes and new features in Dyalog version 19.0 compared with Dyalog version 18.2.
  • Dyalog Version 19.0 readme (summary)
    This document includes information on open issues and recent fixes in Dyalog version 19.0.
  • Dyalog Version 19.0 installation readme (summary)
    This document includes information that might affect the installation of Dyalog version 19.0.

Interactive Documentation

This file allows a subset of the documentation to be downloaded and viewed off-line as a Help document (see the viewing tips for information on accessing a .chm file.

  • a subset of the documentation – help.dyalog.com
  • Offline version of the online documentation subset (Microsoft Windows only)

Miscellaneous

    • Complete documentation set (pdfs only)
    • Subset of the documentation pdfs formatted for printing with monochrome colour scheme

Previous Versions

This section contains links to the documentation for all versions of Dyalog since version 12.0.