GNU APL: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Miraheze>Adám Brudzewsky
No edit summary
m (Text replacement - "<source" to "<syntaxhighlight")
(19 intermediate revisions by 5 users not shown)
Line 3: Line 3:
| index origin            = 0 or 1
| index origin            = 0 or 1
| function styles          = [[tradfn]], [[dfn]] (limited)
| function styles          = [[tradfn]], [[dfn]] (limited)
| numeric types            = complex floats, rational
| numeric types            = [[complex]] floats, rational
| unicode support          = full
| unicode support          = full
| released                = 2013
| released                = 2013
| developer                = [[GNU APL community]]
| developer                = Jürgen Sauermann, [[GNU APL community]]
| latest release version  = 1.8 / 2019
| latest release version  = 1.8 / 2019
| implementation language  = [https://en.wikipedia.org/wiki/C%2B%2B C++]
| implementation language  = [[wikipedia:C++|C++]]
| source                  = [http://svn.savannah.gnu.org/viewvc/apl/trunk/ GNU Savannah]
| platforms                = x86, x86_64
| platforms                = x86, x86_64
| operating systems        = Linux, Windows (via Cygwin)
| operating systems        = Linux, Windows (via Cygwin)
| license                  = [https://en.wikipedia.org/wiki/GNU_General_Public_License GNU GPL]
| license                  = [[wikipedia:GNU_General_Public_License|GNU GPL]]
| website                  = [https://www.gnu.org/software/apl/ gnu.org/software/apl]
| website                  = [https://www.gnu.org/software/apl/ gnu.org/software/apl]
| download                = [https://ftp.gnu.org/gnu/apl/ .deb, .rpm]
| download                = [https://ftp.gnu.org/gnu/apl/ .deb, .rpm]
Line 17: Line 18:
| documentation            = [https://www.gnu.org/software/apl/apl.html info manual]
| documentation            = [https://www.gnu.org/software/apl/apl.html info manual]
| influenced by            = [[APL2]], [[Dyalog APL]]
| influenced by            = [[APL2]], [[Dyalog APL]]
| run online              = [http://juergen-sauermann.de/try-GNU-APL try-GNU-APL]
}}
}}
'''GNU APL''' is a free and (almost) complete implementation of Extended APL as specified in [[ISO/IEC 13751:2001]] and is thus similar to [[APL2]]. It runs on GNU/Linux and on Windows using Cygwin, and uses Unicode internally. GNU APL was written and is being maintained by [[Jürgen Sauermann|GNU APL community]].
{| class=wikitable style="float:right;max-width:33%"
|{{quote | "Both 32-and 64-bit GNU APL are available for Windows, truly proving G_d is great! الله أكبر"|Alan G. Konheim. [https://sites.cs.ucsb.edu/~konheim/Feistel%20Talk%20-2Final.pdf ''Creativity in Computer Science – Horst Feistel'']. Footnote 14. Page F-9.}}
|}


GNU APL interpreter includes:
'''GNU APL''' is a free and (almost) complete implementation of Extended APL as specified in [[ISO/IEC 13751:2001]] and is thus similar to [[APL2]]. It was initially written and is being maintained by Jürgen Sauermann. It includes extensions such as [[complex number]]s and a shared variable interface.


* nested arrays and related functions
[[File:GNU APL.png|thumb|left|GNU APL's online demo, [http://juergen-sauermann.de/try-GNU-APL try-GNU-APL]]]
* complex numbers, and
In addition to a normal local APL [[session]], GNU APL can used in a "scripting" language fashion by processing linear scripts passed to the interpreter at startup. There is an experimental online version as well as the ability to be compiled into a shared loadable library for embedding the interpreter into other projects.
* a shared variable interface


In addition, GNU APL can be scripted.
Documents on GNU APL sometimes quote [[Richard Stallman]], who both founded GNU and programmed in APL. However, Stallman is not directly associated with the project.
 
== Encoding ==
Richard Stallman, founder of the GNU Project, had been an early adopter of APL, using it to write a text editor as a high school student in the summer of 1969.
 
As of recently, there is an (experimental) online version of GNU APL.


GNU APL tends to prefer the [[Unicode]] ''Lozenge'' (U+25CA; <syntaxhighlight lang=apl inline>◊</syntaxhighlight>) and ''Element of'' (U+2208; <syntaxhighlight lang=apl inline>∈</syntaxhighlight>) over ''Diamond operator'' (U+22C4; <syntaxhighlight lang=apl inline>⋄</syntaxhighlight>) and ''Small Element of'' (U+220A; <syntaxhighlight lang=apl inline>∊</syntaxhighlight>) which are more commonly used by other dialects. This can lead to [[SYNTAX ERROR]]s if attempting to use code written for GNU APL in other implementations. However, GNU APL also accepts the more common code points.
== External links ==
== External links ==


* [http://juergen-sauermann.de/try-GNU-APL Try GNU APL online]
* [http://www.gnu.org/software/apl The GNU APL Homepage]
* [https://www.gnu.org/software/apl/ Website]
* [http://lists.gnu.org/archive/html/bug-apl/ The GNU APL Mailing List]
 
* [http://www.gnu.org/software/apl/apl.html The GNU APL Info Manual]
{{APL programming language}}
* [http://svn.savannah.gnu.org/viewvc/apl/ GNU APL Sources (Subversion)]
* [https://savannah.gnu.org/svn/?group=apl Help for GNU APL Subversion]
* [http://www.gnu.org/software/apl/Community.html The GNU APL Community]
{{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]]

Revision as of 22:30, 10 September 2022

"Both 32-and 64-bit GNU APL are available for Windows, truly proving G_d is great! الله أكبر"

Alan G. Konheim. Creativity in Computer Science – Horst Feistel. Footnote 14. Page F-9.

GNU APL is a free and (almost) complete implementation of Extended APL as specified in ISO/IEC 13751:2001 and is thus similar to APL2. It was initially written and is being maintained by Jürgen Sauermann. It includes extensions such as complex numbers and a shared variable interface.

GNU APL's online demo, try-GNU-APL

In addition to a normal local APL session, GNU APL can used in a "scripting" language fashion by processing linear scripts passed to the interpreter at startup. There is an experimental online version as well as the ability to be compiled into a shared loadable library for embedding the interpreter into other projects.

Documents on GNU APL sometimes quote Richard Stallman, who both founded GNU and programmed in APL. However, Stallman is not directly associated with the project.

Encoding

GNU APL tends to prefer the Unicode Lozenge (U+25CA; ) and Element of (U+2208; ) over Diamond operator (U+22C4; ) and Small Element of (U+220A; ) which are more commonly used by other dialects. This can lead to SYNTAX ERRORs if attempting to use code written for GNU APL in other implementations. However, GNU APL also accepts the more common code points.

External links

APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLDyalog APL Visiondzaima/APLGNU APLKapNARS2000Pometo
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