domingo, 19 de febrero de 2012

Aplicaciones del lenguaje ensamblador



En los inicios de la programación, los programadores hacían todas las aplicaciones en ensamblador, debido a que tenian que ajustarse a las computadoras que disponían de una capacidad muy baja de memoria y tenían que ser eficientes porque los procesadores eran muy lentos.



Sin embargo conforme paso el tiempo y la capacidad de memoria y procesadores su velocidad la programación se empezó a hacer mas compleja.
Se empezó a usar FORTRAN, C y COBOL. Y tiempo después nació la programación orientada a objetos como C++, C# y Java con los que se pudieron hacer programas complejos con miles de líneas de código.

Es raro ver programas extensos escritos en lenguaje ensamblador, ya que costaría mucho tiempo escribirlo además que es muy fácil de cometer errores. En vez de eso el lenguaje ensamblador se utiliza para optimizar ciertas partes de código, secciones del programa para mejorar la velocidad y acceder directamente al hardware de la computadora.

Comparación entre los lenguajes ensamblador y los lenguajes de alto nivel




Software de aplicación comercial, escrito para una sola plataforma de tamaño mediano a grande





Lenguaje de alto nivel:Es fácil de organizar e identificar partes de código, los lenguajes de alto nivel son muy útiles para este tipo de aplicaciones, se puede dar mantenimiento y añadir código nuevo sin problemas.

Ensamblador:Es difícil mantener ese código tan extenso escrito en ensamblador, crearía muchas dificultades para el programador.

Controlador de dispositivos de hardware





Lenguajes de alto nivel: El lenguaje de alto nivel no es recomendable para acceder al hardware, ya que muchas veces no lo puede hacer y cuando lo hace sus técnicas son complicadas.

Ensamblador: Ensamblador es ideal para controladores ya que el acceso al hardware se hace de manera fácil, rápida y directa. Se pude mantener fácilmente cuando los programas son cortos y están bien documentados.

Aplicaciones comerciales escritas para varios sistemas operativos





Lenguajes de alto nivel: Por lo general son portables y el código fuente se puede recompilar en los sistemas operativos destino, con modificaciones mínimas.

Ensamblador: Es difícil ya que tienen que hacerse diferentes códigos ensamblador para cada sistema operativo, no es nada portable.

Sistemas integrados y juegos de computadora que requieren de un acceso directo a la memoria





Lenguajes de alto nivel: Produce mucho código ejecutable y que no se ejecuta con tanta eficiencia como el ensamblador.

Ensamblador: Ideal porque crea un código ejecutable pequeño y se ejecuta con rapidez.

Portabilidad


C++ es el lenguaje que tiene la capacidad de poder acceder directamente al hardware con características de alto nivel, si embargo no es portable. Los compiladores de C++ convierten el código a ensamblador que el programador puede fácilmente personalizar y refinar antes de ensamblarlo en código ejecutable.

El lenguaje ensamblador no es portable porque su diseño es para una familia de procesadores específica. Hay mucha variedad de lenguajes ensambladores cada uno esta basado en su familia de procesadores. Algunas familias de procesadores conocidos son: Motorola 68x00, Intel, IA-32, SUN Sparc, Vax e IBM-370. Algunas veces el código en ensamblador coincide directamente con la arquitectura del procesador otras veces no, entonces se traduce durante la ejecución mediante un programa dentro del procesador, que se llama intérprete de microcódigo.


Referencias


R. Irvine, Kip. Lenguaje ensamblador para computadoras basadas en Intel. 5th ed. México: Pearson, 2008. Print.

3 comentarios: