Sei sulla pagina 1di 4

DIAGRAMAS DE FLUJO

Podemos decir que un diagrama de flujo, a veces denominados organigramas, es una


representacin grfica de un algoritmo, de forma que se describen las diferentes tareas y la
secuencia en la que se ejecutan para alcanzar una solucin.
En algoritmos complejos podemos usar ms de un diagrama de flujo. Disearemos el diagrama de
flujo principal y a partir de l iremos diseado diagramas de cada tarea que se puede realizar a
partir de la inicial.
Ya hemos visto representaciones de este tipo de elemento en los Apartados 1.3.2 y 1.3.6, a
continuacin vamos a concretar qu tipo de figuras se usan y qu tipo de informacin
proporcionan.

REGLAS PARA DISEAR DIAGRAMAS DE FLUJO


A la hora de crear nuestro propio diagrama de flujo debemos tener en cuenta que:
Siempre debemos incluir una forma con el texto Inicio y otra con el texto Fin para
delimitar los momentos en que empieza y acaba el algoritmo.
Debemos usar una serie de smbolos estndar.
Los elementos del diagrama de flujo deben estar concatenados mediante flechas que
indican la direccin de ejecucin derecha.
Debemos evitar el cruce de lneas, para eso se define la forma conector. El uso de
conectores debe producirse cuando no exista otra opcin.
Todas las lneas de flujo deben estar conectadas a algn objeto.
A la hora de escribir texto en las formas, este debe ser escueto y legible.
Todos los smbolos de decisin deben tener ms de una lnea de salida, es decir, deben
indicar qu camino seguir en funcin de la decisin tomada.
Existen otras formas que pueden usarse en un diagrama de flujo pero no creemos que sea necesario
profundizar en ellas.
Si el alumno lo desea puede localizar ms
informacin sobre diagramas de flujo u
organigramas en la web o bibliografa aportada por
el profesor.

ACTIVIDAD 1
Dado el siguiente organigrama, indica qu tarea realiza.

ACTIVIDAD 2
Realiza el diagrama de flujo tal que se d un dato de entrada X.
Si la X es igual a 1 mostraremos el texto Has pulsado 1. En caso
de que sea 2 el texto a visualizar ser Has pulsado 2.

PSEUDOCDSGO
La palabra pseudocdigo puede ser traducida como falso lenguaje, y no hay nada ms acertado que
su definicin. Un pseudocdigo es una descripcin informal de un programa, siendo de gran utilidad
a la hora de disear el algoritmo del mismo. En pseudocdigo usamos lenguaje natural o similar
para representar estructuras propias del lenguaje de programacin que usaremos en la codificacin,
es decir, simulamos un lenguaje de programacin.
El pseudocdigo, aunque usa el lenguaje natural, no utiliza su amplia variedad de palabras, se
seleccionan una serie de palabras como reservadas para representar todas las estructuras que
posteriormente debern ser codificadas mediante el lenguaje de programacin.
Se han visto ejemplos de pseudocdigo en los apartados 1.3.2 y 1.3.6. Estudiaremos en ms
profundidad las palabras reservadas en pseudocdigo cuando empecemos a conocer las diferentes
estructuras de control y su significado en el Captulo 2.

PROCESO DE COMPILACIN
Cuando estudibamos los tipos de lenguajes de programacin veamos que en funcin de cmo se
ejecutaban, tenamos lenguajes de programacin compilados y lenguajes de programacin
interpretados.
En este apartado vamos a estudiar el proceso de compilacin de un software. La palabra
compilacin refiere a la traduccin de un programa en cdigo fuente a cdigo mquina o bytecode.
Compilador ser el nombre de la herramienta software que es capaz de realizar la traduccin.

Un compilador est formado por dos partes fundamentales, cada una de ellas se divide en otras
tantas necesarias para cubrir todos los pasos del proceso. As, dispone de: Anlisis y Sntesis.
La parte de anlisis seencarga de lacomprobacin delas lneas de cdigo, anlisis lxico, sintctico y
semntico. La partede sntesis es la encargadade la obtencin del cdigo objeto.
Esta, a su vez, se divide en diferentes fases donde se genera cdigo intermedio y se optimiza.
La fase de anlisis est compuesta por:
Anlisis lxico. Este anlisis se encarga de comprobar si las palabras introducidas son
correctas. Se eliminan espacios en blanco, lneas vacas, comentarios, etc. El cdigo fuente
se lee de izquierda a derecha formando tokens, que no son ms que consecucin de letras
que forman una palabra reservada vlidas o bien un dato.
Anlisis sintctico. Pasado el anlisis lxico y habindose comprobado que todas las
palabras introducidas son propias del lenguaje, realizaremos el anlisis sintctico del cdigo.
En el anlisis sintctico se comprueba la estructura de las frases, si son correctas y estn
formadas segn el lenguaje de programacin que hayamos usado.
Anlisis semntico. Este anlisis se encarga de deducir si todas las instrucciones poseen un
significado semntico correcto. Por ejemplo, si tenemos una lnea de cdigo donde se asigna
una cadena de caracteres a un valor entero, se producir un error semntico ya que el lugar
donde se va a almacenar el dato debera estar preparado para nmeros y no letras.
La fase de sntesis de divide en:

