ngn/apl

From APL Wiki
Revision as of 22:10, 10 September 2022 by Adám Brudzewsky (talk | contribs) (Text replacement - "</source>" to "</syntaxhighlight>")
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 (<source lang=apl inline>{⍺ ⍵}</syntaxhighlight>), nested arrays, complex numbers (<source lang=apl inline>1j2</syntaxhighlight>), forks and atops, strand assignment (<source lang=apl inline>(a b)←c</syntaxhighlight>), indexed assignment (<source lang=apl inline>a[b]←c</syntaxhighlight>), and user-defined operators (<source lang=apl inline>{⍺⍺ ⍵⍵}</syntaxhighlight>), but does not support Key (<source lang=apl inline>⌸</syntaxhighlight>), Rank (operator (<source lang=apl inline>⍤</syntaxhighlight>) tradfns (<source lang=apl inline>∇R←X f Y</syntaxhighlight>), non-zero index origin (<source lang=apl inline>⎕IO←1</syntaxhighlight>), comparison tolerance (<source lang=apl inline>⎕CT</syntaxhighlight>), prototypes (it always uses zero as fill), modified assignment (<source lang=apl inline>x+←1</syntaxhighlight>), keywords (<source lang=apl inline>:If</syntaxhighlight>), object-oriented programming, or namespaces. It extends Dyalog APL with infinities (<source lang=apl inline>¯</syntaxhighlight> or <source lang=apl inline>∞</syntaxhighlight>) 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

References

  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 APLKapNARS2000PometoTinyAPL
Historical A Programming LanguageA+ (A) ∙ APL#APL2CAPL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXExtended Dyalog APLIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyK (Goal, Klong, Q) ∙ KamilaLispLang5LilNialRADUiua
Overviews Comparison of APL dialectsTimeline of array languagesTimeline of influential array languagesFamily tree of array languages