Objeck is an object-oriented computing language with functional features. The language has ties with C#, Pascal and Scheme. In this language all data types, except for higher-order functions, are treated as objects.
The language contains all of the basic features of a general-purpose (Turing complete) programming language with an emphasis placed on OOP simplicity. The programming environment consists of a compiler, virtual machine (with associated garbage collector and JIT compiler) and command-line debugger.
The compiler emits binary bytecode that is executed by the runtime system. The runtime JIT compiler has the ability to translate the bytecode into IA-32 or AMD64 machine code during execution for improved performance. Also, check out the IRC channel #objeck on freenode.net.
· Support for object-oriented programming (virtual classes, interfaces, enums, functions and methods)
· Functional support (high-order functions)
· Support for polymorphic methods and functions
· "public" and "private" methods classifications
· Class library support (console, strings, files, threads, sockets, directories, vectors, linked lists, b-trees, homepage xml, etc.)
· Interactive debugger
· Automatic memory management (mark and sweep garbage collection)
· Native runtime JIT support for IA-32 and AMD64 architectures
· General compiler optimizations (short-circuit logic, method inlining, constant folding, strength reduction and instruction simplification)