ABC: The Environment

The implementation includes a programming environment that makes producing programs very much easier, since it knows a lot about the language, and can therefore do much of the work for you. For instance, if you type a W, the system suggests a command completion for you:

    W?RITE ?

If that is what you want, you press [tab], and carry on typing the expression; if you wanted WHILE, you type an H, and the system changes the suggestion to match:

    WH?ILE ?:

This mechanism works for commands you define yourself too. Similarly, if you type an open bracket or quote, you get the closing bracket or quote for free. You can ignore the suggestions if you want, and just type the commands full out.

There is support for workspaces for developing different programs. Within each workspace variables are persistent, so that if you stop using ABC and come back later, your variables are still there as you left them. This obviates the need for file-handling facilities: there is no conceptual difference between a variable and a file in ABC.

The language is strongly-typed, but without declarations. Types are determined from context.