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: 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.
Release Notes: This is a significant change in language semantics. Object values are stateless by default, which means they are not preserved, but evaluated on each request. This makes objects act like functions. To preserve the once evaluated value, a new 'keep value' operator can be used. The language runtime license has been changed to the LGPLv3.