domingo, 17 de abril de 2016

ESTRUCTURA DE UN PROGRAMA




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



VARIABLES

Las variables se utilizan en la mayoría de los lenguajes, donde un nombre se asocia a un contenido. Por ejemplo, podemos llamar a una variable "maniquí" y asignarle el valor 8.




SENTENCIA O INSTRUCCIÓN 


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).




ETAPAS DE EJECUCIÓN DE UN PROGRAMA


 Resumen detallado de cada etapa para la ejecución de un programa


 Codificación
Traduce los resultados obtenidos a un determinado lenguaje de programación, teniendo en cuenta las especificaciones obtenidas en el cuaderno de carga. Se deben de realizar las pruebas necesarias para comprobar la calidad y estabilidad del programa.

 Compilación
Se genera el código máquina correspondiente a cada módulo fuente de la aplicación asignando direcciones a los símbolos definidos en el módulo y resolviendo las referencias a los mismos. Así, si a una variable se le asigna una determinada posición de memoria, todas las instrucciones que hagan referencia a esa variable deben especificar dicha dirección. Las referencias a símbolos que no están definidos en el módulo quedan pendientes de resolver hasta la fase de montaje. Como resultado de esta fase se genera un módulo objeto por cada archivo fuente.

 Ligamento y Carga
Se incluye en el ejecutable un módulo de montaje dinámico que encargará de realizar en tiempo de ejecución la carga y el montaje de la biblioteca cuando se haga referencia por primera vez a algún símbolo definido en la misma. En el código ejecutable original del programa, las referencias a los símbolos de la biblioteca, que evidentemente todavía están pendientes de resolver, se hacen corresponder con símbolos en el módulo de montaje dinámico de esta forma, la primera referencia a uno de estos símbolos produce la activación del módulo que realizará en ese momento la carga de la biblioteca y el proceso de montaje necesario. Como parte del mismo, se resolverá la referencia a ese símbolo de manera que apunte al objeto real de biblioteca y que, por tanto, los posteriores accesos al mismo no afecten al módulo de montaje dinámico. Observe que este proceso de resolución de referencias afecta al programa que hace uso 
de la biblioteca dinámica ya que implica modificar en tiempo de ejecución algunas de sus instrucciones para que apunten a la dirección real del símbolo. 

 Relocalización
Reubicar las referencias presentes en el código de la biblioteca durante la carga de la misma de manera que se ajusten a las direcciones que le han correspondido dentro del mapa de memoria del proceso que la usa. Esta opción permite cargar la biblioteca en cualquier zona libre del mapa del proceso. Sin embargo, impide el poder compartir su código (o, al menos, la totalidad de su código) al estar adaptado a la zona de memoria donde le ha tocado vivir. 


 Ejecución.
Se genera un archivo ejecutable que contiene el código máquina del programa. Un ejecutable está estructurado como una cabecera y un conjunto de secciones. La cabecera contiene información de control que permite interpretar el contenido del ejecutable. 
Por ejemplo, si la ejecución de una instrucción puede generar seis fallos de página y el sistema operativo asigna cinco marcos de página a un proceso que incluya esta instrucción, el proceso podría no terminar de ejecutar esta instrucción. Por tanto, el número mínimo de marcos de página para una determinada arquitectura quedará fijado por la instrucción que pueda generar el máximo número de fallos de página.




TIPOS DE ERRORES EN PROGRAMACIÓN 


Sintácticos . Los errores de sintaxis, o sintácticos, ocurren cuando el programador escribe código que no va de acuerdo a las reglas de escritura del lenguaje de programación. 

 Lógicos. Los errores lógicos ocurren a causa de un mal diseño del programa. Puede ocurrir que una línea de código observe todas las reglas sintácticas del lenguaje, pero el código tenga una lógica equivocada.

semánticos. Este tipo de errores es muy frecuente en los alumnos. Su origen está en la incomprensión de los términos que se utilizan en las explicaciones o en las instrucciones de las tareas, en la confusión entre las connotaciones de las palabras que usamos, en uso de sinónimos que son interpretados como conceptos distintos, en lo farragoso de algunas descripciones, en el exceso de síntesis de muchas definiciones y explicaciones que, paradójicamente, incrementa la densidad del mismo, etc.






PRESENTACIÓN EN PREZI