Difference between revisions 484636291 and 709313800 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]</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 la(contracted; show full)

* 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].</ref>



* The '''second part''' in the name of ARS++ stands for the primitive functions that are imported from Scheme, giving ARS++ almost the same functionality as Scheme. Primitive functions are those, that are not and cannot be defined as lambda abstractions because they are representing a functionality that can only be provided by the underlying [[operating system]] or the hardware.


* The '''third part''' of the name refers to primitive functions that are not defined in [[R5RS]] (the official definition of the programming language Scheme) but are nevertheless important for real world programming like functions allowing to work with [[regular expressions]], with [[TCP/IP]] networks, with embedded databases (e.g. [[Berkeley DB]], [[GNU database manager]]) and a few that provide an interface with the operating system.

From a practical point of view a Scheme implementation that includes support for regular expressions, databases, sockets and also provides an interface to the operating system can be called an ARS++ language.

== See also ==
* [[ARS-based programming]]
* [[A plusplus|A++]]
* [[Educational programming language]]

== References ==
<references/>

[[Category:Educational programming languages]]