UC

Note

UC is a work in progress...

UC is a transpiler. It converts C/C++ codebases to U code. UC does not aim to convert the C/C++ execution model to U's one. UC aims at:

  • Improving C/C++ code bases robustness and clarity by reducing their complexity,
  • Enabling a new generation of developers to improve high-performance legacy systems,
  • Easily onboard communities of scripting languages developers to low-level systems.

Coding Linux device drivers in U would be as easy as writing scripts, open a new era for low-level system programming, and enable a new generation of tools.

Here is real-world conversion, from:

namespace std
{
  typedef long unsigned int size_t;
  typedef long int ptrdiff_t;
  typedef decltype(nullptr) nullptr_t;
}

To:

:std : {
  :size_t : @{long;unsigned;int;}
  :ptrdiff_t : @{long;int;}
  :nullptr_t : @{decltype(:nullptr);}
}