7.6. Lenguajes de programación de alto nivel¶
Es raro que los programadores escriban programas directamente en lenguaje máquina o ensamblador. Los archivos ejecutables de la mayoría de las aplicaciones contienen cientos de miles o incluso millones de instrucciones en lenguaje máquina. Sería muy difícil crear algo así desde cero.
Los lenguajes de programación de alto nivel se inventaron para abstraer los detalles del código máquina y ayudar a los programadores a concentrarse en la resolución de problemas. Mientras que podría tomar 3 o 4 líneas de código para sumar dos números utilizando el lenguaje ensamblador, esta tarea podría llevarse a cabo con una sola instrucción en un lenguaje de programación de alto nivel como C++, Java o Python. Con un lenguaje de alto nivel, un programador crea un programa utilizando poderosas y «grandes» operaciones que luego se convertirán en muchas pequeñas operaciones de máquina.
Los programas escritos en un lenguaje de alto nivel deben ser convertidos a código máquina para ejecutarse. Esto se hace con antelación convirtiendo un programa completo a código máquina con un programa compilador (compilar el código), o línea por línea mientras el programa se ejecuta mediante un intérprete. Una línea en un lenguaje de programación de alto nivel puede convertirse en una o docenas de instrucciones de máquina. Esto no sólo significa que hay menos código que escribir, sino también que hay menos código que depurar: cuando algo va mal, suele ser más fácil de localizar.
Las pestañas de abajo muestran el aspecto que puede tener el código en varios niveles de lenguaje. Imagina que estamos diseñando un software para el terminal de ventas de un restaurante; vamos a ver la parte del código que podría calcular la propina del 15% que se añade automáticamente a los grupos grandes. (Nota: todos los idiomas están formados por representantes de un determinado nivel – no te preocupes por los detalles de cada uno.)
Para calcular la cantidad total que se debe, primero multiplica el precio total de la comida por 0,15. Esto te da la propina de la comida. A continuación, súmalo al precio de la comida para encontrar la cuenta total.
tip = mealCost * 0.15bill = mealCost + tip
LOAD MealCostMULT TIPRATESTORE TipLOAD MealCostADD TipSTORE Bill
010101011110010111110110101011101101101010010101010111011000111100010101011111001101101010111111
Nótese que el lenguaje de alto nivel es mucho más compacto que el ensamblador o el código máquina y, aún más importante, nos permite expresar un algoritmo a un nivel mucho más cercano al dominio del problema real. En lugar de preocuparnos por cargar y almacenar valores en los registros, podemos expresar comandos que se parecen más a los cálculos normales: tip = mealCost * 0.15
.
Online Interactive Modules for Teaching Computer Science por Osman Balci et al.
Introduction to Computer Science using Java por Bradley Kjell (CC BY-NC 3.0)