Rust, declared: a program that can't go wrong

What is Declarative Programming?

Declarative Programming is one of the major programming paradigms. Declarative Programming is often defined in contrast to Imperative Programming. In Imperative Programming the programmer defines how a program should work. In Declarative Programming the programmer defines what the outcome of the program should be. There is implicitly more room for interpretation by the compiler in a declarative program than in an imperative program.

What is Imperative Programming?

Computer Assembly Languages are absolutely imperative languages. Assembly Languages define how a program should operate at the most specific level without crossing the hardware/software boundary. Programmable Circuits are similarly imperative languages that do cross the hardware/software boundary.

How is Declarative Programming related to Functional Programming?

Functional Programming is one of the many possible abstractions in Declarative Programming. In Functional Programming the programmer uses functional composition to declare a desired outcome of a program. There are many possible implementation choices that a compiler can make when implementing a functional program. The irreducible semantic component of Functional Programming is the concept of a value passed to a function, performing some operation, then returning a value. As long as the compiler satisfies these semantic contracts when choosing an implementation, the program will not "go wrong" by definition.