Lenguajes y Autómatas 15: 001-16: 00 hrs Jose Alberto Rosas Hernandez Investigación 1 diseño detallado



Descargar 131,18 Kb.
Página1/5
Fecha de conversión14.03.2017
Tamaño131,18 Kb.
  1   2   3   4   5
Lenguajes y Autómatas 15:001-16:00 hrs

Jose Alberto Rosas Hernandez

Investigación 1
DISEÑO DETALLADO


  • ESTRUCTURA DE UN LENGUAJE

Todo lenguaje, para permitir la programación, ha de contener diversos tipos de instrucciones:

Instrucciones simples:

  • de entrada: para buscar y recoger datos en la memoria central o auxiliar, o bien obtenerla por interacción con el usuario (p.ej. mensaje en el monitor de video que debe ser contestado en el teclado),

  • de salida: datos expuestos en el monitor de video o impresos, o transmitidos en una red,

  • de asignación: asignar un valor a una variable, sea directamente (p.ej. Variable1 = 15) sea por cálculo (p.ej. Var3 = Var1 + Var2).

Instrucciones compuestas:

  • de secuencia: por principio el orden dado a las instrucciones determina el orden en que se ejecuten, salvo instrucciones especiales de "salto" como las previstas en instrucciones de alternación o iteración.
    Toda instrucción compuesta debe tener una ENTRADA y una SALIDA. Puede siempre reemplazarse una instrucción simple por una compuesta manteniéndose el principio de secuencialidad de las instrucciones.

  • de alternación: escoger entre dos alternativas en función del cumplimiento de una condición (p.ej. if X > 15 then ... else ...: si X es mayor que 15 haga esto, sino este otro)

  • de iteración: ejecutar repetidamente un grupo de instrucciones mientras se cumpla una condición (p.ej. para contar de 1 hasta 10: N=1, while N < 10 repeat {N = N+1, print N}. O sea mientras N sea inferior a 10, agregue 1 al valor anterior de N).

En este ejemplo, se introduce un concepto muy importante en el desarrollo y uso de lenguajes de programación: la recursividad, factible por el hecho de que lo que se manipula es siempre un valor colocado en alguna celda de memoria. Así, si bien la matemática no puede aceptar una ecuación como N=N+1, aquí estamos ante una instrucción (no una ecuación) que significa "tomar el valor que está en una celda llamada N, sumarle 1 y volver a colocar el nuevo valor en la celda llamada N. Ésta es una "instrucción de asignación".
Algunos lenguajes (el Algol y sus descendientes como Pascal y "C", y también Lisp y Prolog en que este procedimiento constituye la esencia del lenguaje) van aún más lejos y permiten una recursividad consistente en la posibilidad de que una instrucción compuesta ordene la ejecución de sí misma. El siguiente podría ser una breve ejemplo:
Para imprimir una lista con una instrucción recursiva, basta tener en cuenta que una lista se compone de una cabeza (primer elemento) y una cola (el resto). Obviamente la cola es también una lista, por lo cual se le puede aplicar el procedimiento consistente en separar su cabeza de su cola, y así sucesivamente, hasta encontrar una cola vacía. Por lo tanto, se puede ordenar algo así:

imprimir lista = imprimir cabeza

lista = cola       [borra de la lista la cabeza ya impresa]

si lista no es vacía, imprimir lista    [orden de recursión]

sino: fín.

 


