APLX
APLX64
News
Version 5 Features
Development
GUI Programming
Language
Learning APL
Documentation
Online Help
Downloads
Technical Support
APLX Forum
Community
Buy APLX
|
(Unless otherwise noted, all information on this page applies both to APLX and to APLX64.)
APL2 Language Compatibility
APLX conforms closely to IBM's APL2 second
generation extension to the base ISO APL specification. The primitive
functions and operators included in the language range from simple
arithmetical, relational and logical functions through to advanced
functions like matrix inversion. APLX supports simple,
mixed (character and numeric), and nested (arrays of arrays) arrays
together with a range of functions required for their manipulation, in a form which is highly compatible with APL2. The APL2 compliant extensions include:
- Enclose and Disclose (with axis)
- Partition (with axis)
- Pick
- Enlist
- Find
- Without
- Index function
- Take/Drop with Axis
- Axis operator on scalar functions
- Format-by-example
- Selective and multiple specification
- N-wise reduction
- User-defined operators
- APL2 compatible system functions and system commands
including
)IN )OUT and indirect )COPY
Object-Oriented Programming
APLX Version 4.0 includes major language enhancements to support object-oriented programming.
- Support for object-oriented programming with user-defined APL classes
- Support for object-oriented programming using external classes written in the
.Net languages (C#, Visual Basic, etc), Java, and Ruby, using natural dotnotation
syntax
- Extensible interface for other object-oriented languages such as C++
- Internal APL classes can be created and managed using the APLX Class Editor.
APLX special features
As well as closely following the core APL2 standard for the APL
language, APLX includes a number of features designed
to enhance the facilities available to the programmer. These include:
- Structured control keywords for flow control, e.g.
:If ,
:While , :Select , etc
- Support for double quote string delimiter, e.g.
"It's true"
equivalent to 'It''s true'
- Three complementary suites of errors handlers, For new applications, we recommend the use of the :Try..:CatchIf..:EndTry keywords. For compatibility with older APL systems, APLX implements the
statement-level handlers defined in the APL2 specification as well
as the APL.68000-style function-level error handlers.
- A built-in component file system with facilities to read,
write, insert and delete APL objects of any type and size together
with multi-user access controls including file and record locking.
- (New in Version 2) Second component file system based on Quad-FTIE, Quad-FCREATE etc for compatibility with other APL interpreters, enhanced to allow insertion/deletion of components anywhere in the file.
- (New in Version 2) Quad-VI and Quad-FI for character-to-numeric conversion.
- (New in Version 3) Quad-SQL for database and ODBC access.
- In-built Quad-DISPLAY function
- 'Overlays' which allow functions, operators and variables to
be combined into a single package that can be filed as a single
entity.
- Extensive system functions - APLX includes a rich set of system
functions which have proved to be the ones that users actually
need - fast string search/replace including regular-expression searching; delimited vector to matrix
conversion; user configuration of date and time formats, and
formatting functions.
- Built-in native file handling
- (New in Version 4) Quad-IMPORT and Quad-EXPORT for exchanging data with Excel, Word, and many other applications.
- Auxiliary processor interface - allows you to extend the functionality of APLX by writing in C
- Quad-NA system-function for external function calls to shared libraries and the operating system
- Quad-WI system-function for object-oriented programming of the user interface (not implemented in APLX Server Editions)
Workspace Portability
All 32-bit versions of APLX share the same workspace layout. This means that workspaces saved on any platform can be loaded on any other, and can share component files. Where the two systems use different byte-ordering conventions, APLX transparently converts between them. Existing APL.68000 and APL Level II workspaces can also be loaded directly (APLX automatically converts them to the new format).
APLX64 uses a different workspace format, but it can load 32-bit APLX workspaces and convert them to 64-bit form transparently. Component files can be shared with 32-bit APLX implementations.
Transfer files produced using )OUT under IBM's APL2 and other APL interpreters can be imported directly into APLX or APLX64 using )IN.
System Limits
Numeric range
|
-1.79E308 to +1.79E308
|
Workspace size
|
APLX: 2GB max
APLX64: 8,589,934,592 GB max
|
Max variable size
|
APLX: 2GB
APLX64: 8,589,934,592 GB
|
Max rank
|
63 (8 in Version 1.1)
|
Max depth
|
100
|
Max name length
|
30 characters
|
Max function line
|
65535 bytes (tokenized)
|
Max symbols
|
32,000
|
Max print precision
|
15
|
Min print width
|
40
|
Max print width
|
390
|
Data types
Boolean
|
1 bit per element
|
Integer
|
APLX: 32 bits per element
APLX64: 64 bits per element
|
Real
|
64-bit IEEE double precision
|
Character
|
8 bits per element
|
See the APLX Language Reference Manual (PDF Format, 2.9MB) for more information.
|