Low-level programming language in which there is a very strong correspondence between the program's statements and the architecture's machine code instructions
High-level, interpreted programming language. It is a language which is also characterized as dynamic, weakly typed, prototype-based and multi-paradigm