Programming languages are a core tool of what we as hackers work with, but their design, implementation, and properties are also a field of scientific study, frequently called "PL theory", which deals with program semantics, verification (etc.) and often also overlaps with other fields of mathematics and logic (type theory, category theory, etc.).