Introduction
The Abstract Programming Language is a general-purpose system programming language
made to be easy to learn, read, write and share.
The Abstract Development Environment is planned to be pretty rich, including systems
for build, debugging, unit testing and modularity.
Abstract's Philosophy
The philosophy of a language is one of the most important points of its development. It contains all the concepts that allows and justifies its existence.
Abstract uses these five concepts as its foundation:
Control, Readability, Security and Portability
Control
Abstract is made to be a high-level language that allows the user to access the lower levels possible by the targeting platform. It is made by features like:
- Inline assembly;
- Explicit compatibility with other languages and libraries;
- Compilation-time process, pre and post processors, modules and plugins;
Readability
Abstract is made to allow the user to easily understand the code that is being written, either by themself or other developers. Scope closures and design patterns help the developers to communicate just by reading each other's codebases, making the coding process more understandable and fast.
Security
Abstract not only allows the user to go to the lowest and deepest levels of the machine, but also keeps the safety and security in check. Memory leaks, null pointers and buffer overflows are well-handled by the language to ensure a program without undesired behaviors.
Portability
The Abstract environment architecture has powerful building, compiling and linking systems that allow codebases and libraries to be compiled for an extensive collection of digital devices without any headache.