Newsgroups: comp.lang.apl
Path: watmath!watserv2.uwaterloo.ca!torn!utnut!cs.utexas.edu!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!The-Star.honeywell.com!umn.edu!csus.edu!sfsuvax1.sfsu.edu!emclean
From: emclean@sfsuvax1.sfsu.edu (Emmett McLean)
Subject: J FAQ
Message-ID: <1993Mar16.085411.25696@csus.edu>
Sender: news@csus.edu
Organization: San Francisco State University
References: <9303160330.AB15617@unb.ca> <1993Mar16.084512.25167@csus.edu>
Date: Tue, 16 Mar 1993 08:54:11 GMT
Lines: 154

===================================================================
1.    What's J?
2.    Where can I ftp to get it?
3.    What publications are available ? And how much do they cost ?
4.    What are the copyrights ?
5.    Is there an instruction set I can peruse?
===================================================================

1.    What's J?

     J is a functional shareware programming language  
     available via anonymous ftp at watserv1.waterloo.edu.

     J was designed and developed by Ken Iverson and Roger Hui.
     It is similar to the language APL, departing from APL in using
     using the ASCII alphabet exclusively, but employing a spelling
     scheme that retains the advantages of the special alphabet 
     required by APL. It has added features and control structures 
     that extend its power beyond standard APL.  Although it can be 
     used as a conventional procedural programming language, it can 
     also be used as a pure functional programming language. 

     Features include list-at-a-time processing, arrays of arrays,
     complex numbers, special features for multiplying polynomials,
     manipulating sets and generating permutations.  Although it
     provides support for numerical modeling it is not a numerical
     modeling package.  It is a general purpose programming language.

     J is very portable and runs on : Acorn Archimedes, AT&T 3B1,
     Apple Macintosh family, Atari ST, DECstation (MIPS-based),
     DEC VAX (ULTRIX & BSD), Interactive 386/ix, IBM RISC/6000,
     IBM PC family, MIPS R3000, NeXT, Philips P9070, Silicon
     Graphics SGI Irix, Sun 3, Sun 386i, Sun 4 (SPARC), and HP95.

     If you are programming in an UNIX environment, you may wish to
     run J under j-interation-mode.el in Emacs which you can find in 
     the archive at "think.com".

     If you are programming under WINDOWS on the IBM PC, J you can 
     create graphical user interfaces with windows, buttons, menus, 
     and combo boxes. This is documented in the on-line help. 
     
     It is possible to call C from J and J from C .
 
     There are some example programs at waterloo also. 

2.   Where can I ftp to get it?

     If you want an executable version cd into
     "languages/apl/j/exec/*"

     If you want to look at or compile the source cd into :
     "languages/apl/j/source"

     Sometimes the source has a more recent version. 
     To compile you must set the variable SYS in js.h to set your system.
     Set SYS_DOUBLE to one unless when you enter a numeric vector you
     get a core dump. If this occurs set it to zero.

3.   What publications are available ? And how much do they cost ?

     Documentation is available from :

     Iversion Software Inc
     33 Major Street,
     Toronto, Ontario, M5S 2K9
     Phone : (416)-925-6096
     FAX   : (416)-488-7559

     The prices below are in $US. $CDN at par.
     {DISCOUNTS: 50% for 20 or more copies of any one item;
                 25% for 10 or more.
      BOOKSTORES: 50% discount}

     For $24 + postage ($10 North America , $20 Overseas) you get :

       "A Dictionary of J" a comprehensive definitions of commands 
        including a tutorial and ,
       "An Introduction to J" a 45 page adumbration of the language,
        A 3.5 DD inch system diskette of J is also provided.


     ISI also sells :
 
     "Programming in J" - $15 - A general introduction to programming.
 
     "Calculus" - $25 - This monograph is broader than that found in
     other publications embracing differential, difference, fractional,
     and vector calculus.  Such breadth is achievable in small compass
     not only because of the adoption of informality, but because of the
     executable notation employed.  In particular, vector calculus 
     (including div, grad, and curl) is easily treated because of the 
     array nature of the notation.

     "An Implementation of J" - $90 - Comprehensive explanation of the
     source code and information about LinkJ, the utility by which
     C is called from J and J called from C.

4.   What are the copyrights?

     Printed ISI documentation is copyrighted.

     ISI software is copyrighted and is provided under license "as is"
     without warranty of any kind. ISI SHAREWARE is licensed with 
     permission to use and distribute copies.

     Software not explicitly indicated as ISI SHAREWARE is licensed
     "like a book" in that it can be used by different people on
     different machines as long as there is no possibility that copies 
     can be used simultaneously.

5.    Is there an instruction set I can peruse?
+---------------------------+------------------------+-----------------------+
| Language Summary          | Iverson Software       |                       |
+---------------------------+------------------------+-----------------------+
|                           |.                       |:                      |
+---------------------------+------------------------+-----------------------+
| = SelfClassify Equal      | IsLocal                |Is(Global)             |
| < Box          LessThan   | Floor       LesserOf   |Decrem       LessOrEq  |
| > Open         LargerThan | Ceiling     LargerOf   |Increm       LargerOrEq|
| _ NegativeSign_Infinity   | Indeterminate          |Infinity               |
| + Conjugate    Plus       | Real_Imag   GCD_Or     |Double       NotOr     |
| * Signum       Times      | Polar       LCM_And    |Square       NotAnd    |
| - Negate       Minus      | Not         Less       |Half         Match     |
| % Reciprocal   Divide     | MatrixInv   MatDivide  |SquareRoot   Root      |
| ^ Exponential  Power      | NatLog      Log        |Power        Chain     |
| $ ShapeOf      Shape      | Suite                  |SelfReference          |
| ~ Evoke        Reflex     | Nub                    |NubSieve     NotEq     |
| | Mangnitude   Residue    | Reverse     Rotate     |Transpose              |
| . Dot          DotProduct | Even                   |                       |
| : ExplicitDefinition      | Obverse                |Adverse                |
| , Ravel        AppendItems| RavelItems  Append     |Itemize      Laminate  |
| ; Raze         Link       | Cut                    |WordFormation          |
| # Tally        Copy       | Base2       Base       |Antibase2    Antibase  |
| ! Factorial    OutOf      | Fit_Customize          |Foreign                |
| / Insert       Table      | Oblique     Key        |GradeUp      Sort      |
| \ Prefix       Infix      | Suffix      Outfix     |GradeDown    Sort      |
| [ SameLeft                | Lev                    |                       |
| ] SameRight               | Dex                    |                       |
| { Catalogue    From       | Head        Take       |Tail                   |
| } Amend                   | Behead      Drop       |Curtail                |
| " Rank                    | Do          DoLeftIfErr|Format                 |
| ` Tie_Gerund              |                        |                       |
| @ Atop                    | Agenda                 |At                     |
| & Bond_Compose            | Under_Dual             |Appose                 |
| ? Roll         Deal       |                        |                       |
+----------------------------------------------------------------------------+
|)  lable                   a. Alphabet                  A. Atomic Permute   |
|b. Boolean                 c. Characteristic            C. Cyc-Dir * Permute|
|e. RazeIn MemberIn         E. Member of Interval        f. Fix Verb         |
|i. Integers IndexOf        o. PiTimes  Circle           p. Polynomial       |
|x. LeftArgument            y. Right Argument            0: Zero  1: one     |
+----------------------------------------------------------------------------+
   
