ALIPSO.COM - Trabajos prácticos, monografías, apuntes, tesis, manuales, material educativo y mucho más.
 

Página de inicio | Agregar a Favoritos | Contactate con nosotros | Publicidad

Alipso.com
 

Monografías

Examenes

Enlaces

Publicar material o sitio

Foros

ABC del estudio

Diversión

  Buscar material sobre...
Todas las palabras Cualquier palabra Frase Exacta
El sitio en el que encontrás
todo el material que buscás.

   

Enlaces recomendados
   

Material relacionado
 

Material educativo de Alipso relacionado con Control implicito explicito secuencias

  • El arco y la transferencia de metal.: El arco y la transferencia de metal, Transferencia espectacular, Las fuerzas del arco, Factores relacionados con el avance, Factores eléctricos, El control de la penetración, Ángulo del electrodo, Características y aplicaciones del procedimiento, Sencillo
  • Windoxs 9x: La aruqietctura de un sistema operativo completto, el Windows 9x, multitarea, procesos y threads, equipos virtuales, mensajeria interna de windows, las funciones del sistema operativo, controladores del sistema, control de dispositivos de hardeware, regis
  • Introduccion al Control Predictivo: Introduccion al Control Predictivo
  • Diseño de Observadores de Estado: Diseño de observadores de Estado para el control de sistemas lineales. Metodo de Ackerman, Implementacion y ejemplos utilizando Matlab.


  • Enlaces externos relacionados con Control implicito explicito secuencias

    Ver enlaces

     

    Publicidad
       

    Monografías
     
    Control implícito y explícito de secuencias
    Secuenciamiento con expresiones aritméticas, Representación de estructura de árbol, Sintaxis para expresiones, Notación posfija(sufija o polaca inversa), Notación infija, Semántica para expresiones, Evaluación prefija, Evaluación infija, Jerarquía de oper

    Agregado: 29 de AGOSTO de 2000 | Palabras: 6492 | Votar! | 1 voto | Promedio: (10 / 10) | Sin comentarios | Agregar Comentario
    Categoría: Apuntes y Monografías > Computación > Varios >

      Imprimir Recomendar a un amigo Recordarme el recurso Descargar como pdf

    Control implícito y explícito de secuencias.

     

        Las estructuras de secuencias se pueden clasificar en 3 grupos:

               

    -         Estructuras que se usan en expresiones, como reglas de precedencia y paréntesis;

    -         Estructuras que se usan entre enunciados o grupos de enunciados, como enunciados condicionales e iterativos; y

    -         Estructuras que se usan entre subprogramas, como llamadas de subprogramas y corrutinas.

     

        Las estructuras de control de secuencias pueden ser implícitas o explícitas. Las estructuras de control de secuencias implícitas (o por omisión) son las que el lenguaje define que están en operación, a menos que sea modificado por alguna estructura explícita. Dentro de estas expresiones existen una jerarquía de operación definidas por el lenguaje, que controla el orden de ejecución de las operaciones de la expresión cuando no existe paréntesis.

        Las estructuras explícitas de control de secuencias son las que el programa puede optar para modificar el orden implícito definido por el lenguaje; ejemplo, usando paréntesis dentro de las expresiones y etiquetas de enunciados.

     

    Secuenciamiento con expresiones aritméticas.

       

        Consideremos la formula siguiente:


     


                                            Raiz= -b ± Ö b2 - 4´a´c


                                                                   2´a

     


        Un lenguaje ensamblador o de maquina requiere al menos 15 instrucciones para obtener el resultado. Sin embargo el lenguaje FORTRAN, puede codificarlo en una sola expresión.

                                    ROOT= (-b + SQRT (b**2-4*a*c)) / (2*a)

     

        Estas expresiones son un dispositivo poderoso y natural para representar series de operaciones aunque se plantean nuevos problemas, el programador entiende el orden de las operaciones pero ¿qué hay con las expresiones?, en la expresión en FORTRAN es correcta, pero como saber que la sustracción tiene lugar después de la multiplicación (b**2-4*a*c), los mecanismo de control de secuencias que determinan el orden de las operaciones son bastantes complejas y sutiles

     

     

     

     

     

     

     


     



                                                 

     

     

     


    Figura 1. Representación de árbol de la formula cuadratura

     

     

    Representación de estructura de árbol.

     

    Las expresiones se han considerado como entidades únicas, sin tomar en cuenta la sintaxis de una expresión dada, al considerar las operaciones dentro de una expresión, llamaremos OPERANDOS a los argumentos de una operación.

    El mecanismo del control de secuencias en expresiones es la composición funcional, se especifica una operación y sus operandos. La composición final confiere a la expresión la estructura característica de un árbol, donde la raíz es la operación principal y las hojas los referentes de datos.

        La representación de árbol aclara la estructura de control de la expresión. Los niveles más bajos en el árbol sirven como operandos para operaciones a nivel mas altos en el mismo, estas referencias de datos y operaciones se deben evaluar primero.

     

     

     

     


     

     

     


     

    Figura 2. Forma de árbol para la expresión simple: (a+b)´(c-a).

     

        En la fig 1 no esta claro si -b se debe evaluar antes o después de b**2, ni tampoco si b se puede conbinarse en una sola referencia. En una definición de lenguaje; es común definir el orden de evaluación de la expresión sólo al nivel de la representación de árbol y permitir que el implementador del lenguaje decida el orden de evaluación en detalle.

        Antes de examinar el problema es apropiado chequear la representación sintáctica para expresiones que están en uso.

     

     

    Sintaxis para expresiones.

     

        Si las expresiones son representadas característicamente por arboles, entonces, usar expresiones dentro de programas, sé requierelinealizar los arboles, es decir, se debe disponer de notaciones para escribir los arboles como series lineales de símbolos.

     

         Notación prefija(polaca prefija): Se escribe primero el símbolo de la operación seguido de operandos en orden de izquierda a derecha, si un operando a su ves es una operación con operandos. Se aplica el mismo criterio, en la figura anterior, el árbol se convierte en x + a b - c a. Puesto que el signo + es un operador diádico, los argumentos para + son a y b, y similar los argumentos para x son +y-, no se necesita paréntesis para especificar como evaluar la expresión.

        Una variante es el LISP(designada como polaca de Cambridge). En esta, un operador y sus argumentos están rodeados por paréntesis. Una expresión se ve, por tanto, como un conjunto anidado de lista, donde cada lista comienza con un símbolo de operandos. En polaca de Cambridge la fig. anterior se convierte en:

    (x(+ab)(-ca))

     

        Considerando la formula de la figura 1 en notación prefija (usando ­ para exponenciación, Ö para sqrt y _ para menos unaria)

     

     

     

                        /+_bÖ-­b2xx4acx2a                         (polaca)

    (/(+(_b)(Ö(-(­b2)(x(x4a)c))))(x2a))    (polaca de Cambridge)

     

    Notación posfija(sufija o polaca inversa): Esta notación es similar a la notación prefija excepto que el símbolo de operación sigue a la lista de operandos. Ej la figura anterior se representa como ab+ca-x.

     

    Notación infija: esta notación es mas adecuada para operaciones binarias, en esta notación el símbolo operador se escribe entre dos operandos, la notación para estas operaciones ha sido adaptada en lenguaje de programación. La forma infija para el árbol de la figura anterior es (a+b)x(c-a).

     

     

    Semántica para expresiones.

     

        Cada una de las 3 notaciones prefija, posfija e infija, tiene cierto atributo que son útiles en el diseño de lenguaje de programación. Difieren en la manera de calcular el valor para cada expresión. Proporcionan algoritmos para evaluar cada formato de expresión, para hacer más fácil la evaluación de expresiones.

     

    Evaluación prefija: Con notación prefija se puede evaluar cada expresión en un solo examen, sin embargo es necesario conocer el numero de argumentos para cada operación, por esto es necesario utilizar signos especiales para sustracciones diadicas(-) y menos unarias(_), para distinguir las operaciones.

        Además del ahorro de paréntesis, tiene un valor en el diseño de lenguaje de programación.

     

        1.-  La llamada de función usual ya está escrita en notación prefija.

     

        2.- La notación prefija se puede usar para representar operaciones con cualquier numero de operandos y es, por tanto, completamente general

     

        3.-  Es relativamente fácil decodificar mecánicamente; por esto se consigue con facilidad expresiones prefijas a secuencias de código simple.

     

    Evaluación posfija: en esta notación el operador sigue a sus operandos, cuando se examina un operador sus operandos ya fueron evaluados. La evaluación de una expresión pos fija P usando una pila, ahora tiene lugar, como sigue:

     

        1.- Si el elemento siguiente de P es un operando, colocarlo en la pila.

     

        2.- Si el elemento siguiente de P es un operador n-ario, entonces sus n argumentos deben ser los n elementos superiores en la pila. Reemplazar estos n elementos por el resultado de aclarar esta operación usando los n elementos como argumento.

     

       La evaluación es directa y fácil de implementar el generador de códigos usara el algoritmo antes mencionado para determinar el orden del código de generación para contar el valor de la expresión.


     

    td align=left valign=top>

     


    (A)                                                                                                                                             (B)

     

    Figura 3. Orden de evaluacion de operadores.

     

     

    Evaluación infija: Aunque estas notaciones común, su uso en un lenguaje de programación conduce a varios problemas siguientes.

     

        1.- Puesto que la notación infija se adecua solo para operadores binarios, es necesario conbinarlo con otra notación ya sea prefija o posfija. La mezcla hace que la traducción sea más complejas, los operadores unarios y las funciones con argumento múltiples deben ser excepciones a la propiedad infija general.

     

        2.- Cuando aparece mas de un operador infijo en una expresión, la notación en inherentemente ambigua a menos que se utilicen paréntesis.

     

        En este ultimo punto se demuestra que el valor de la expresión 2x3+4,la expresión significa 10, pero con la misma facilidad puede ser 14. En la figura 3 (A) se hace la multiplicación antes que la suma y el figura 3 (B) es la suma antes que la multiplicación.

       Se puede usar paréntesis para eliminar la ambigüedad de cualquier expresión indicando explícitamente el agrupamiento de operadores y operandos, como en (AxB)+C o Ax(b+C), pero la expresión complejas los nidos profundos de paréntesis que  resultan se vuelven confusas.

     

    Jerarquía de operaciones: los operadores de una expresión están puestas en una jerarquía u orden de precedencia. La jerarquía de ADA es representativa (Tabla 1). En la expresión donde intervienen operadores de mas de un nivel en la jerarquía, la regla implica que los operadores de mayor precedencia se ejecutan primero, así, en axb+c, x esta arriba de + en la jerarquía por eso se ejecuta primero.

     

     

     


    Nivel de precedencia      Operadores           Operaciones  

     


    Precedencia mas alta        **  abs  not              Exp,valor abs., negación

                                               */ mod rem              Multiplicación, división

    +-                            Adición, sustracción unaria    

    +-&                         Adición, sustracción binaria

                                                =£<>³                    Relacionales 

    precedencia más baja         and or xor              Operaciones booleanas

     

     

    Tabla 1. Jerarquía de operaciones en Ada.

     

     

     

     

    Precedencia    Operadores                          Nombres de operadores