So as the title suggests, How does a programing language, such as Java or C, abstract itself away  from underlying byte machines?Im curious, because I know that static/dynamic typing, data abstraction and control abstraction play a role. But I don't understand it so I was wondering if anyone could shed a nice explanation on this question!Thanks a lot in advance!EDIT: I currently have this as an explanation so far..Programming languages tend to abstract away from the underlying byte  machines to provide a high-level view for the programmer. This can be  for multiple reasons ranging from making code easier to write and  debug, to solving platform issues.One way languages abstract themselves away is through typing. Using  java as an example, it uses predefined base types of a certain size,  including but not limited to: int, float and char. It also uses  object/structured types which have a dynamic size such as Object and  String. Like some others, it provides a garbage-collection and automatic memory management utility. This makes it abstract even  further away as you can worry less about allocating memory space to  data types, compared to a language like C.
How does a language abstract away from underlying byte machines?
programming languages;typing;research