Lang5: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
No edit summary
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox array language
{{Infobox array language
| logo                    = [[File:Lang5-logo.jpg]]
| logo                    = [[File:Lang5-logo.jpg]]
| title                    = lang5
| array model              = [[List model|lists]]
| array model              = [[List model|lists]]
| index origin            = 0
| index origin            = 0
Line 22: Line 21:


== History ==
== History ==
Lang5's initial release was in 2010. It was created as an open source APL-style language with the goal of removing unicode symbols and high portability.<ref>http://lang5.sourceforge.net/tiki-index.php?page=HomePage</ref>
Lang5's initial release was in 2010. It was created as an open source APL-style language with the goal of removing unicode symbols while providing high portability.<ref>http://lang5.sourceforge.net/tiki-index.php?page=HomePage</ref>


In 2011, a [[Vector journal]] article was published about Lang5.<ref>http://lang5.sourceforge.net/tiki-view_blog_post.php?postId=16</ref>
In 2011, a [[Vector journal]] article was published about Lang5.<ref>http://lang5.sourceforge.net/tiki-view_blog_post.php?postId=16</ref>
Line 34: Line 33:


Lang5 also allows ''dressing'', a method of assigning simplistic type annotations to values. A dressed value is treated as a different type from the same value without the dressing. Complex numbers, matrices, polar coordinate tuples, sets and vectors are implemented in Lang5 using dressing. It allows simplistic yet effective type checking in Lang5, allowing early error prevention.
Lang5 also allows ''dressing'', a method of assigning simplistic type annotations to values. A dressed value is treated as a different type from the same value without the dressing. Complex numbers, matrices, polar coordinate tuples, sets and vectors are implemented in Lang5 using dressing. It allows simplistic yet effective type checking in Lang5, allowing early error prevention.
== See also ==
* [[CoSy]]


== References ==
== References ==
<references/>
<references/>
{{APL dialects}}[[Category:Programming languages]][[Category:Left to right]][[Category:ASCII languages]]
{{APL dialects}}[[Category:Programming languages]][[Category:Stack-based languages]][[Category:ASCII languages]]

Revision as of 09:51, 17 February 2022


Lang5 is a stack-based APL influenced language written by Bernd Ulmann. Lang5 draws features from both APL and Forth, and uses those together to create its own array based system. Lang5 has not undergone any major changes since 2013.[1]

History

Lang5's initial release was in 2010. It was created as an open source APL-style language with the goal of removing unicode symbols while providing high portability.[2]

In 2011, a Vector journal article was published about Lang5.[3]

Lang5's last major update (as of the most recent update to this article) was in November 2020.

Features

Lang5 has many major departures from the APL tradition: Most notably, it uses keywords for primitive functions, and uses reserved words for control flow and looping constructs.

All arrays in Lang5 are simple lists. This makes it comparable to K and RAD. Similar to those languages, it also allows usage of functions as data using Forth's quoting.

Lang5 also allows dressing, a method of assigning simplistic type annotations to values. A dressed value is treated as a different type from the same value without the dressing. Complex numbers, matrices, polar coordinate tuples, sets and vectors are implemented in Lang5 using dressing. It allows simplistic yet effective type checking in Lang5, allowing early error prevention.

See also

References

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