Implementation resources: Difference between revisions
Jump to navigation
Jump to search
(added Bunda-Gerth paper) |
mNo edit summary |
||
(12 intermediate revisions by 4 users not shown) | |||
Line 3: | Line 3: | ||
== Interpreting == | == Interpreting == | ||
* [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://dfns.dyalog.com/n_parse.htm parse] | * [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]] | ||
* [ | * [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://www.jsoftware.com/help/dictionary/dicte.htm Parsing and Execution] | * [[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] | ||
* [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 == | ||
Line 17: | Line 19: | ||
* [http://archive.vector.org.uk/art10501160 Compiling APL to JavaScript] describes some implementation decisions made in [[ngn/apl]] | * [http://archive.vector.org.uk/art10501160 Compiling APL to JavaScript] describes some implementation decisions made in [[ngn/apl]] | ||
[[Category:Lists | {{APL development}}[[Category:Lists of resources]] |
Latest revision as of 18:54, 6 August 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
- Slides and talk by Rob Pike about implementing ivy
- Bunda-Gerth parsing, implemented with commentary as parse in the dfns workspace
- APL In Exposition, from page 54 (labelled 51) down
- J resources: Parsing and Execution; J Incunabulum discussing Whitney's initial sketch; An Implementation of J
- Let's build a simple interpreter for APL series (incomplete) on Mathspp Blog
- TinyAPL series by Madeline Vergani
- APL Interpreter by Lucas Scharenbroch
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.
- BQN implementation notes
- Aaron Hsu's tree manipulation talks describe a technique used in Co-dfns.
- Compiling APL to JavaScript describes some implementation decisions made in ngn/apl
APL development [edit] | |
---|---|
Interface | Session ∙ Typing glyphs (on Linux) ∙ Fonts ∙ Text editors |
Publications | Introductions ∙ Learning resources ∙ Simple examples ∙ Advanced examples ∙ Mnemonics ∙ ISO 8485:1989 ∙ ISO/IEC 13751:2001 ∙ A Dictionary of APL ∙ Case studies ∙ Documentation suites ∙ Books ∙ Papers ∙ Videos ∙ APL Quote Quad ∙ Vector journal ∙ Terminology (Chinese, German) ∙ Neural networks ∙ Error trapping with Dyalog APL (in forms) |
Sharing code | Backwards compatibility ∙ APLcart ∙ APLTree ∙ APL-Cation ∙ Dfns workspace ∙ Tatin ∙ Cider |
Implementation | Resources ∙ Open-source ∙ Magic function ∙ Performance ∙ APL hardware |
Developers | Timeline of corporations ∙ APL2000 ∙ Dyalog ∙ IBM ∙ IPSA ∙ STSC |