Implementation resources: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
(dead link -> internet archive)
(→‎Interpreting: More implementation blogs; minor rearrangement)
Line 3: Line 3:
== Interpreting ==
== Interpreting ==


* [https://mathspp.com/blog/tag:lsbasi-apl#body-wrapper Let's build a simple interpreter for APL] series (currently incomplete) on Mathspp Blog
* [https://talks.godoc.org/github.com/robpike/ivy/talks/ivy.slide Slides] and [https://www.youtube.com/watch?v=PXoG0WX0r_E talk] by [[wikipedia:Rob Pike|Rob Pike]] about implementing [[ivy]]
* [https://talks.godoc.org/github.com/robpike/ivy/talks/ivy.slide Slides] and [https://www.youtube.com/watch?v=PXoG0WX0r_E talk] by [[wikipedia:Rob Pike|Rob Pike]] about implementing [[ivy]]
* [https://www.researchgate.net/publication/234776477_APL_two_by_two-syntax_analysis_by_pairwise_reduction Bunda-Gerth parsing], implemented with commentary as [https://dfns.dyalog.com/n_parse.htm parse] in the [[dfns workspace]]
* [https://www.researchgate.net/publication/234776477_APL_two_by_two-syntax_analysis_by_pairwise_reduction Bunda-Gerth parsing], implemented with commentary as [https://dfns.dyalog.com/n_parse.htm parse] in the [[dfns workspace]]
* [https://www.jsoftware.com/help/dictionary/dicte.htm Parsing and Execution] in the [[J]] dictionary
* [http://www.softwarepreservation.org/projects/apl/Papers/197201_APL%20In%20Exposition_320-3010.pdf#page=54 APL In Exposition], from page 54 (labelled 51) down
* [http://www.softwarepreservation.org/projects/apl/Papers/197201_APL%20In%20Exposition_320-3010.pdf#page=54 APL In Exposition], from page 54 (labelled 51) down
* [https://web.archive.org/web/20220711221202/https://rickyhan.com/jekyll/update/2020/01/16/j-incunabulum-disected.html J Incunabulum] is the initial partial implementation of J
* [[J]] resources: [https://www.jsoftware.com/help/dictionary/dicte.htm Parsing and Execution]; [https://web.archive.org/web/20220711221202/https://rickyhan.com/jekyll/update/2020/01/16/j-incunabulum-disected.html J Incunabulum] discussing Whitney's initial sketch; [http://sblom.github.io/openj-core/ioj.htm An Implementation of J]
* [http://sblom.github.io/openj-core/ioj.htm An Implementation of J] describes the implementation of J in C terms
* [https://mathspp.com/blog/tag:lsbasi-apl#body-wrapper Let's build a simple interpreter for APL] series (incomplete) on Mathspp Blog
* [https://blog.rubenverg.com/?tag=tinyapl TinyAPL] series by Madeline Vergani
* [https://scharenbroch.dev/projects/apl-interpreter/ APL Interpreter] by Lucas Scharenbroch


== Compiling ==
== Compiling ==

Revision as of 15:22, 20 May 2024

This page lists some resources for learning how to implement array languages. See also the list of open-source array languages, which links to implementations in a wide variety of styles and languages.

Interpreting

Compiling

Because traditional APL does not have a context-free grammar, the language must be modified or restricted in some way to allow it to be compiled. K and BQN have context-free grammars, making them immediately suitable for compilation.


APL development [edit]
Interface SessionTyping glyphs (on Linux) ∙ FontsText editors
Publications IntroductionsLearning resourcesSimple examplesAdvanced examplesMnemonicsISO 8485:1989ISO/IEC 13751:2001A Dictionary of APLCase studiesDocumentation suitesBooksPapersVideosAPL Quote QuadVector journalTerminology (Chinese, German) ∙ Neural networksError trapping with Dyalog APL (in forms)
Sharing code Backwards compatibilityAPLcartAPLTreeAPL-CationDfns workspaceTatinCider
Implementation ResourcesOpen-sourceMagic functionPerformanceAPL hardware
Developers Timeline of corporationsAPL2000DyalogIBMIPSASTSC