Estructura general de un programa

De EcuRed
Estructura general de un programa
Información sobre la plantilla

Estructura general de un programa. Un programa puede considerarse como una secuencia de acciones (instrucciones) que manipulan un conjunto de objetos (datos).

Contenido

Bloques de un programa

  • Bloque de declaraciones: en él se especifican todos los objetos que utiliza el programa (constantes, variables, tablas, registros, archivos, etc.).
  • Bloque de instrucciones: constituido por el conjunto de operaciones que se han de realizar para la obtención de los resultados deseados.

Partes principales de un programa

Dentro del bloque de instrucciones de un programa se pueden diferenciar tres partes fundamentales. En algunos casos, estas tres partes están perfectamente delimitadas, pero en la mayoría sus instrucciones quedan entremezcladas a lo largo del programa, si bien mantienen una cierta localización geométrica impuesta por la propia naturaleza de las mismas.

  • Entrada de datos: la constituyen todas aquellas instrucciones que toman datos de un dispositivo externo, almacenándolos en la memoria central para que puedan ser procesados.
  • Proceso o algoritmo: está formado por las instrucciones que modifican los objetos a partir de su estado inicial hasta el estado final, dejando éstos disponibles en la memoria central.
  • Salida de resultados: conjunto de instrucciones que toman los datos finales de la memoria central y los envían a los dispositivos externos.

Clasificación de las Instrucciones.

Una instrucción se caracteriza por un estado inicial y final del entorno. El estado final de una instrucción coincide con el inicial de la siguiente. No siempre una instrucción modifica el entorno, pues su cometido puede limitarse a una mera observación del mismo o a un cambio en el orden de ejecución de otras. Las instrucciones pueden ser:

  • Instrucciones de declaración: Se utilizan en aquellos lenguajes de programación que no tienen declaración explícita de los objetos. Su misión consiste en indicar al procesador que reserve espacio en la memoria para un objeto del programa, indicando asimismo su nombre, tipo y características.
  • Instrucciones primitivas: Son aquellas que ejecuta el procesador de modo inmediato. Las principales son asignación, entrada y salida.
  • Instrucción de asignación: Consiste en calcular el valor de una expresión y almacenarlo en una variable. En algún lenguaje es preciso calcular previamente el resultado de la expresión, pues la instrucción de asignación sólo permite el movimiento de un valor simple.
  • Instrucción de entrada: Toma un dato de un dispositivo de entrada y lo almacena en un objeto. En algún lenguaje, los datos de entrada no provienen de un dispositivo externo, sino que han sido colocados previamente en el mismo programa.
  • Instrucción de salida: Toma el valor de una expresión u objeto y lo lleva a un dispositivo externo.
  • Instrucciones compuestas: Son aquellas que el procesador no puede ejecutar directamente, sino que realiza una llamada a un subprograma, subrutina o párrafo.
  • Instrucciones de control: Son aquellas de controlar la ejecución de otras instrucciones.
  • Instrucción alternativa: Controla la ejecución de unas u otras instrucciones según una condición. Puede ser simple o doble (SI y SINO).
  • Instrucción de salto incondicional: Altera la secuencia normal de ejecución de un programa, continuando la misma en la línea indicada en la propia instrucción (IR A).
  • Instrucción de salto condicional: Altera la secuencia normal de ejecución de un programa únicamente en el caso de cumplimiento de una condición asociada a la propia instrucción (SI ... IR A).
  • Instrucción repetitiva: Hace que se repitan una o varias instrucciones un número determinado o indeterminado de veces (PARA, MIENTRAS, HASTA e ITERAR).

Elementos auxiliares de un programa