Como explicado a propósito de las "Instrucciones", todo programa se compone de una secuencia de instrucciones que pueden ser simples o compuestas. La presencia de instrucciones que deban repetirse muchas veces no sólo se expresa en las iteraciones, donde dicha repetición es inmediata. Existen muchos casos en que la repetición no es un flujo contínuo sino dependiente de otras operaciones o condiciones que son muy variables. Es el caso por ejemplo de las instrucciones para leer o grabar datos en un disco.
La programación estructurada, que es una forma de redacción de programas (obligatoria u optativa, según el lenguaje escogido), se hace cargo de este requisito facilitando la constitución de "paquetes" de instrucciones (llamados "sub-rutinas" o "procedimientos"), los que pueden escribirse una sola vez y ser "llamados" (utilizados) las veces que se requiera.
Además, pone énfasis en la conveniencia de facilitar la lectura de los programas haciendo más visible la dependencia jerárquica de las instrucciones compuestas mediante "indentación", es decir modificando el ancho del margen izquierdo para cada grupo de instrucciones.

  • Estructura de un programa

 La programación de computadoras es el proceso de planificar una secuencia de instrucciones que han de seguir en una computadora para dar solución a un problema.El concepto de programa almacenado en la memoria fue ideado por John Von Neumann en 1946.Para realizar un programa hay que proponer primeramente una solución a un problema, es decir, pensar en una estrategía para solucionarlo. Posteriormente se pasa al análisis en donde se averigua que tipo de problema es y como le vamos a dar solución, así como selecionar el lenguaje en el que se va a programar .

Los pasos uno a uno son:

1.-Análisis y propuesta de solución al problema: aquí se identifica el tipo de problema y el área a la que pertenece. Se piensa también en posibles soluciones, con sus tiempos establecidos.

2.-Identificación de variables constantes y actores involucrados en el problema: se identifican, ya que son las tres cosas que nos pueden cambiar al problema o alterar su curso.

3.-Planificación del programa: se elige el lenguaje de programación a trabajar dependiendo de la solución y se crea el plan de trabajo el cual contiene la busqueda bibliográfia del problema y el cronograma de cada una de las etapas de los que consta la solución al problema.

4.-Algoritmo: desarrollo de la secuencia lógica de pasos para la solución del problema (en este paso también involucra a los diagramas de flujo).

5.- Diagramas de Flujo: seguir los pasos del Algoritmo checando que el problema se resuelva correctamente.

6.-Desarrollo de las especificaciones: cuando se elije el lenguaje de programación, existen variables, constantes y actores que hay que declararse antes de comenzar el programa, o si se va a utilizar ecuaciones matemáticas o funciones, las cuales requieren de cierta de escribirse entro del programa. Estas especificaciones involucran ciertas características del problema y ciertas características del lenguaje seleccionado.

7.-Codificación (se requiere conocer la syntaxis del lenguaje) y Depuración: conversión del Algoritmo en un programa escribiéndolo en un lenguaje de programación lo más eficientemente posible. (nota: nadie programa igual ya que cada uno de nosoros no razona igual y el proceso de llegar a una solución depende de este proceso de razonar).

8.-Ejecución y Verificaciónde errores: introducir el programa en la memoria, ejecutarlo y probar sus resultados, corrigiendo los errores hasta su punto final de tal forma que se obtenga la solución a su problema.

9.-Prueba Final: Se tiene la plena seguridad de que el problema quedo resuelto ya que se agotaron todas las pruebas posibles de que el programa no falle al introducir ciertos valores o rangos de valores.

10.-Documentación: mantenimiento y cración de los documentos descriptivos como el manual del programador y manual del usuario.

 


  • Herramientas Empleadas

1.-Diagramas y/o Organigramas

2.-Algoritmo

1.-Es la representación gráfica de un problema dado, para la definición, análisis, o solución, es decir, la representación gráfica de un algoritmo.

2.-Conjnto de reglas o instrucciones que indican una secuencia lógica de opraciones que proporciona la respuesta a cualquier tipo de problema dado.



  • Estilos de Programación.

Se entiende por estilos de programación los métodos que existen para mejorar la calidad de los programas de computación.

Las carcterísticas de un buen programa son:

1.-El programa debe funcionar.

2.-El programa no debe tener dificultades. Hay que anticipar las situaciones a las que los usuarios van a poner en el programa, es decir, que este libre de errores.

3.-El programa debe estar bien documentado. La documentación puede estar de dos formas: documentación externa, que incluye diagramas de flujo, descripciones de los algoritmos, etc. La documentación interna o comentarios en el propio programa que va dirigido exclusivamente al programador.

4.-El programa debe ser eficiente. Que sea un programa fácil de leer y de comprender.


  1   2   3   4   5


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal