Dtone: A robust, object-oriented programming language for high-level development.
One of the unique aspects of Dtone is its strict enforcement of structured code. All source code for Dtone projects must be organized into entities, and the language includes major object-oriented features such as multiple inheritance, local entities, polymorphism, and exceptions.
In addition to being a strong object-oriented language, Dtone is also a procedural language. This means that source code is organized as a list of instructions that tell the computer what to do step-by-step. This allows for predictable memory use and stable assembler output, making it easy to anticipate how a compiled program will look.
One of Dtone's key features is its focus on runtime speed. The language is designed to be as fast as if it had been written in traditional C. Unlike some other languages, Dtone is not an interpreter or a virtual machine. Instead, it is built to run natively on a processor.
Dtone applications can fully interface with C libraries, both as an advantage and a potential drawback. On the plus side, this allows developers to easily access and utilize a wide range of standard functionality. However, it also means that the language must have counterparts for most C elements, including function pointers.
Dtone also encourages "context-free reading", meaning that a user should be able to understand the doings of a function simply by looking at its source code. Preprocessor macros are not allowed, as they require additional lookup in a header file to understand the function.
Overall, Dtone is aimed at complex applications that require high performance and easy-to-use object orientation. It is not intended to replace all other programming languages, but rather to offer a mature alternative to languages such as C++.
This latest release of Dtone includes several improvements and bug fixes, including support for deleting arrays, object generation on the stack with automatic destruction, and a fix for a segfault during compilation caused by Parser.is_var().
Version 0.2.1: N/A