Son variables que realizan funciones específicas dentro de un programa, y por su gran utilidad, frecuencia de uso y peculiaridades, conviene hacer un estudio separado de las mismas. Las más importantes son:

  • Contadores: Un contador es un campo de memoria cuyo valor se incrementa en una cantidad fija, positiva o negativa, generalmente asociado a un bucle. Toma un valor inicial antes de comenzar su función, y cada vez que se realiza el suceso, incrementa su valor. Se utiliza en los siguientes casos:
    • Para contabilizar el número de veces que es necesario repetir una acción (variable de control de un bucle).
    • Para contar un suceso particular solicitado por el enunciado del problema (asociado a un bucle o independientemente).
  • Acumuladores: Un acumulador es un campo de memoria cuyo valor se incrementa sucesivas veces en cantidades variables. Se utiliza en aquellos casos en que se desea obtener el total acumulado de un conjunto de cantidades, siendo preciso inicializarlo con el valor 0. También en las situaciones en que hay que obtener un total como producto de distintas cantidades se utiliza un acumulador, debiéndose inicializar con el valor 1.
  • Interruptores (switches): Un interruptor es un campo de memoria que puede tomar dos valores exclusivos (0 y 1, -1 y 1, FALSO y CIERTO, etc.). Se utiliza para:
    • Recordar en un determinado punto de un programa la ocurrencia o no de un suceso anterior, para salir de un bucle o para decidir en una instrucción alternativa qué acción realizar.
    • Para hacer que dos acciones diferentes se ejecuten alternativamente dentro de un bucle.

Tipos de programas

Un programa, por lo general, estará compuesto por una secuencia de acciones, algunas de las cuales serán alternativas o repetitivas. En determinados programas sencillos, no se da esta mezcla de acciones, en cuyo caso se pueden clasificar como sigue:

  • Programas lineales: consisten en una secuencia de acciones primitivas (su ejecución es lineal en el orden en que han sido escritas).
  • Programas alternativos: consisten en el anidamiento de acciones alternativas (las tablas de decisión se realizan mediante programas alternativos).
  • Programas cíclicos: son aquellos en los que un conjunto de acciones se repiten un número determinado o indeterminado de veces (un programa de este tipo se denomina bucle).

Otra clasificación relativa a la aplicación desarrollada por el programa es:

  • Programas de gestión: se caracterizan por el manejo de gran cantidad de datos con pocos cálculos (resuelven problemas de gestión).
  • Programas técnicos-científicos: al contrario que los anteriores, realizan gran cantidad de cálculos con pocos datos (revuelven problemas matemáticos, físicos, etc.).
  • Programas de diseño (CAD): se caracterizan por la utilización de técnicas gráficas para resolver problemas de diseño.
  • Programas de simulación: intentan reflejar una situación real, para facilitar su estudio.
  • Programas educativos (EAO): utilizan las ventajas del ordenador para la docencia.
  • Programas de inteligencia artificial: se utilizan para simular el razonamiento humano.

Lenguajes de programación.

Un lenguaje de programación es una notación para escribir programas, es decir, para describir algoritmos dirigidos al computador. Un lenguaje viene dado por una gramática o conjunto de reglas que se aplican a un alfabeto. El primer lenguaje de programación que se utilizó fue el lenguaje máquina, el único que entiende directamente el computador, cuyo alfabeto es el binario, formado por los símbolos 0 y 1. El lenguaje ensamblador, resultó de la evolución del lenguaje máquina, al sustituir las cadenas de símbolos binarios por nemotécnicos. Posteriormente surgieron los lenguajes de alto nivel, cuya evolución es:

Los lenguajes de programación pueden clasificarse de la siguiente manera:

  • Según su parecido con el lenguaje natural:
    • Bajo nivel: lenguajes máquina y ensambladores.
    • Alto nivel: todos los demás.
  • Según la estructura de los programas:
    • Convencionales o línea a línea: ensambladores, FORTRAN, BASIC, COBOL, etc.
    • Estructurados: Algol, PL/I, Pascal, Ada, COBOL estructurado, etc.
  • Según la realización de los programas:
    • Funcionales: Lisp, Prolog, APL, etc.
    • Imperativos: la mayoría.
  • Según el tipo de proceso:
    • Interactivos o conversacionales: BASIC, Pascal, APL, etc.
    • Orientados al proceso por lotes (batch): COBOL, FORTRAN, PL/I, etc. factorial.

Fuente.

  • Joven Club de Majagua 2.