λλ: A Programming Language That Makes Silicon Photonics Compile
λλ: A Programming Language for Silicon Photonics

Researchers from Cornell University and Nysernet present λλ, a programming language for silicon photonics that uses a linear type system to enforce the physical constraints of optics, rejecting unrealizable programs at compile time. The compiler maps well-typed programs onto arbitrary photonic switches while minimizing signal loss, scaling to switches with over 100,000 elements. It handles circuit switching, rotor switching, and analog in-network computation, and includes a synthesizer for automatic program generation.
λλ uses a linear type system to encode the physical constraints of optics, rejecting unrealizable programs at compile time.
- tromp
The second λ is subscripted. As footnote 1 in the paper says:
> Pronounced “lambda lambda”. One λ refers to the λ-calculus and the other refers to an optical wavelength.
- deepsun
Full syntax of λλ (from the paper):
e ::= v | x | input(p)
| let x = e1 in e2
| (e1, e2)
| unpack e1 as (x1, x2) in e2
| phase(θ, e)
| split(r, e)
| unitary(U, (e1, e2))
| output(p) <- e1; e2
v ::= r ↓ ℝ | p ↓ Port | U ↓ Unitary | ()
τ ::= ℝ | Port | Opt | Unitary | Unit |(τ1 * τ2)
- ktallett
I am curious why develop a new language instead of building a library for an existing language. What are the benefits as I didn't see this in the paper? Can it interact with other languages?