/bamelg

Bare metal language

Primary LanguageC#MIT LicenseMIT

Bamelg - bare metal language

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.
    • Derived types - pointers, references, fixed arrays, dynamic arrays
    • String types - SbcsString, Utf8String, Utf16String, Utf32String
    • Enums, interfaces, functors, delegates
  • 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