What is the difference between a statically typed and dynamically typed language?