Welcome to Milinta's web site

Milinta is a software company located in Montreal, Canada.

We are familiar with the latest acronyms the industry comes up with but we mainly program applications.
We use any programming language but array languages like APL are the ones we specialize in. Which brings us to

A P L

APL is a multi-purposes interpreted language used worldwide. It was created a while back and has gone through intensive changes. First on mainframes, it is now also found on PCs running under such OS as Windows and Linux.

It is also used on servers. See here for an example of APL in action on the web or a search engine written in APL.
More info about APL can be found here.

Milinta offers software and education. Work can be done remotely or at the client's site.

You will find here a series of products Milinta offers. The directories are divided into major vendors. You can access the files individually by following the links.

For each APL you will the same basic utilities, namely

Other specific items, if any, will follow. For example, a code coverage workspace is available. This workspace was created after reading an article written by Bob Bernecky at APL98. It allows to see where code is and is not being used and takes in account all control structures. It has been used to test most of the code you see here, even itself.

Note that because APL vendors may change the way their monitoring system functions work, the code may fail under future versions. This applies to any code in general but more particularly to this case.

Another workspace contains a TIC-TAC-TOE game in 3 dimensions. This is a good example of tree searching techniques. To get a feel for the game click here to try a version written in Java (make sure your browser is Java enabled).

 

Transfer of APL workspaces from one vendor to another

The {notation} text is used to translate []AVs from one APL to the other. It is the basis for the workspace transfer programs. Under each APL is found a .txt file describing its []AV. This can be useful for people interested in doing their own translation.

Under each APL is also found a workspace to create and read transfer files.

The earlier APLs (APL/PC, SHARP for DOS) use a primitive version that does not account for all the new object types (Packages, nested arrays, namespaces, overlays). They also use a different syntax. They are compact to fit within earlier small workspaces.

The newer versions (APL/II, APL2000, Dyalog, SHARP APL) use a consistent syntax and make use of the latest enhancements (as of 2003). Files created by earlier versions CAN be read but not the other way around if new data types are involved. This goes also for namespaces. They can be recreated from within Dyalog but are meaningless in APL2000.

In all cases a form of code translation (ex: SHARP []read <--> Dyalog []fread) is available and can be turned on and customized in the later versions. Control structures are left untouched.

To find more about the transfer workspace read the documentation

 

Regular Expressions

Regular expressions tools have been created in APL to make use of the functions found in a GNU regular expressions DLL. That DLL for Windows © can be found here. The APL code is found under the appropriate APL.

With Dyalog’s version 11 it is easier to use .Net and a newer tool to search and replace Dyalog workspaces has been developed. See the Dyalog section for this particular tool.

 

Here are various APL products and their divisions:

 

There are also a series of articles that were written about APL. They can be found here, at the end.

Please note that revision to this code happens every once in a while. If you find that the version of a piece of code is unsuitable for you or, heaven forbid, you found a bug in it, then come back here and check the version you're using (usually found in a variable like 'Version') against the one offered on this site. If the version is higher chances are you'll find a better version. The version number of the code, if available, is displayed on the status line when hovering the mouse over the link. If your version or the new version does not do what you want let us know, maybe we can help anyhow. Just drop us a line (click the email icon below).
Also, some links will display the version of the APL under which the code was tested as a tag if you hover the cursor over the link. This may not work with all browsers.

*** WARNING: It has been found that some browsers will sometimes upload files translating []AV[10] into CR,LF which damages the files and renders them useless. Internet Explorer doesn't seem to have the same problem.

** IMPORTANT NOTE: All this material is free but you should read the terms and conditions before using it.
Your use of this software indicates your acceptance of this license agreement and warranty.

This page was last updated in 2007


Contact Information

You can reach us at (514) 529-0106 or toll free at (877) 645-4682 (within Canada only)

or Email us:

support at milinta.com

 

 

 

please enable browser's Javascript to use the Email Form tool.
Powered by

 

Copyright © 1999 forever, Milinta Inc
All Rights reserved.


Visitors to date is unknown!


APL courses

