second generation of programming languages; uses symbolic instruction codes
low-level programming language that allows a programmer to write a program abbreviations of more easily remembered words instead of numbers
classified as a low-level language because it is machine specific, typically reads a program written in an assembly language, which has two parts: the op code and the operand