See details at http://bamelg.com
Bamelg is component-oriented language similar to C# but designed for low-level purposes.
- Designed to be used by C++/C# experts
- Powerful type system
- Primitive types
- bool, byte, sbyte, ushort, short, uint, int, ulong, long, float, double, Guid
- Decimal, hexadecimal, binary literals
- Big-endian and little-endian variants of primitive types - float/float_littleendian/float_bigendian etc.
- bool, byte, sbyte, ushort, short, uint, int, ulong, long, float, double, Guid
- Derived types - pointers, references, fixed arrays, dynamic arrays
- String types - SbcsString, Utf8String, Utf16String, Utf32String
- Enums, interfaces, functors, delegates
- Primitive types
- Rich language features
- Properties, indexed properties, indexers, safe navigation
- Automatic struct layout packing
- Template structs/classes/interfaces/functors/delegates/methods
- Full specialization support
- Overloadable operators
- Reflection, attributes
- Events, Iterators, Extension methods
- Lambda expressions
- Assembly language support
- Overflow checking intrinsics
- Non-cdecl calling conventions support
- Thread-local storage, fiber-local storage
- Bare-metal runtime
- Fiber-based framework for IO-intensive tasks
- High-perfromance HTTP server and Thrift RPC servers are provided
- Flexible template collection types
- Easy to use containers List<T>, Dictionary<TKey, TValue>, HashSet<T> etc.
- High-volume containers PagedQueue<T>, PagedPool<T>
- No garbage collector with unexpected delays
- Customizable atomic/non-atomic reference counting for class instances
- No mix of languages in runtime library
- All high-level and low-level code written entirely in Bamelg
- Able to interop with any native libraries
- Fiber-based framework for IO-intensive tasks