Milinta offers a series of courses in APL..

Most documents are in Win97 format (.doc). They were all written using the Word apl.dot template to produce APL characters in the ISIAPL.TTF font (also available here) by using Alt keys combinations. A Word97 version also exists and allows to translate ISIAPL to {ascii} notation and vice versa.


APL*PLUS PC (Version 11 minimum)


APL*PLUS II (Version 5.0 minimum)


APL+Win (Version 3.5 minimum)

 

Note that the user commands file is the same as for APL/II.


APLX (Version 1.04 minimum)


Dyalog APL (Version 8.1 minimum)

Jim Weigang's 'A2A' workspace is provided and also his Aplascii.dxf file.

The Tic-Tac-Toe game is also available here. This is the same workspace as the APL*PLUS version using Windows code instead. To see what it looks like click here for a version written in Java. The same game, can be run under a browser supporting PNG files. You'll need Dyadic's V8.2 and their server workspace to use it. Click here to see how it's done.


SHARP APL (Version 6.0.0 minimum for SAX, Rel.17 for SAM)

The workspaces here are in PC files to be used with SHARP APL under DOS with ".sam" extension or SHARP APL for Unix (also known as SAX) to be used under Linux with ".sw" extension. Under Linux remember to regain ownership of those files when copying them to your system.

Note that all the workspaces are available for the mainframe version of SHARP APL (SAM) but since the workspaces themselves cannot be made available here only their file transfer formats exist. This, of course, presumes that the transfer workspace itself already exist ON the mainframe. In case it doesn't one must use a 'bootstrap' function to bring in the transfer workspace (TSIO or an HDS108 equivalent program should be available there to do the transfer) by doing this:

1. upload this file to the mainframe WITHOUT translation in a clear workspace
2. do a "3 []fd" on the string just uploaded. This should create function <boot> in the workspace
3. upload the transfer workspace WITHOUT translation in a variable, say 'TW'
4. call <boot> with 'TW' as argument. This will create all the necessary code.
5. cleanup (erase your uploading code, <boot> and 'TW'?) and ")save xfrpc".

You can then download all the other workspaces directly from that workspace. Look at '^describe' for details.

Here is all the available code for SAPL:

 

In SAM/PC format

In SAX/Linux format

In file transfer format

A workspace/file transfer ws

Yes

Yes

Yes

A workspace/file comparison ws

Yes

Yes

Yes

Search/replace functions

Yes

Yes

Yes

Multiple Stasks interface

No

Yes

Yes

Code coverage

No

Yes

Yes

[]AV in ascii form

Yes

Yes

Yes

TTT3D game in line mode

No

No

Yes

User commands

No

Yes

Yes

Extra user commands

No

Yes

Yes

regular expression tools

No

Yes

No

NOTES:

The regular expression tools require some Intrinsic Function definitions to be defined. You can do that using the following <.saxif> and <regex.c> files.

The user commands main file should have its component 4 replaced by whatever is appropriate like "1 22{reshape}' youruserid ucmds'" (see APL2000 User commands documentation for details).
The 'stask' workspaces allow the use of "user commands" and assume a specific library holds the main "user command" file. Make sure to read the 'STdescribe' variable in the workspace and modify the code accordingly.

You can get SAX' interpreter for FREE at Soliton's site. At the moment it is supposed to run only under various flavors of Linux but some problems have been reported with the installation. We managed to get it going under Red Hat, SuSE and even under FreeBSD. See here if you want to know how.
You can get the older (SAM-like) PC interpreter at the Waterloo APL archives.
You can also get other interpreters there.


J

The scripts here are in text format (.ijs extension).
There are only those scripts so far:

 

Note that the graphics scripts must be loaded AFTER the line by line script which contains the core code.

Here's an example of a packaged J Windows application that performs flight calculations for pilots. It uses many features like sockets. It was created using the project manager and the runtime builder. This file will "unzip" itself where you want. Then use <setup> to install it. The executable .ijs file contains all comments.

 

Published Articles

The following articles appeared in :

A series of articles about SAX:

APL tools:

DanB 2007