Essential Features

These are the essential features of the Tuplex programming language.

Consistency of syntax


  • Simple, unified and universal name and namespace handling
  • Context-free, consistent, left-to-right type expression syntax
  • Syntactically unified function/lambda construct
  • Syntactically unified arrays, collection types, ranges, and sequencors/iterators

Strong yet easy to use type system

  • Strong, compile-time type checking
  • Automatic type inference
  • Safe and intuitive type checking and type conversion
  • Type-safe references; no null reference vulnerability
  • Safe unions (so-called sum types) are a core language feature
  • All values are syntactically treated as objects, but without "boxing" overhead
  • Values and types are immutable by default, must be explicitly declared as modifiable
  • Generic types, parameterizable with both types and values
  • Consistent polymorphism (all values are objects) with single inheritance plus interfaces
  • Zero-boiler-plate proxying (type delegation)
  • Comprehensive run-time type information
  • Built-in efficient serialization and de-serialization

Guaranteed thread-safe data for high-performance concurrency

  • Dataspaces are a core feature of the language
  • Compiler statically guarantees no memory data race vulnerability
  • Modifiable data never visible to more than one thread at a time
  • Dataspaces are a light-weight, static syntax with no run-time overhead
  • Data can be shared by passing memory references - no copying required

Modern source file, module, and compilation handling

  • Order of declaration doesn't matter
  • No redundancy, no forward declarations
  • All parts of a source code entity in one place
    • interface
    • annotations
    • implementation
    • documentation
  • Language support for defining the external/public API of distribution packages

No comments:

Post a Comment