Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
El ser humano, a lo largo de la historia, tuvo que lidiar con obstáculos y problemas, y
en su evolución ha desarrollado sistemas informáticos que le ha permitido resolver
estos problemas con mayor facilidad, en forma rápida y precisa.
Como ejemplo de intérprete puede mencionarse Bash, clásico intérprete del sistema
operativo Unix. También puede nombrarse a Basic como ejemplo de un lenguaje
interpretado.
1.2.2. Compilador
Un compilador traduce el código fuente de un programa (alto nivel) en lenguaje
máquina para que el procesador pueda ejecutar sus instrucciones. El código escrito en
lenguaje de alto nivel se denomina código fuente y el traducido se denomina código
objeto. Como ejemplos de lenguajes que utilizan compilación pueden mencionarse C,
Pascal y Cobol.
Para compilar un programa fuente y obtener un programa objeto, deben realizarse una
serie de pasos. Generalmente, el programa objeto que resulta luego de ejecutar la
compilación no se corresponde con el lenguaje máquina, sino que se corresponde con
el lenguaje ensamblador. Para obtener el programa en lenguaje máquina, debe
utilizarse un enlazador o montador. Este es un módulo que junta los paquetes de
código objeto generados en el paso anterior y, junto con otros recursos que pueda
necesitar, como, por ejemplo, bibliotecas, obtiene finalmente el programa objeto en
lenguaje máquina que puede ser ejecutado por el procesador.
Figura 4: Compilador
Fuente: Elaboración propia
Entrada de datos: se capturan los datos que servirán para su posterior procesamiento
y tratamiento de información. Los datos que ingresan al sistema pueden provenir del
exterior de la organización, como también del interior, desde las distintas unidades de
negocio. Esto se puede realizar mediante dispositivos de entrada de información,
como, por ejemplo, teclados, mouses, escáneres, terminales de entrada, etcétera.
Menor flexibilidad.
Mayor seguridad (detección temprana de errores).
Mayor eficiencia.
Aplicable a lenguajes compilados.
Mayor flexibilidad.
Menor seguridad.
Mayor costo de ejecución.
Como ejemplo, se puede mencionar la asignación de un valor a una variable de tipo
referencial. Antes de la ejecución del programa, se desconoce la ubicación exacta en
memoria de la variable referencial, por lo tanto, no se puede realizar la asignación. La
ubicación es conocida en tiempo de ejecución y es en este momento en el que se
realiza la ligadura.
alfabeto;
identificadores;
palabras reservadas;
espacios en blanco;
símbolos de operadores;
expresiones;
delimitadores de código;
comentarios.
Existen metalenguajes que se encargan de definir las reglas que establecen cómo se
deben combinar los símbolos y elementos de un lenguaje de programación. Es
deseable que la sintaxis de un lenguaje sea de fácil lectura, escritura y análisis en
busca de errores, y que no posea ambigüedades.
Por otro lado, el significado que toma cada uno de los elementos de un lenguaje de
programación de acuerdo al contexto define la semántica del lenguaje. La sintaxis no
tiene en cuenta el contexto, mientras que la semántica sí lo hace. Las variables, los
valores y las expresiones son algunos de los elementos principales de la semántica de
un lenguaje de programación. Estos elementos tienen una semántica que indica cómo
debe definírselos. Como ejemplo de aplicación de semántica, se puede mencionar el
chequeo de tipos de datos en expresiones. Este depende del contexto, porque debe
conocerse el tipo de dato esperado y el que actualmente se recibe de la expresión, y
determinar si son compatibles. Por ejemplo, si se utiliza el operador aritmético suma
en una expresión, entonces el tipo de dato esperado es numérico y los operandos
deben ser valores numéricos también.
Un algoritmo se puede representar mediante una descripción de los pasos en lenguaje
natural, diagrama de flujo, pseudocódigo y lenguajes de programación. La descripción
de un algoritmo puede tener distintos niveles de detalle. Se puede comenzar con la
descripción en alto nivel, en la que se utiliza lenguaje natural y se establece cuál es el
problema, cuáles serían los datos de entrada, el proceso que se aplicaría y el
resultado o salida de información que se espera. Esta descripción se realiza en alto
nivel sin incluir demasiados detalles.
Ejemplo 1: realizar un diagrama de flujo que determine y muestre por pantalla los
números pares entre 2 y 100 (inclusives).
Fuente: Elaboración propia
Ejemplo 3: realizar un diagrama de flujo que permita intercambiar los valores de dos
variables numéricas ingresadas por teclado.
Fuente: Elaboración propia
4.4.2. Pseudocódigo
algoritmo Numeros_Pares
var
entero: suma
inicio
suma 🡨 0
repetir
suma 🡨 suma + 2
escribir(suma)
fin
algoritmo Numeros_positivos
var
inicio
cantidad 🡨 1
repetir
leer(num)
escribir(num)
fin-si
cantidad 🡨 cantidad + 1
fin
Ejemplo 3: realizar el pseudocódigo que permita intercambiar los valores de dos
variables numéricas ingresadas por teclado.
algoritmo Intercambio_variables
var
entero: A, B, aux
inicio
leer(A,B)
aux 🡨 A
A 🡨 B
B 🡨 aux
escribir(A,B)
fin
Referencias
Joyanes Aguilar, L. (2008). Fundamentos de programación. Algoritmos, estructura de
datos y objetos. Madrid, ES: McGraw-Hill.