Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ÍNDICE
3. PROGRAMA 10
3.1. Programación estructurada ................................................................................................................ 10
3.2. Programación modular ...........................................................................................................................11
4. CODIFICACIÓN 11
5. LENGUAJE DE PROGRAMACIÓN 11
5.1. Por nivel .....................................................................................................................................................11
5.1.1. Lenguajes de programación de bajo nivel 12
6. TRADUCTOR 13
6.1. Compilador................................................................................................................................................ 14
6.2. Intérprete ............................................................................................................................................... 17
6.3. Comparativa ............................................................................................................................................ 19
Análisis
Problema
Paso
Algoritmo
directo
Programa
Codificación
2. ALGORITMO
Un algoritmo es una secuencia ordenada de pasos. Este método para resolver problemas es
independiente del lenguaje de programación y del ordenador. Puede ser escrito en lenguaje natural.
Hay tres métodos para describir algoritmos que son: descripción narrada, diagrama de flujo y
pseudocódigo.
Ejemplo: Cuando quiero ver una película de vídeo, podría hacer los siguientes pasos:
Fíjate bien en unos detalles que son fundamentales y que aparecen en este algoritmo:
El lenguaje de este algoritmo está escrito en nuestro idioma, pero ahora necesitamos
acercarnos un poco más al lenguaje del ordenador. Pero el primer paso para realizar un programa es
sacar su algoritmo, que consiste en explicar lo que queremos que haga nuestro programa.
Un diagrama de flujo debe proporcionar una información clara, ordenada y concisa de todos
los pasos a seguir.
Los símbolos que se usan para realizar los diagramas de flujo son los siguientes:
3) A un símbolo de decisión pueden llegarle varias líneas, pero sólo saldrán dos (Sí o No, Verdadero
o Falso).
4) A un símbolo de inicio nunca le llegan líneas.
NOTA: Si uno tiene experiencia puede prescindir del algoritmo escrito, pero siempre
tendremos que tenerlo en mente para hacer el diagrama de flujo sin equivocarnos.
Ejemplo 2: Imaginemos que tenemos una lámpara o bombilla y queremos hacer un diagrama de
flujo para saber qué hacer cuando la lámpara no funciona.
Ejemplo 3: Imaginemos que queremos hacer un diagrama de flujo para activar el diodo LED si
se ha presionado el pulsador.
Ejemplo 4: Realiza un diagrama de flujo para leer tres números, calcular el valor medio y
mostrar por pantalla al usuario el resultado sería:
2.3. Pseudocódigo
El pseudocódigo es una forma de escribir los pasos, pero de la forma más cercana al lenguaje de
programación que vamos a utilizar, es como un falso lenguaje, pero en nuestro idioma, en el lenguaje
humano.
Por eso es bueno utilizar el pseudocódigo, algo así como un falso lenguaje de programación en
español, que ayuda a asimilar con más facilidad las ideas básicas.
Ejemplo 1: Si queremos escribir algo en pantalla, en pseudocódigo podríamos poner:
Escribir "Hola"
También podemos usar:
Inicio
Fin
Otra forma muy utilizada sería:
Proceso NombreDelPrograma
Escribir. Escribe en pantalla el texto que pongamos entre comillas dobles o también puede
escribir en pantalla el valor de una variable.
Ejemplos:
Ejemplo 2: Un algoritmo escrito en pseudocódigo para leer la edad de una persona sería:
Inicio
2.4. Ejemplos
A continuación, vamos a ver algunos ejemplos donde se aplique todo lo que hemos visto hasta el
momento sobre algoritmos.
3. PROGRAMA
Un programa es un conjunto de instrucciones que se ejecutan en el ordenador .
El programa puede ser lineal y no lineal.
Las tres partes fundamentales que debe tener un programa son: entrada, programa y salida.
Programa
Entrada Salida
(algoritmo)
Caja negra
Las características más importantes de los programas son: legibilidad, portabilidad,
modificabilidad, eficiencia, modularidad y estructuración.
Según el Teorema de Böhm y Jacopini, “todo programa propio puede escribirse utilizando
únicamente tres tipos de estructuras de control: secuencial, selectiva (o de selección) y repetitiva”.
La estructura selectiva se divide en: simples (if), dobles (if…else) y múltiples (switch).
4. CODIFICACIÓN
La codificación consiste en escribir la solución en la sintaxis de un lenguaje de programación .
5. LENGUAJE DE PROGRAMACIÓN
Un lenguaje de programación es el medio para escribir las instrucciones del algoritmo . Define
el conjunto de símbolos y reglas sintácticas y semánticas, que definen el significado de sus elementos y
expresiones.
Los lenguajes de programación se pueden clasificar por nivel o por la forma de ejecutarse.
Lenguaje ensamblador: está basada en los “mnemónicos” (por ejemplo: ADD, LOAD,…), que son
grupos de caracteres alfanuméricos que simbolizan las órdenes o tareas a realizar.
6. TRADUCTOR
Los programas creados con estos lenguajes de programación tienen que ser traducidos a
lenguaje máquina, es decir, al sistema binario para que puedan ser ejecutados.
Un traductor es un programa que toma como entrada un texto escrito en un lenguaje (código
fuente) y lo traduce a otro texto de salida en un lenguaje diferente (código objeto).
Compilador ≠ Intérprete
6.1. Compilador
Un compilador es un programa que traduce el programa fuente escrito en lenguaje de alto nivel
a lenguaje máquina.
Ejemplo: Su acción equivale a la de un traductor humano, que toma un libro y produce otro
equivalente escrito en otra lengua.
Un programa escrito en lenguaje de alto nivel (en el editor del lenguaje) se llama programa
fuente o código fuente y el programa traducido programa objeto o código objeto.
El programa objeto obtenido de la compilación no ha sido traducido normalmente a código
máquina sino a ensamblador. Para conseguir el programa máquina real se debe utilizar un programa
llamado montador o enlazador (linker).
La traducción del programa completo se realiza en una sola operación denominada compilación
del programa, es decir, se traducen todas las instrucciones del programa en un solo bloque , el programa
compilado y depurado se denomina programa ejecutable porque ya se puede ejecutar directamente y
cuantas veces se desee, sólo deberá volver a compilarse de nuevo en el caso que se modifique alguna
instrucción del programa. De este modo, el programa ejecutable no necesita del compilador para su
ejecución.
Código fuente: hola.c que está escrito con instrucciones de la sintaxis del lenguaje de alto
nivel. En lenguaje C.
Código objeto: hola.o que está escrito con instrucciones de la sintaxis del procesador (lenguaje
de bajo nivel). En lenguaje ensamblador.
Código ejecutable: hola.exe que está escrito con instrucciones del código máquina. En binario (0
y 1).
Ejemplos:
gcc hola.c
Compila el programa en C hola.c y genera un archivo ejecutable a.out.
gcc -o hola hola.c
Compila el programa en C hola.c y genera un archivo ejecutable hola.exe.
gcc -c hola.c
No genera el ejecutable, sino el código objeto, en el archivo hola.o. Si no se indica un nombre
para el archivo objeto, usa el nombre del archivo en C y le cambia la extensión por “.o”.
gcc -c -o objeto.o hola.c
Genera el código objeto indicando el nombre de archivo, que es objeto.o.
1) Escritura del programa fuente con un editor (programa que permite a una computadora actuar
de modo similar a una máquina de escribir electrónica) y guardarlo en un dispositivo de
almacenamiento (un disco).
NOTA:
El tiempo que se necesita para traducir un lenguaje de alto nivel a lenguaje objeto se denomina
tiempo de compilación.
6.2. Intérprete
Un intérprete es un traductor que toma un programa fuente, lo traduce y, a continuación, lo
ejecuta.
Ejemplo: Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre
la marcha, sin producir ningún escrito permanente.
El intérprete no produce un código objeto, siendo su ejecución simultánea a la del programa
fuente.
El sistema de traducción consiste en: traducir la primera sentencia del programa a lenguaje
máquina, se detiene la traducción, se ejecuta la sentencia y a continuación se traduce la siguiente
sentencia, se detiene la traducción, se ejecuta la sentencia, y así sucesivamente hasta terminar el
programa.
Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de
traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de
programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar
partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa
interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio
intérprete (lo que se conoce comúnmente como máquina virtual).
Ejemplo: Programa Hola Mundo escrito en el lenguaje de programación Java. Éste consiste en
sacar por pantalla la archiconocida frase de “Hola Mundo”.
Lo primero que tendremos que hacer en Java será crear la clase HolaMundo.
Para compilar y ejecutar este código tendremos que ejecutar las siguientes sentencias:
javac HolaMundo.java
java HolaMundo
javac es el compilador de Java. Sirve para compilar el código fuente con extensión “.java” de los
programas escritos en Java y generar los archivos bytecode con extensión “.class” correspondientes.
Dichos archivos con extensión “.class” se podrán ejecutar en la máquina virtual de Java (Java Virtual
Machine, JVM). En este caso, ha creado el archivo HolaMundo.class.
java es el intérprete de Java. Es un componente de la JVM capaz de interpretar los archivos
bytecode con extensión “.class” en el ordenador.
6.3. Comparativa
Los intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen
complementarios:
Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del
lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. En
cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces
como se ejecute (incluso miles o millones de veces).
Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo
ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este
tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que
incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman
interpretativos. Los lenguajes compilados, que permiten el uso de un compilador, prescinden de
este tipo de operadores.