From APL Wiki
Revision as of 17:54, 6 January 2022 by Marshall (talk | contribs) (Text replacement - "Category:Bytecode compilers" to "Category:IR compilers")
Jump to navigation Jump to search

ngn/apl is an APL bytecode compiler and interpreter by Nick Nickolov. Because it is implemented in Javascript, it can be run in Node.js or any modern browser.

ngn/apl supports most of the core language of Dyalog APL 14.0,: dfns ({ }), nested arrays, complex numbers (1j2), forks and atops, strand assignment ((a b)c), indexed assignment (a[b]c), and user-defined operators ({⍺⍺ ⍵⍵}), but does not support Key (), Rank (operator () tradfns (RX f Y), non-zero index origin (⎕IO1), comparison tolerance (⎕CT), prototypes (it always uses zero as fill), modified assignment (x+1), keywords (:If), object-oriented programming, or namespaces. It extends Dyalog APL with infinities (¯ or ) and a few additoinal primitives.

On December 27, 2020, Nickolov announced that he would discard his implementation.[1] Soon after, Adám Brudzewsky took up the mantle of hosting the source and online demo.[2]

External link


  1. Nickolov, N. "ngn". Announcement. APL Orchard. Stack Exchange chat.
  2. Brudzewsky, A. "Adám". Announcement. APL Orchard. Stack Exchange chat.
APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLDyalog APL Visiondzaima/APLGNU APLKAPNARS2000Pometo
Historical A Programming LanguageA+ (A) ∙ APL#APL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXExtended Dyalog APLIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyJellyfishK (Goal, Klong, Q) ∙ KamilaLispLang5NialRAD
Overviews Timeline of array languagesTimeline of influential array languagesFamily tree of array languages