Computer languages allow humans to communicate with computers through programming. There are different types of computer languages at different levels of abstraction from machine language up to high-level languages. High-level languages are closer to human language while low-level languages are closer to machine-readable code. Programs written in high-level languages require compilers or interpreters to convert them to machine-readable code that can be executed by computers.