• No se han encontrado resultados

1.-DEFINE EN QUE CONSISTEN LAS GRAMÁTICAS LIBRES DE CONTEXTO

N/A
N/A
Protected

Academic year: 2021

Share "1.-DEFINE EN QUE CONSISTEN LAS GRAMÁTICAS LIBRES DE CONTEXTO"

Copied!
8
0
0

Texto completo

(1)

1.-DEFINE EN QUE CONSISTEN LAS GRAMÁTICAS LIBRES DE CONTEXTO una gramática libre de contexto (o de contexto libre) es una gramática formal en la que cada regla de producción es de la forma:

V → w

Donde V es un símbolo no terminal y w es una cadena de terminales y/o no terminales.

Así como cualquier gramática formal, una gramática libre de contexto puede ser definida mediante la 4-tupla:

G = (Vt,Vn,P,S) donde

Vt es un conjunto finito de terminales • Vn es un conjunto finito de no terminales

P es un conjunto finito de producciones

• el denominado Símbolo Inicial • los elementos de P son de la forma

2. DEFINE EN QUE CONSISTEN LOS ÁRBOLES DE DERIVACIÓN. Un árbol de derivación permite mostrar gráficamente cómo se puede derivar cualquier cadena de un lenguaje a partir del símbolo distinguido de una gramática que genera ese lenguaje.Un árbol es un conjunto de puntos, llamados nodos, unidos por líneas, llamadas arcos. Un arco conecta dos nodos distintos. 3. EXPLIQUE AMPLIAMENTE CUALES SON LAS PROPIEDADES DE LOS ARBOLES DE DERIVACIÓN.

Para ser un árbol un conjunto de nodos y arcos debe satisfacer ciertas propiedades:

- hay un único nodo distinguido, llamado raíz (se dibuja en la parte superior) que no tiene

arcos incidentes.

- todo nodo c excepto el nodo raíz está conectado con un arco a otro nodo k, llamado el

padre de c (c es el hijo de k). El padre de un nodo, se dibuja por encima del nodo. - todos los nodos están conectados al nodo raíz mediante un único camino. - los nodos que no tienen hijos se denominan hojas, el resto de los nodos se denominan

(2)

nodos interiores.

El árbol de derivación tiene las siguientes propiedades:

- el nodo raíz está rotulado con el símbolo distinguido de la gramática; - cada hoja corresponde a un símbolo terminal o un símbolo no terminal; - cada nodo interior corresponde a un símbolo no terminal.

Para cada cadena del lenguaje generado por una gramática es posible construir (al menos) un árbol de derivación, en el cual cada hoja tiene como rótulo uno de los símbolos de la cadena.

4. DEFINE EN QUE CONSISTEN LAS FORMAS NORMALES DE CHOMSKY.

Una gramática libre de contexto G=(V,T,P,S) se dice estar en forma normal de

Chomsky si sus producciones son de cualquiera de las dos formas

• con , o bien • con y .

Toda gramática libre de contexto G=(V,T,P,S) que no genere a la palabra vacía se puede transformar en una gramática libre de contexto G'=(V',T,P',S') en forma normal de Chomsky.

En efecto, dada una gramática G, apliquemos el último procedimiento de la

sección anterior para transformar a G en una gramática G'' sin variables inútiles ni producciones vacías ni producciones unitarias equivalente a G. A las producciones que quedasen de la forma con y las dejamos sin cambio alguno. A cada

producción de la forma , con y , la transformamos en una sucesión de producciones de la forma siguiente: A cada símbolo terminal

que aparezca en la palabra le asociamos una variable nueva Xa e incorporamos la

producción . Así pues las producciones que no sean de la forma con X variable y a terminal, han de ser de la forma

(3)

5. DEFINE EN QUE CONSISTEN LAS FORMAS NORMALES DE GREIBACH.

Una gramática libre de contexto G=(V,T,P,S) se dice estar en forma normal de

Greibach si sus producciones son de la forma

Veremosque la construcción de formas normales de Greibach equivalentes

agramáticas dadas es procedimental. Para cualquier gramática libre decontexto G, definamos, para cada variable , a los conjuntos siguientes:

Primeramenteobservemos que podemos ``componer producciones'' de manera que tengamossiempre una gramática equivalente a la gramática dada.

(Composición de producciones) Si

es una producción en G y las producciones en P(Y) pueden escribirse como entonces al sustituir por las producciones

, obtenemos una gramática equivalente a G.

En efecto, en toda derivación terminal que aplique en un momento la producción

, necesariamente se ha de aplicar una producción en P(Y) para suprimir el símbolo

Y.

(Transformación de producciones ``reflexivas'') Para cada variable enumeremos

Q(X) y R(X) como

Sea Z una variable que no ocurra en V. Sea

la gramática que se obtiene al sustituir el conjunto de producciones P(X) por las producciones

6. EXPLIQUE EN QUE CONSISTE LA ELIMINACIÓN DE FACTORES COMUNES IZQUIERDOS.

