a language that functionality equivalent to machine language but is easier for people to read, write, and understand
similar to machine language, but instead of binary it uses alphabetic codes to represent fundamental operations
second generation of programming languages; uses symbolic instruction codes