Search code examples
japlk

Core of APL, J, K


I'm trying to understand APL, J, K, and it's slightly frustrating since:

  • Most books seen to be about APL, but few APL implementations, and I don't have weird keyboards.

  • K appears to have been replaced by Q

  • J doesn't seem to have

I almost feel like I'm staring at Common Lisp, Guile, Gambit, Chicken, SBCL -- when I really want is is to see two pages of a scheme evaluator.

Thus, my question: is there a short (say ~50 page) document that discusses the core of APL/J/K, i.e things like:

  • its evaluation model

  • its parsing model (since left/right precedence seems to be important)

  • its syntax

Thanks!


Solution

  • I think you trailed off on "J doesn't seem to have...", so I don't know if you've already found all of the things that I'm going to link to and were dismissing them above.

    My background is as a fan of a very broad set of language paradigms, and of the APL/J/Q/K set, I've chosen to spend most of my time using J. That said, given that J was developed by the same Ken Iverson of APL fame, it turns out that much of the same thinking went in to it. I even find that old papers that were written about APL seem to apply to J after a very simple transliteration effort is applied.

    Low level references

    The very best low level J reference (at the level of parsing, evaluation, syntax, and even its internal data structure primitives) is a set of HTML files that come with the open source distribution of J.

    You can browse it online: here.

    Higher level intro stuff

    This blog post is actually a really good crash course on the way J thinks about things.

    In addition to that, I've found that there are 2 books in particular on jsoftware.com that provide good introductions to programming in J:

    1. Learning J (shorter)
    2. J for C Programmers (much longer)