Low-level programming language in which there is a very strong correspondence between the program's statements and the architecture's machine code instructions
General-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible