Portabilidad
Publicado por Mario CL (5 intervenciones) el 07/08/2019 17:48:54
Hola a todos. Me estoy iniciando en la programación en lenguaje ensamblador, por eso disculpar si la duda que tengo y os planteo os parece absurda, pero es que soy todavía un principiante.
He leído en multitud de publicaciones que una cosa incómoda que tiene la programación en ensamblador es que no es portable, es decir, solo funcionará con los mismos procesadores para los que se haya realizado la aplicación. En mi caso estoy aprendiendo con la familia de Intel x86.
Por otro lado he leído también que ese inconveniente no lo tienen los lenguajes de más alto nivel como C, C++, C#, Java, etc. Lo que parece ser que quieren decir es que son portables entre distintos procesadores, arquitecturas, sistemas operativos, etc. sin problema alguno.
Mi pregunta, y es lo que no entiendo, es la siguiente:
Si los lenguajes de más alto nivel al final también son traducidos al lenguaje máquina (como el caso del ensamblador que también es traducido a ceros y unos), ¿porque ellos si son portables entre distintos procesadores?. Cuando se compilan los programas hechos en esos leguajes de más alto nivel, ¿como sabe el compilador con que microprocesador se van a ejecutar para que puedan tener total compatibilidad?. ¿Cual es la explicación de esta aparente portabilidad universal de los lenguajes de alto nivel?.
Muchas gracias de antemano a todos los que podáis responder.
Un saludo a todos.
He leído en multitud de publicaciones que una cosa incómoda que tiene la programación en ensamblador es que no es portable, es decir, solo funcionará con los mismos procesadores para los que se haya realizado la aplicación. En mi caso estoy aprendiendo con la familia de Intel x86.
Por otro lado he leído también que ese inconveniente no lo tienen los lenguajes de más alto nivel como C, C++, C#, Java, etc. Lo que parece ser que quieren decir es que son portables entre distintos procesadores, arquitecturas, sistemas operativos, etc. sin problema alguno.
Mi pregunta, y es lo que no entiendo, es la siguiente:
Si los lenguajes de más alto nivel al final también son traducidos al lenguaje máquina (como el caso del ensamblador que también es traducido a ceros y unos), ¿porque ellos si son portables entre distintos procesadores?. Cuando se compilan los programas hechos en esos leguajes de más alto nivel, ¿como sabe el compilador con que microprocesador se van a ejecutar para que puedan tener total compatibilidad?. ¿Cual es la explicación de esta aparente portabilidad universal de los lenguajes de alto nivel?.
Muchas gracias de antemano a todos los que podáis responder.
Un saludo a todos.
Valora esta pregunta
0