What is Shadow?

Shadow is a type-safe, general purpose, systems language intended to be compiled to machine code. The reference implementation for Shadow uses LLVM, the same infrastructure that the C-family compiler Clang is built on, and targets the x86 and x64 architectures for the Linux, macOS, and Windows operating systems.

Shadow comes out of the C-like family of languages and shares some syntax with C and C++ but even more with Java and C#. It’s a statically-typed language that emphasizes clarity. Don’t get us wrong: Dynamically typed languages like Python, Ruby, and JavaScript are great for productivity, but sometimes you want stronger guarantees that a program does what you think it does. Ultimately, it’s a question of the right tool for the right job.