What Is A++ and How Does It Teach Programming Through ARS?

A++ is an educational programming language built on the lambda calculus, designed for one purpose: helping people who want to learn programming understand the essentials of the art of programming as quickly and thoroughly as possible. It suits learners who want a deep grasp of core concepts and transferable patterns before (or instead of) wrestling with the many convenience features of mainstream languages. It is not aimed at people who need a language for practical, production-style software work.

The core idea: essentials instead of features

Most languages come with what the A++ project describes as "bells and whistles" — many soft features that are genuinely useful for coping with practical programming problems. A++ deliberately strips these away. Being based on the lambda calculus, it is presented as a hard-core language made of elements that cannot be further split up or disintegrated.

The reasoning behind this: learning the art of programming is not accomplished by becoming familiar with all the handy soft features a language offers. It comes from learning how to cope with programming problems by continuously applying three operations from beginning to end.

ARS Based Programming

A++ organizes programming around three concepts, abbreviated ARS:

  • Abstraction — capturing a pattern or behavior as a reusable unit.
  • Reference — using what has been abstracted.
  • Synthesis — combining abstractions into larger constructs.

Programming with the focus on applying Abstraction, Reference and Synthesis is called ARS Based Programming. In A++, the project states, ARS Based Programming becomes "ultimately visible to a programmer" — the language is structured so these three operations are not hidden behind incidental syntax.

The claim for learners is twofold: quick, deep comprehension of programming, and pattern-recognition skills that apply in most other programming languages.

Implementations

A++ has been implemented in Scheme, Java, C++, C, Perl and Python, using ARS based programming techniques. The Perl and C implementations are presented in detail in the book on A++ (see below); the other implementations are covered in Programmierung pur (Undiluted Programming), published in 2003.

That spread matters for the educational argument: the same ARS approach is shown to carry across very different language families, which supports the idea that what you learn in A++ transfers rather than being tied to one tool.

Books and learning entry points

The language is introduced in A++ – The Smallest Programming Language in the World, which covers both the language and its implementation. It was first published in Darmstadt, Germany in October 2004 (ISBN 3-87820-116-8), with a 2nd edition published in April 2018 by tredition GmbH, Hamburg.

The site also lists newer titles (July 2018), including:

Title ISBN
A++ The Smallest Programming Language in the World 978-3-7469-3021-3
A++ and the Lambda-Calculus 978-3-7469-3811-0
A++ Die kleinste Programmiersprache der Welt 978-3-7469-3199-9
Programmieren lernen mit A++ 978-3-7469-3098-5
A++ und systemnahe Programmiersprachen 978-3-7469-3600-0
Von A++ nach ARS++ 978-3-7469-3644-4

Who should consider it

A++ fits you if:

  • You want to understand what programming is at a fundamental level before committing to a mainstream language.
  • You are interested in the lambda calculus as a practical foundation rather than only as theory.
  • You want patterns you can carry into other languages.

It probably does not fit you if:

  • You need to build practical applications now and want a language with extensive libraries and convenience features.
  • You are looking for a first language chosen for employability rather than conceptual depth.

For a systematic path in, the book A++ – The Smallest Programming Language in the World is the documented starting point, with A++ and the Lambda-Calculus as the natural companion for the theoretical basis.

aplusplus.net
A++ is a programming language helping students quickly and thoroughly understand the essentials and become familiar with powerful programming pattern…
stellarium.org
Stellarium is a planetarium software that shows exactly what you see when you look up at the stars. It's easy to use, and free.
thekeytoworldpeace.com
Legend of the key to world peace book series - Cartoon Buddy Club general knowledge note book of history and time