Un automata finito o maquina de estado finito es un modelo matematico de un sistema que recibe una cadena constituida por simbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autamata reconoce.

Definicion formal Formalmente, un autoata finito (AF) puede ser descrito como una 5-tupla (S,W,T,s,A) donde: W es un alfabeto; S un conjunto de estados; T es la funcion de transicion: ; es el estado inicial; es un conjunto de estados de

aceptacion o finales. Ejemplo 1 w= {0,1}, S = {S1, S2}, T =

{(S1,0,{S2});(S1,1,{S1});(S2,0,{S1});(S2,1,{S2})} s = S1 A = {S1}. Formas de representar un automata finito Ademas de notar un AF a traves de su definicion formal es posible representarlo a traves de otras notaciones que resultan mas comodas.

(4)

7. EXPLIQUE EN QUE CONSISTE LA ELIMINACIÓN DE RECURSIVIDAD IZQUIERDA.

Tipos de recursividad

Directa. Una gram¨¢tica G es recursiva si tiene alguna Directa. Una gram¨¢tica G es recursiva si tiene alguna regla de producci¨®n que sea recursiva por la

izquierda regla de producci¨®n que sea recursiva por la izquierda A := A¦Á

Indirecta. Si, a partir de una forma sentencial que Indirecta. Si, a partir de una forma sentencial que empieza por un no terminal se puede derivar una nueva empieza por un no terminal se puede derivar una nueva forma no sentencial donde reaparece

al principio el forma no sentencial donde reaparece al principio el no Terminal. A¦Á =>* A¦Â¦Á Directa: A := A¦Á | ¦Â A := ¦ÂA¡¯ A¡¯ := ¦ÁA¡¯ A¡¯ := ¦Å Indirecta:

Ordenar no terminales: A1, A2, ¡ An For i := 1 To n Do

For j := 1 To i ¨C 1 Do

Sustituir cada Ai := Aj ¦Â por Ai := ¦Á1 ¦Â | ¦Á2 ¦Â | ¦Ák ¦Â donde Aj := ¦Á1 | ¦Á2 | ¡ | ¦Ák producciones actuales de Aj

(5)

Eliminar la recursividad directa de Ai

A<Z

8. EXPLIQUE EN QUE CONSISTE LA ELIMINACIÓN DE LA AMBIGÜEDAD. Una gramática ambigua permite más de una derivación para la misma forma sentencial por lo que también habrá más de un [árbol de derivación] para la misma. Por ello basta con encontrar dos [árboles derivación] distintos para la misma forma sentencial para demostrar que una gramática es ambigua. A continuación se presentan conceptos importantes dentro del estudio de las características de las gramáticas:

AMBIGÜEDAD:

Sea G = { N , T , P , S } una gramática libre de contexto y sea L(G) el lenguaje generado por esa gramática.

Si existe un string w (donde w oe L(G) ) para el cual existen dos ó más formas de realizar la derivación de más a la izquierda (S ˘ w) ó existen dos ó más formas de realizar la derivación de más a la derecha (S ¿ w), entonces se dice que: G es una gramática ambigua.

TIPOS DE AMBIGÜEDAD:

Dentro del estudio de gramáticas existen dos tipos fundamentales de ambigüedad, los cuales son:

Ambigüedad Inherente: Las gramáticas que presentan este tipo de ambigüedad no pueden utilizarse para lenguajes de programación, ya que por más

transformaciones que se realicen sobre ellas, NUNCA se podrá eliminar completamente la ambigüedad que presentan.

Ambigüedad Transitoria: Este tipo de ambigüedad puede llegar a ser eliminada realizando una serie de transformaciones sobre la gramática original. Una vez que se logra lo anterior, la gramática queda lista para ser reconocida por la mayor parte de los analizadores sintácticos. (Se le considera "ambigüedad" porque existen métodos para realizar análisis sintáctico que no aceptan gramáticas con estas características)

(6)

9. DEFINE EN QUE CONSISTE UN AUTÓMATAS PUSH-DOWN Y CUALES SON SUS ELEMENTOS (DESCRIBE CADA UNO DE ELLOS).

Un autómata de pila o Push-Down es un autómata que cuenta con un mecanismo que permita almacenamiento ilimitado y opera como una pila.

El autómata de pila (se abrevia PDA de sus siglas en inglés Push-Down Autómata) tiene una cinta de entrada, un control finito y una pila.

La pila es una cadena de símbolos de algún alfabeto. El símbolo que se encuentra más a la izquierda se considera como que está en la “cima”. El dispositivo será no

determinístico y tendrá un número finito de alternativas de movimiento en cada situación

Los movimientos serán de dos tipos. En el primer tipo de movimiento se utiliza un símbolo de entrada. Dependiendo del símbolo de entrada, del símbolo de la cima y

el estado de control finito, es posible un número de alternativas.

Cada alternativa consiste en un estado posterior para el control finito y una cadena (posiblemente vacía) de símbolos, para sustituir al símbolo que se encuentra en la

