Difference between revisions 868799964 and 886676595 on enwiki

'''ARS++''' was developed in 2002 for the book ''Undiluted Programming''<ref>[http://www.lambda-bound.de/book/engl/index.html Description of Undiluted Programming] {{webarchive |url=https://web.archive.org/web/20030731221231/http://www.lambda-bound.de/book/engl/index.html |date=July 31, 2003 }}</ref> to demonstrate '''ARS based programming''' in a real world context. ARS++ is used in the book to implement an [[A++]] [[Interpreter (computing)|interpreter]] and   an [[XML]] [[Database]] System. Even the implementation of ARS++ in [[C (programming language)|C]] was used to demonstrate [[ARS-based_programming|ARS-based programming]].

Principally the [[programming language]] [[Scheme (programming language)|Scheme]] would have been perfectly all right to be used for these demonstration programs if Scheme would include primitives supporting [[Computer networking|network]] programming, database programming plus a few others required in this context.

The definition of the programming language Scheme does not include those primitives however, leaving this issue up to the implementors of the language. The consequence is that there exist many Scheme implementations, almost none of them covering all areas essential for real application programs. This is the historical background that gave birth to the development of ARS++.<ref>A few weeks ago the author of the referenced book   discovered a Scheme implementation that would have been very well suited to serve as a   language for developing   the case studies for 'Undiluted Programming'.  This ''Scheme implementation'' is called '''Gauche''' and is [http://www.shiro.dreamhost.com/scheme/gauche/ available for download in the internet] {{webarchive |url=https://web.archive.org/web/20040209103246/http://www.shiro.dreamhost.com/scheme/gauche/ |date=February 9, 2004 }}.</ref>

== ARS++ explained by its name ==
The name '''ARS++''', being an [[acronym]] for '''ARS + Scheme + Extensions''', indicates that ARS++ has a lot to do with [[Scheme (programming language)|Scheme]] but that it is not equivalent to Scheme.

* The '''first part''' of the name refers to the core of   the language, which is nothing else but [[A plusplus|A++]], i.e. ''Abstraction + Reference + Synthesis''.<ref>The structure of A++ however is different from the structure of Scheme, which can be verified by comparing the definition of Scheme in R5RS with the definition of A++ [http://www.lambda-bound.de/book/lambdacalc/node41.html here] {{webarchive |url=https://web.archive.org/web/20040314070243/http://www.lambda-bound.de/book/lambdacalc/node41.html |date=March 14, 2004 }}.</re(contracted; show full)* [[ARS-based programming]]
* [[A plusplus|A++]]
* [[Educational programming language]]

== References ==
<references/>

[[Category:Educational programming languages]]