o42a is a high-level general purpose programming language. It is compiled, statically-typed, prototype-based, logic-driven, and primarily declarative, while the imperative programming style is also supported. A program written in o42a is closer to natural English text than one written in any C-like programming language. The language is designed with programming productivity and code maintainability as main priorities. This achieved by powerful, yet restrained, semantics, and expressive and natural syntax.
|Tags||programming language compiler prototype-based|
|Licenses||GPLv3+ MPL 2.0|
|Operating Systems||Linux (64 Bit)|
|Implementation||LLVM Java 6 C|
As of release 0.2.1, the last conceptual feature (the macros) was added to the language.
From now on, the development will be focused on the cor...
Release Notes: Stateful objects can be constructed now with a keep value (\\) operator. The value of a stateful object is evaluated at most once, in contrast to a standard stateless object, the value of which is evaluated on each request. The binding statement (<-) is now used to assign new values to variables. In addition, a value assignment statement (=) can be used to perform the assignments in a more traditional imperative manner. The combined assignment statements (+=, -=, *=, /=) have been added.
Release Notes: The type arguments syntax have been fully reworked. The link dereferencing behavior has been changed significantly. A new initializers syntax has been implemented.
Release Notes: The imperative and declarative codes are almost fully unified. The difference between them is that the declarative blocks may contain member declarations, while the imperative blocks can loop. Locals can be declared anywhere now. A new syntax allows declaring the local along with its scope. Phrases may contain intervals now. Some scope references, unary operators syntax, and line continuation rules have been changed.
Release Notes: Type parameters can be declared for any object now. Two new operators support have been added, a compare operator (<=>) suitable to perform a generic comparison and a suffix one (~) capable of representing things such as quantities. Hexadecimal, binary, and floating point literals syntax support has been added. Other syntax improvements have been made. A lot of bugs were fixed. The language runtime license has been changed to the MPL-2.0.
Release Notes: This release contains a lot of fixes to most of the compiler subsytems. Array items are accessed using ordinary phrases now instead of a special technique used before. The link dereferencing rules was refined.