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 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.
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.
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.
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.
#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
#)
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.
U features a minimal grammar that supports various execution models (Exem), making it versatile and adaptable:
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).
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
Continue reading to discove what sets U apart: Key Concepts, High Performance vs. High Productivity, Mental Models, and more.
Get startedBuild fast, reliable applications optimized for modern hardware, embedded systems, and AI platforms(GPU, NPU).
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.
U aims to give you full control over every step of the compilation process, drastically improving your productivity from prototype to production.
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.