General purpose programming language
Dynamic programming language
High-level interpreted programming language
All of the above