The web is enabling all types of systems and solutions to connect to the Internet, but the tools available today do not cover the entire ecosystem. According to Thomas Pornin, author of the BearSSL library and security consultant at NCC Group, embedded systems are becoming a challenge because most programming languages are geared towards web applications or servers and don’t take into account the constraints of these systems.

To address this situation, Pornin is developing a new programming language that aims to provide better support in constrained environments with very little RAM.

The key features of the language, T1, are that it’s embeddable within C-based applications in bare metal systems; it offers lightweight coroutines with strong guarantees on maximum stack usage; and it has a predictable memory layout for easier integration with hardware. It is also type-safe and memory-safe by default and offers generic metaprogramming and flexible object-oriented support. 

The language is an evolution of the T0 programming language, which is integrated into BearSSL, an SSL/TLS library for embedded systems.

“T1 combines many features inspired from other programming languages, but not hitherto found together in a single language. Inspiration has been drawn from, in no particular order, C, Java, C#, Forth, Caml, Rust, Go, and others,” Pornin wrote in the specification. “T1 aims at providing a number of features that are not all obtained together from existing languages.”

The language is a work in progress and is mostly stable. The specification is available here and the source code is available here.