I have written a large portion of the content on the APL Wiki in addition to the more formal publications listed below.
I have spoken at various array programming conferences and once even obtained a slot at a functional conference whose organizers were clearly confused.
- Dyalog 2019: Tacit Techniques with Dyalog version 18.0 Operators (zipped slides)
- Dyalog 2019: Implementing Reduction (zipped slides)
- LambdaConf 2019: Outer Product as an Introduction to APL and a Pretty Cool Thing in General (slides)
- Dyalog 2018: Sub-nanosecond Searches Using Vector Instructions (zipped slides)
- Dyalog 2018: The Interpretive Advantage (zipped slides)
- Dyalog 2017: Moving Bits Faster in Dyalog 16.0 (zipped slides)
- Jsoftware Conference 2014: Using Data as Code (code)
- Jsoftware Conference 2012: Image processing in J (code)
My posts on the Dyalog blog give a detailed look at how parts of the language are implemented, with one exception.
- Tolerated Comparison Part 1, Part 2
- Speed versus Accuracy: the User’s Choice (humour)
- Expanding Bits in Shrinking Time
- Stackless Traversal
My self-published paper on one of the inspirations of I (the language) might be worth reading for those interested in the intersection of functional and array programming.
My honors thesis has for some reason been put online. If you find yourself wondering how many dimensions it would take to immerse various Grassmannian manifolds in Euclidean space, then I guess it would be reasonable for you to read this.