A programming language is said to be strongly-typed when it pre-defines specific primitive data types, requires that all constants and variables be declared of a specific type, and enforces their proper use by imposing rigorous rules upon the programmer for the sake of creating robust code that is consistent in its execution.