* one instruction of high level=many instructions of machine code
* portable- same code works for many different machines and processers
* easy for programmer to store data (e.g. in arrays) without knowledge of memory structure
* code is close to english so is easy to read and understand