The U
Programming Language

The missing standard between Developers and AI

U interprets most modern compiled and dynamic languages to enables developers and AI to have a common knowledge of entire codebases

This paves the way for AI-powered code translation and rewriting, streamlining development processes and enhancing productivity

U: A Flexible Programming Language for the AI-powered era

U is a revolutionary and flexible programming language designed to simplify the creation of reliable, scalable, performance-sensitive, all while emphasizing expressiveness and productivity. U is designed not only to serve as a meta-language for generating existing programming languages but also as a domain-specific language tailored specifically to meet your syntax requirements.

Experimental

U is a experimental research language used at Umme.ai. Given the full flexibility of U syntax, setting up a shared foundation is essential. This documentation aims to co-create the initial common specification of U with our community.

Motivation

At Umme.ai, we manage numerous codebases, each incorporating multiple programming languages—a common setup for most products. No AI can easily understand this level of complexity. To efficiently integrate all platform layers (web, AI, business, and high-performance nodes), we needed a new solution that could manage our codebases effectively while achieving the desired performance and reliability levels with AI. U is the solution for managing heterogeneous codebases, providing a standardized language that is both intuitive for humans and efficient for machine learning.

We transform codebases from various languages into a unique, modern language to facilitate knowledge transfer, optimize performance, ease maintenance, and allow new innovation to emerge.

AI requires a different language

Despite the rapid advancement of technology, the programming languages powering it often evolve at a much slower rate. This is why, despite the multitude of programming languages available, we still resort to using a mix of multiple languages or Domain-Specific Languages (DSL) to construct efficient and sustainable heterogeneous systems."

AI and many domains deserve a better programming language suitable for machine learning and humans.

For example, for AI and according to Facebook AI Research director Yann LeCun:

Deep learning may need a new programming language that’s more flexible and easier to work with than Python.

— Yann LeCun

The most important value of a programming language lies in its expressiveness: our goal is to make it as effortless as possible for you to write programs exactly n the way you want.

The U experience

    #this is a comment
    # bind 'text' to a variable
:text : 'world'

    # typed variables with '@'
:prompt : @str "Hi, I'am "

    # print it
\< "\:prompt \(text\)"

    # -- All collection starts with '[..]' and a customizable operator
    # Array: '[ .. ]', no operator 
\< [:a, :c, :b].sort.join ','  # => "[a, b, c]"

    # Map: '[> .. ]', , operator = '>'
[> :name: 'Umme', :role: :Ai]

    # Matrix: '[| .. ]', operator = '|'
[| 
 1 2 
 3 4 
].* 2 #=> "[| [2,4], [6, 8] ]"

    # -- function are defined with '{..}' without params, '{: .. }' with params
:result : {: a, b
 :res : a + b
    # return
 res
}(40, 2)
\< result #=> "42"

    # -- using Ranges: 0<.<3 => [1,2]
\< {:rng; rng@Array.* 2 }(0<.<3) #=> [2,4]

    # -- Use others languages
    # Python
\%python(
    #this is a valid python code interpreted as U code
print('Hello from U written in python')
\%)
    # C++
\%cpp(
    # C++ code compiled as U code
    std::string s("C++ as U basic string");
    cout << s;
\%)
    # transpile a Python file to C code
\%python:import_u_file( "ai-model.py").ai_to_c.save_as "ai-model.c" 

#( 
    most compiler features are available with '\' (Esc) and librairies: web, concurrency, and more
#)

Embracing the Future of Programming

In an ever-accelerating AI-powered world, the focus in technology has shifted from general-purpose languages to domain-specific solutions. U empowers you to tackle these new challenges with confidence, making it ideal for building high-performance systems, AI, and data-intensive applications.

Unique features

  • Machine-readable for AI software and hardware engines. Developers and AI understand the same common codebase.
  • Supports multiple execution models: statically typed (C/C++/Rust/Java), dynamically typed (Python/JavaScript/Ruby), and gradual typing.
  • Offers both automatic and manual memory management, available in libraries or integrated into syntax.
  • Optional object-oriented programming (OOP) and manual memory management for system programming.
  • Consistent language usage throughout your application lifecycle, from rapid prototyping in dynamically typed modes (JavaScript/Python/Ruby) to developing production-grade applications in memory-safe, reliable languages like Rust.

Versatile Execution Models

U features a minimal grammar that supports various execution models (Exem), making it versatile and adaptable:

  • static: Similar to C, Rust, and Swift
  • dynamic: Similar to Python, JavaScript, and Ruby
  • hybrid: Similar to HTML with embedded languages, as seen in most web frameworks
U aims at replacing parser generators by using one common language through your product lifecycle, and use AI to generate your target language. Start fast prototyping in a dynamic Exem (python-like) then gradually enhance with typing to move to reliable production code (rust-like). U is always customize to your need with the syntax you need: almost evrthing in U is a user-defined syntax-level function. Developers have the full control of the compilation process if needed.

Unified Language for All Stages of Development

U aims to replace parser generators by offering a single common language throughout your product lifecycle. Start with rapid prototyping in a dynamic Exem (similar to Python), and gradually enhance with typing to transition to robust production code (similar to Rust).

Customizable Syntax and Full Control

U is designed to be customizable to your specific needs, offering user-defined syntax-level functions for ultimate flexibility. Developers have complete control over the compilation process, ensuring that U adapts to your unique requirements. With U unique flexible syntax and execution model, you can build innovative solutions free from constraints.

Power is nothing if you can't express it

— The U team

Continue reading to discove what sets U apart: Key Concepts, High Performance vs. High Productivity, Mental Models, and more.

Get started

Performance

Build fast, reliable applications optimized for modern hardware, embedded systems, and AI platforms(GPU, NPU).

Versatile

Since U is designed to be machine-readable and can interpret most modern languages, it enables you to optimize your codebase or transpile it to a more efficient one.

Productivity

U aims to give you full control over every step of the compilation process, drastically improving your productivity from prototype to production.

Future-Proof

While we can't foresee every potential challenge developers might face in the future, U is designed to be flexible, easily adaptable, reusable, and extendable.

How it works

u architecture Continue...