Programming has always been the process of converting requirements into instructions that have meaning to the underlying hardware. First generation languages were closely tied to the hardware, requiring the human operator to physically manipulate toggle switches to enter in the machine language instructions directly.