low-level programming language that allows a programmer to write a program abbreviations of more easily remembered words instead of numbers
second generation of programming languages; uses symbolic instruction codes
similar to machine language, but instead of binary it uses alphabetic codes to represent fundamental operations