Static, Dynamic, Compiled, Interpreted

I ran into these phrases and tried to get an idea of what they mean. Below are just some generalized definitions I could find online.

In a statically typed language, variable types are checked at compile time. This helps catch certain errors earlier.

In a dynamically typed language, variables are interpreted at run time, making writing programs a little easier.

A compiled language is when the code is translated to machine code.

In an interpreted language, the code is not executed on the target machine, but on another program.