Documentation Centre (18.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
.pdf files
Viewing PDF files requires Adobe Reader.
.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 18.0 and components shipped with that release. For other versions, see the links at the end of the page.
- Core Documentation
- Microsoft Windows-Specific Documentation
- UNIX-Specific Documentation
- macOS-Specific Documentation
- Tools Documentation
- Cheat Sheets
- Release Notes
- Online Help
- Miscellaneous
- Previous Versions
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 both mathematics and Dyalog.
- 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 both mathematics and Dyalog.
- .NET Core Interface Guide (summary) NOTE: Dyalog Unicode edition only
This document describes the Dyalog interface to Microsoft .NET Core, the cross-platform (Windows, Linux and macOS) successor to Microsoft's .NET Framework. It does not attempt to explain the features of .NET Core, except in terms of their APL interfaces.
It is assumed that the reader has a working knowledge of Dyalog, familiarity with .NET Core and/or .NET Framework and a basic understanding of OO methodologies.
- Comparison of .NET Core/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, introduced with Dyalog version 14.1 for the purpose of improving the performance of large applications while reducing their memory consumption and initialisation time.
NOTE: The functionality and behaviour of shared code files has not yet been finalised and is subject to change by Dyalog Ltd at any 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 and a reasonable knowledge of Dyalog.
- 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.
It is assumed that the reader has a reasonable knowledge of Dyalog.
- 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.
It is assumed that the reader has a reasonable knowledge of Dyalog.
- 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 a working knowledge of Dyalog, familiarity with the .NET Framework and a basic understanding of OO methodologies.
- Comparison of .NET Framework/Core 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 and a working knowledge of Dyalog.
- 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 introduces the Dyalog development environment (user interface). It describes the windows, menus and customisation options that are available as well as the keycode-keystroke mappings that can be used within the different input windows.
It is assumed that the reader has a basic knowledge of macOS and a working knowledge of Dyalog.
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 Dyalog and server-client connection protocols; a working knowledge of HTTP/FTP/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.
NOTE: The functionality and behaviour of the HTML Renderer has not yet been finalised and is subject to change by Dyalog Ltd at any time.
- R Interface Guide (summary)
This document is a complete guide to RConnect, the interface between Dyalog and R, the integrated programming language and software environment for statistical computing and graphics. It explains how RConnect makes the R environment an extension of the active APL workspace, enabling APL users to extend APL applications by either utilising existing R skills or acquiring new skills and making use of the large – and rapidly expanding – collection of statistical and analytical packages that are continuously being added to R.
It is assumed that the reader has a reasonable understanding of Dyalog. No prior knowledge of R is required.
- RIDE User Guide (summary)
This document is a complete guide to the Remote Integrated Development Environment (RIDE). It describes the installation process and the RIDE's user interface (windows, menus, customisation options, keycode/keystroke mappings, etc.).
It is assumed that the reader has a working knowledge of Dyalog.
- 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.
It is assumed that the reader has a reasonable understanding of Dyalog.
- 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 and a reasonable understanding of Dyalog.
- 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.
It is assumed that the reader has a reasonable understanding of Dyalog.
- SharpPlot User Guide ( )
- 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 both SQL and Dyalog.
- 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 provides a summary of the user commands supplied with Dyalog.
It is assumed that the reader has a reasonable understanding of 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 Dyalog and 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.
It is assumed that the reader has a reasonable understanding of Dyalog.
- Code Libraries Reference Guide (summary)
This document describes the workspaces, scripts and DLLs that are supplied with Dyalog.
It is assumed that the reader has a reasonable understanding of 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 Dyalog, 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 first release of Dyalog version 17.1.
- Dyalog Version 18.0 Release Notes (summary)
This document describes the changes and new features in Dyalog version 18.0 compared with Dyalog version 17.1.
- Dyalog Version 18.0 readme (summary)
This document includes information on open issues and recent fixes in Dyalog version 18.0.
Online 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
- Subset of the documentation available to purchase as printed and bound manuals
Previous Versions
This section contains links to the documentation for all versions of Dyalog since version 12.0.
- Documentation for supported versions: 17.1, 17.0
- Online documentation for supported versions: 17.1, 17.0
- Documentation for unsupported versions: 16.0, 15.0, 14.1, 14.0, 13.2, 13.1, 13.0, 12.1, 12.0
- Online documentation for unsupported versions: 16.0, 15.0, 14.1, 14.0, 13.2, 13.1, 13.0, 12.1, 12.0
- Release Notes for previous versions (PDFs): 17.1, 17.0, 16.0, 15.0, 14.1, 14.0, 13.2, 13.1, 13.0, 12.1, 12.0
- Retired documentation: documents (or the functionality that they refer to) that have been deprecated