The languages, codes and messages that programs use to communicate with each other and to the hardware.