DFPR U1 EA EDML
FUNDAMENTOS DE PROGRAMACION
Autorreflexión
Eduardo Marin Lopez
Lenguajes de programación
Los lenguajes de computadora se utilizan para resolver problemas, y ha habido miles de años de trabajo en matemáticas para este fin. Los lenguajes de programación están especificados por reglas para formar instrucciones correctas, organizándolas en módulos, someterlashacia un compilador, el cual traduce el código en un lenguaje comprensible para una máquina en particular, y finalmente ejecutar el programa, es decir, someter la entrada hacia la computadora, la cual transforma en una salida de acuerdo con las instrucciones en el programa.
Cuando usamos una computadora, estamos intentado resolver un problema. Puede ser un problema de negocios, que involucraganancias y pérdidas; un problema científico que emplea modelos de comportamiento físico; una investigación estadística que evalúa la posibilidad de que ocurra algún evento; etc.
En general, una computadora, sólo es capaz de realizar tres operaciones básicas:
Sumar, restar, multiplicar y dividir dos valores numéricos.
Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad deprogramarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno.
John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, quealmacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí.
¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitíaalmacenar números binarios.
La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación (opcode) . Por ejemplo, una calculadora programable simple podría asignar los opcodes :
1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.
Supongamos que queremos realizar la operación 5 * 3 + 2, en la calculadoradescrita arriba. En memoria, podríamos "escribir" el programa de la siguiente forma:
Localidad Opcode Significado Comentario 0 5 5 En esta localidad, tenemos el primer número de la fórmula 1 3 * En esta localidad, tenemos el opcode que representa la multiplicación. 2 3 3 En esta localidad, tenemos el segundo número de la fórmula 3 1 + En esta localidad, tenemos el opcode que representa la suma. 4 22 En esta localidad, tenemos el último número de la fórmula
Podemos ver que con esta representación, es simple expresar las operaciones de las que es capaz el hardware (en este caso, nuestra calculadora imaginaria), en la memoria.
La descripción y uso de los opcodes es lo que llamamos lenguaje de máquina . Es decir, la lista de códigos que la máquina va a interpretar como instrucciones, describelas capacidades de programación que tenemos de ella; es el lenguaje más primitivo, depende directamente del hardware, y requiere del programador que conozca el funcionamiento de la máquina al más bajo nivel.
Los lenguajes más primitivos fueron los lenguajes de máquina. Esto, ya que el hardware se desarrolló antes del software, y además cualquier software finalmente tiene que expresarse en ellenguaje que maneja el hardware.
La programación en esos momentos era sumamente tediosa, pues el programador tenía que "bajarse" al nivel de la máquina y decirle, paso a pasito, cada punto de la tarea que tenía que realizar. Además, debía expresarlo en forma numérica; y por supuesto, este proceso era propenso a errores, con lo que la productividad del programador era muy limitada. Sin embargo, hay...
Regístrate para leer el documento completo.