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
gives instructions to cpu as fundamental operations written as alphabetic codes