cima de la pila.

Una gramática es una estructura algebraica formada por cuatro elementos fundamentales:

G = { NT, T, S, P } donde

NT es el conjunto de elementos No Terminales

T es el conjunto de elementos Terminales

S es el Símbolo inicial de la gramática

P es el conjunto de Reglas de Producción

10. DEFINE EN QUE CONSISTEN LOS LENGUAJES NO REGULARES. Lenguajes no regulares

•Existen lenguajes que no son regulares y técnicas para demostrarlo: “El lema de bombeo”

(7)

Idea de la demostración: •Si L es regular, existe M = (Q, tiene un nofinito de estados. •Deben existir 0iy 0jcon i

•Esto significa que δ*(q0, 0i1i) = ∉L. Llegamos a un contradicción.

11. ILUSTRE EL DISEÑO DE UN AUTÓMATA PUSH

12. EXPLIQUE AMPLIAMENTE EN QUE CONSISTE LA FUNCIÓN DE UN COMPILADOR.

Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje máquina. Además de un traductor, se

pueden necesitar otros programas

programa fuente se puede dividir en módulos almacenados en archivos distintos. La tarea de reunir el programa fuente a menudo se confía a un programa distinto, llamado preprocesador. El preprocesador también puede expandir abreviaturas, llamadas a macros, a proposiciones del lenguaje fuente.

Normalmente la creación de un programa Windows o DOS) conlleva

(propiamente dicho) y traduce el código fuente escrito en un programación almacenado en un ar

código objeto, no directamente a lenguaje máquina). El segundo paso se llama

enlazado en el cual se enlaza el código de bajo nivel generado de

ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable Idea de la demostración:

•Si L es regular, existe M = (Q, Σ, δ, q0, F) un AFDt que lo reconoce. Adem e estados.

•Deben existir 0iy 0jcon i ≠j tales que δ*(q0, 0i) = δ*(q0, 0j) *(q0, 0i1i) = δ*(q0, 0j1i), pero por un lado 0i1i L. Llegamos a un contradicción.

11. ILUSTRE EL DISEÑO DE UN AUTÓMATA PUSH-DOWN.

12. EXPLIQUE AMPLIAMENTE EN QUE CONSISTE LA FUNCIÓN DE UN

Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje máquina. Además de un traductor, se

pueden necesitar otros programas para crear un programa objeto ejecutable. Un programa fuente se puede dividir en módulos almacenados en archivos distintos. La tarea de reunir el programa fuente a menudo se confía a un programa distinto,

. El preprocesador también puede expandir abreviaturas, llamadas a macros, a proposiciones del lenguaje fuente.

Normalmente la creación de un programa ejecutable (un típico.exe para ) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de

almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama

en el cual se enlaza el código de bajo nivel generado de

ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable

, q0, F) un AFDt que lo reconoce. Además, M

*(q0, 0j1i), pero por un lado 0i1i ∈L y por otro 0j1i

12. EXPLIQUE AMPLIAMENTE EN QUE CONSISTE LA FUNCIÓN DE UN

Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje máquina. Además de un traductor, se

para crear un programa objeto ejecutable. Un programa fuente se puede dividir en módulos almacenados en archivos distintos. La tarea de reunir el programa fuente a menudo se confía a un programa distinto,

. El preprocesador también puede expandir abreviaturas,

(un típico.exe para Microsoft dos pasos. El primer paso se llama compilación

lenguaje de

chivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama

en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable

(8)

pueda comunicarse directamente con el sistema operativo, traduciendo así

finalmente el código objeto a código máquina, y generando un módulo ejecutable. Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (por ejemplo C, C++ y Asm), que se podrían compilar de forma independiente y luego enlazar juntas para formar un único módulo ejecutable.

13. CUALES SON LAS CLASIFICACIONES DE UN COMPILADOR

Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categorías:

Compiladores cruzados: generan código para un sistema distinto del que están funcionando.

Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original. • Compiladores de una sola pasada: generan el código máquina a partir de

una única lectura del código fuente.

Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.

Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.

Referencias

Documento similar

También existía, y aún subsiste, cierta ambigüedad a propósito de la diferencia entre ADLs, especificaciones formales (como CHAM y Z), lenguajes de interconexión de módulos

Un método de estudio aparte de ser una herramienta muy útil al momento de estudiar también nos ayuda a agilizar nuestra mente y tener una buena memoria para futuro?. Palabras

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

El desarrollo de una conciencia cáritas es esencial para identificar cuando un momento de cuidado se convierte en transpersonal, es necesaria para identificar

El quincenario de los frailes de Filipinas, condena para el Archipiélago los propósitos de nivelación jurídica que para todo territorio español, peninsular o ultramarino, se

Para argumentar este supuesto, este autor construye y reconstruye la historia de la filosofía de Occidente, con especial interés en una revisión del argumento

Las lecturas de francobordo/calado se toman para establecer la posición de la flotación y determinar a su vez el desplazamiento del buque en el momento de realizar la prueba