About {keywords}:
APL-ASCII Transliteration


APL symbols, in general, can't be directly included in e-mail or netnews postings. They may be interpreted as control characters and get removed, or they may have a different appearance on the recipient's computer. For example, the code representing dieresis on your system may appear as an "fl" ligature on some systems or as an upside-down question mark on others. Only the standard printable ASCII characters (as shown on your keyboard) can be reliably transmitted and displayed on practically every type of computer/terminal. If you wish to imbed APL statements or programs in e-mail or news postings, you must represent the APL symbols using some kind of ASCII transliteration.

One way of doing this is by replacing APL symbols with keywords enclosed in braces, as in {iota}. The keyword can be either the character name or the function name, e.g. {rho}, {shape}, or {reshape}. Any commonly-used symbol or function name is acceptable; whatever you call the symbol is probably fine. This transliteration method has several advantages over alternative schemes:

  1. It is fairly obvious even to those who haven't seen it before. You don't need to look up keywords in a table to tell what's being said.

  2. The mapping from APL to ASCII is completely reversible. Any arbitrary text consisting of ASCII and standard APL symbols can be translated to ASCII and back to APL without loss or alteration. There are no reserved words or symbols. (The { and } symbols are transliterated as {leftbrace} and {rightbrace}.)

  3. The scheme recognizes that not everyone will want to use the same keyword for a given symbol (e.g., {decode} vs. {basevalue}). You can use whatever symbol or function name you are accustomed to.

Three especially common symbols may be represented as single ASCII characters: # for {quad}, @ for {lamp} (comment), and & for {diamond}. The {keyword} forms can be used instead if you wish. To keep the transliteration fully reversible, occurrences of #, @, and & in the original text become {#}, {@}, and {&} when transliterated.

You don't need a program to create or read this type of transliteration, but programs are available to do the job automatically. This is especially helpful when you are posting a lot of APL code. The programs are distributed in the APLASCII workspace. The workspace also contains programs that insert function listings into messages and define functions from listings in messages. Additional subroutines are provided for reading and writing messages to ASCII text files.

You can get the APLASCII workspace from:

ftp://archive.uwaterloo.ca/languages/apl/workspaces/aplascii/

Versions are available for many popular APL systems. See the readme file in this directory for more information.

For background information on transliteration, see the article "APL-ASCII Transliteration" in the March 1995 issue of APL Quote Quad (Vol. 25, No. 3).

Recent enhancements to the APLASCII workspace allow it to be used as a general-purpose workspace transfer facility. An entire workspace, including both programs and data, can be written to an ASCII file. That file can be transferred easily via an e-mail message or news posting, and read back into a different APL system. A paper describing these enhancements, entitled "APL-ASCII Workspace Transfer", has been submitted to APL Quote Quad. For basic instructions, see the item "Transferring Workspaces".


Home Page