I've heard these terms thrown around describing languages before, like **C** is not quite a low level language, C++ is a mid level, and Python is a High level language. I understand that it has to do something with the way the code is compiled, and how it is written. But what I want to know is what defines a language into one of those 3 categories? Are these absolute categories, or just a general idea programmers use to describe languages to each other?