Need help selecting your licence?
Unsure which Dyalog licence suits your needs? Our guided questionnaire will help you determine the most appropriate licence based on your intended use. Whether for personal learning, research, or commercial development, we’ll help you to make an informed choice.
We are constantly seeking talented individuals to join our team.
Aaron Hsu explains what the APL programming language offers and outlines some of its key benefits.
Concise, Expressive, Array-Centric
What is APL and what are its Benefits?
APL is an array-oriented programming language. Its natural, concise syntax lets you develop shorter programs while thinking more about the problem you’re trying to solve than how to express it to a computer.
APL uses its own character set rather than reserved words written out in English like most other languages, like C or Python. As a language, APL sits at a very high level of abstraction, making it well suited to concise formulations of algorithms.
Example: User-Based Run-Time Licences
When several users use one or more applications on a shared server, a Run-Time Licence is required. Examples of this are applications that are running under Citrix or similar platforms, Web Servers, servers using Distributed COM or other transactional platforms. The minimum server configuration is for 20 users.
Run-Time Licences are inclusive of all necessary Licences. If, for example, an application allows 20 desktop users to share data on the server, a Run-Time Licence for 20 users includes all relevant fees for desktop users and server.
For Facility Management Applications, where an organisation is running a service on behalf of several client organisations, appropriate Run-Time Licences are required for each distinct customer organisation.
These Run-Time Licences are priced on a per user basis. If it is not possible to determine the number of users (for example, an application within in a container or virtual machine) an alternative Use-Based Run-Time Licence or Royalty-Based Run-Time Licence could be used.
Example: Cloud-Based Run-Time Licences
When several users use one or more applications running in the cloud, a Run-Time Licence is required.
Examples could be:
- a service where an application, that runs in the cloud, provides services available to users for a fraction of the working year (for example, applications running Jarvis or MiServer)
- use of internal or external cloud resources to accelerate or automate the execution of a workflow on behalf of a controlling process, but without providing a service that other users could connect to or receive data from. Examples include the use of isolate servers running in the cloud for parallel computation, or the execution of continuous integration tasks on the cloud.
For cloud-based deployment of applications, our default pricing is that you pay Dyalog Ltd the same amount as you pay your cloud provider for the computing resources to run Dyalog in the cloud. If those costs are not easily identifiable – please e-mail Dyalog Ltd to discuss pricing.
Usage Example: Cloud-Based Run-Time Licences
When several users use one or more applications running in the cloud, a Run-Time Licence is required.
Examples could be:
- a service where an application, that runs in the cloud, provides services available to users for a fraction of the working year (for example, applications running Jarvis or MiServer)
- use of internal or external cloud resources to accelerate or automate the execution of a workflow on behalf of a controlling process, but without providing a service that other users could connect to or receive data from. Examples include the use of isolate servers running in the cloud for parallel computation, or the execution of continuous integration tasks on the cloud.
For cloud-based deployment of applications, our default pricing is that you pay Dyalog Ltd the same amount as you pay your cloud provider for the computing resources to run Dyalog in the cloud. If those costs are not easily identifiable – please e-mail Dyalog Ltd to discuss pricing.
When is a Cloud-Based Run-time Licence required?
A Cloud-Based Run-time Licence is required when several users use one or more applications running in the cloud.
What types of cloud use are covered?
Examples include:
A service where an application that runs in the cloud provides services to users for a fraction of the working year (e.g. applications using Jarvis or MiServer)
The use of internal or external cloud resources to accelerate or automate the execution of a workflow on behalf of a controlling process, without providing a service that other users can connect to or receive data from—such as isolate servers used for parallel computation or the execution of continuous integration tasks in the cloud.
How is a Cloud-Based Run-time Licence priced?
By default, Dyalog Ltd charges the same amount as you pay your cloud provider for the computing resources used to run Dyalog in the cloud.
What if my cloud usage costs aren’t clear?
If the cloud usage costs are not easily identifiable, you should contact us to discuss pricing. We’ll work with you to agree on a metric that can be used to determine a fair price structure.
User-Based Run-Time Licences | Annual Cost |
|---|---|
Up to 20 users | £1,125 |
Up to 50 users | £2,250 |
Up to 100 users | £3,750 |
Up to 250 users | £6,000 |
Up to 500 users | £9,750 |
500 or more users | Contact Sales |
Cloud-Based Run-time Licences FAQ
When is a Cloud-Based Run-time Licence required?
A Cloud-Based Run-time Licence is required when several users use one or more applications running in the cloud.
What types of cloud use are covered?
Examples include:
A service where an application that runs in the cloud provides services to users for a fraction of the working year (e.g. applications using Jarvis or MiServer)
The use of internal or external cloud resources to accelerate or automate the execution of a workflow on behalf of a controlling process, without providing a service that other users can connect to or receive data from—such as isolate servers used for parallel computation or the execution of continuous integration tasks in the cloud.
How is a Cloud-Based Run-time Licence priced?
By default, Dyalog Ltd charges the same amount as you pay your cloud provider for the computing resources used to run Dyalog in the cloud.
What if my cloud usage costs aren’t clear?
If the cloud usage costs are not easily identifiable, you should contact us to discuss pricing. We’ll work with you to agree on a metric that can be used to determine a fair price structure.
User-Based Run-time Licences FAQ
When do I need a User-Based Run-time Licence?
A User-Based Run-time Licence is required when several users use one or more applications on a shared server. This includes applications running under Citrix or similar platforms, web servers, or servers using Distributed COM or other transactional platforms. The minimum configuration is for 20 users.
What does a User-Based Run-time Licence include?
The licence is inclusive of all necessary components. For example, if an application allows 20 desktop users to share data on the server, a Run-time Licence for 20 users includes all relevant fees for both the desktop users and the server.
How are User-Based Run-time Licences priced?
These licences are priced on a per-user basis. If it is not possible to determine the number of users—such as in a container or virtual machine—you may need a Cloud-Based or Royalty-Based Run-time Licence instead.
What if I’m providing services to multiple clients?
For Facility Management Applications—where an organisation runs a service on behalf of several client organisations—appropriate User-Based Run-time Licences are required for each distinct customer organisation.
Getting Help
The ]Help user command opens the online documentation.
]Help followed by a symbol, user command, or I-beam. opens the online documentation page for it. In the Microsoft Windows IDE or RIDE, place the cursor on a symbol or other built-in and press F1 to open the documentation page for it.
Editing
)ED to learn how to quickly create new items of various types. )ED "file:///path/file.ext" lets you edit plain-text files. 2⎕FIX'/path/file.ext'. Debugging and Meta Information
⎕JSON⍠'Compact'0⊢⎕DMX. 'tc'⎕CY'dfns' and then insert tc to the right of any function that you want to inspect. The Language Bar
Shortcuts
Many in-built functionalities have neither menu items nor keyboard shortcuts assigned by default. To configure keyboard short-cuts, go to Options > Configure> Keyboard Shortcuts in the Microsoft Windows IDE or click the keyboard icon (⌨) in Ride.
Restore Ctrl key Functionality
If your input method does not use Ctrl as an APL shifting key (see Typing APL), you might want to set keyboard shortcuts that use Ctrl similarly to those in many text editors and word processing applications.
Shortcuts are denoted by two letter codes. In Dyalog for Microsoft Windows, the shortcuts can be retrieved using the ⎕KL system function. In the menu bar, go to Options → Configure and go to the Keyboard Shortcuts tab. From there, click on a row in the shortcuts table and type the desired keyboard shortcut to set it.
– Set SA to Ctrl+A to select all text in the session, edit and trace windows
– Set SC to Ctrl+F to search through the session log (use ]Locate or Tools → Search to search through code)
– Set FX to Ctrl+S to save changes in the editor without closing it
– Set CP to Ctrl+C to copy selected text to the clipboard
– Set CT to Ctrl+X to cut selected text to the clipboard
– Set PT to Ctrl+V to paste from the clipboard
– Ctrl+Z and Ctrl+Y can be set to BK and FD to undo and redo changes made in the editor; be aware that they are the same shortcut codes for scrolling backwards and forwards through input history and their defaults are often referenced in tutorials. Skipping over a line of code in the tracer uses the FD shortcut
If you use the Dyalog IME for Microsoft Windows, you can still use Ctrl+X, C and V for Cut, Copy and Paste. Start Dyalog, open the Options menu and select Configure. Then, in the Unicode Input tab select Dyalog APL IME from the dropdown menu and click on Configure Layout. Ensure that Use Ctrl+X, C, V for clipboard is selected and click OK.
Display Forms
- In the Microsoft Windows IDE: Session > Save.
- Within any Dyalog Session:
2⎕NQ⎕SE'FileWrite'.
]Rows on -fold=3 will let you scroll horizontally and trim large outputs so that they don’t flood your screen vertically. Boxing
]Box on
Was OFF
⍳2 3
┌───┬───┬───┐
│1 1│1 2│1 3│
├───┼───┼───┤
│2 1│2 2│2 3│
└───┴───┴───┘ With the trains modifier, you can display function trains with a tree structure:
]Box -trains=tree
Was -trains=box
+⌿÷≢
┌─┼─┐
⌿ ÷ ≢
┌─┘
+ With the fns modifier, nested arrays will have boxed display even if they are printed to the session from within functions:
PrintShape←{⍴⎕←⍵}
PrintShape ⍳1 3
1 1 1 2 1 3
1 3
]Box -fns=on
Was -fns=off
PrintShape ⍳1 3
┌───┬───┬───┐
│1 1│1 2│1 3│
└───┴───┴───┘
1 3 style modifier you can get a more verbose view, including hints for axes and data types:
]Box -style=max
┌→─────────────┐
│Was -style=min│
└──────────────┘
⊂'APL'
┌───────┐
│ ┌→──┐ │
│ │APL│ │
│ └───┘ │
└∊──────┘ ]Box -?? Quick Utilities
]Map displays the content and structure of your workspace.
]Plot <data> draws simple graphs of your data (see Plot -?? for details). ]Open <filename> opens a file in its default application. ]CD <dir> lets you change directory from inside an APL Session.
]<Command> -?. ⎕SE.Dyalog.Utils.repObj <myArray> to generate an expression for (almost) any given array. - In the Microsoft Windows IDE, go to Tools > Explorer.
- In Ride (the default interface on macOS, optional interface on other platforms), go to View > Show Workspace Explorer.