Assembly languages and linkers were perhaps the first tools used to abstract features of the bare machine.