Generacin de cdigo intermedio. Existen compiladores que generan un cdigo


intermedio. Esta representacin intermedia no es an cdigo mquina de forma que puede
ser usada por cualquier hardware, es algo as como un cdigo capaz de ser utilizado por
diversos tipos de hardware. Llegados a este punto se han superado las fases de anlisis con
lo que si existan errores de compilacin estos se han subsanado.
Optimizacin de cdigo. La optimizacin, como su nombre indica, procurar mejorar el
cdigo intermedio, de forma qu se consiga un cdigo objeto ms rpido de ejecutar.
Generacin de cdigo objeto. Tras la etapa de optimizacin se obtendr el cdigo objeto
preparado para ser usado en una mquina concreta.

Todas las partes descritas estn siempre relacionadas con la tabla de smbolos y el manejador de
errores.
Bsicamente la tabla de smbolos no es ms que una estructura que contiene informacin de todos
los tokens que pueden usarse en un lenguaje de programacin concreto. Los analizadores lxico,
sintctico y semntico agregarn informacin a la misma ya que existirn identificadores y otro tipo
de elementos que no forman parte de las palabras reservadas del lenguaje.
En cuanto al manejador de errores, es la parte encargada de tratar los posibles fallos producidos
durante toda la compilacin en las diferentes etapas.
Supongamos que hemos usado un programa preparado para escribir cdigo en un lenguaje de
programacin concreto. Hemos generado un fichero con cdigo fuente y queremos proceder a su
compilacin para poder ejecutarlo. Este fichero contiene la instruccin int a=b+2;. Es una lnea
muy sencilla, con ella estamos creando un lugar donde guardar informacin entera llamado a,
concretamente el valor a almacenar es la suma de b ms 2.

Una vez se han descrito las partes de un compilador, teniendo en cuenta nuestro cdigo fuente, el
proceso de compilacin se podra reducir a:
1. Recibimos el cdigo fuente, int a=b+2; y comenzamos la fase de anlisis. Primera etapa
a superar, el analizador lxico.
2. Se separa la instruccin formando diferentes tokens. Obtendremos: int, a, =, b, +, 2,
3. Los tokens analizados son correctos. Algunos como int, =, + se encuentran en la tabla
de smbolos con anterioridad, el resto se agrega a esta.
4. Al ser correcto el anlisis lxico pasamos al anlisis sintctico.
En este paso debemos aseguramos de que la frase o instruccin sea correcta. Se genera un rbol
sintctico por el que se deduce si la instruccin est bien formada en el lenguaje de programacin
que estamos usando. En todo momento el manejador de errores estar alerta por si se produce algn
tipo de error en alguna etapa.
5. Si no se han producido fallos en la estructura de la frase pasaremos a comenzar el
anlisis semntico. Los errores sintcticos son errores de estructura, frases o
instrucciones mal formadas en un lenguaje concreto, por ejemplo si nuestra instruccin
hubiera sido int a==b+2; se hubiera producido un error sintctico, ya que en una
asignacin tras el igual debe aparecer valor o variable y no otro igual. El anlisis
semntico analizar el significado de la frase. La palabra int indica que
estamos creando una variable de tipo entera, as, b debe serlo para que alrealizar la suma
el resultado sea entero y pueda almacenarse en a.
6. Si la fase semntica es superada correctamente se generar un cdigo intermedio.
7. A continuacin se producir la optimizacin del cdigo intermedio.
8. Para finalizar el compilador obtendr el cdigo objeto, cdigo mquina,
listo para
ser
linkado" o unido a diferentes libreras, y as obtener el fichero final a ejecutar.

NUEVAS TENDENCIAS EN EL PROCESO DE CREACIN DE CDIGO


OBJETO
Los lenguajes de programacin actuales utilizan un modelo hbrido para la obtencin del cdigo
objeto. Cuando generamos un cdigo mquina tenemos en cuenta unas caractersticas hardware
concretas, es decir, estamos obteniendo un cdigo objeto para un procesador concreto. As, si
queremos que un cdigo fuente sea ejecutado en varias arquitecturas ser preciso compilar estas
para cada una de ellas.
Con el fin de ser ms verstiles y puedan generar cdigo fuente traducido a objeto accesible por un
mayor nmero de arquitecturas evitando el proceso de compilacin, los lenguajes de programacin
de hoy da generan un cdigo intermedio. Exactamente crean una mquina virtual para la que
desarrolla el cdigo compilado que posteriormente ser interpretado por el hardware real en el que
se ejecutar.
As, podemos decir que existen lenguajes de programacin hbridos tales que:
Compilan el cdigo fuente para obtener un cdigo intermedio.
El cdigo intermedio es interpretado cuando pasa a ser ejecutado sobre una mquina
concreta.

Potrebbero piacerti anche