Projects / o42a


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.

Operating Systems

RSS Last announcement

0.2.x Release Cycle 06 Aug 2012

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...

RSS Recent releases

  •  29 Jul 2013 20:47

    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.

    •  09 May 2013 11:41

      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.

      •  19 Apr 2013 00:53

        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.

        •  26 Jan 2013 01:06

          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.

          •  21 Oct 2012 18:07

            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.


            Project Spotlight


            A MarkDown editor with live HTML previews.


            Project Spotlight

            Hotel Booking

            Easy booking of stays by time and date with different languages and currencies.