SlideShare a Scribd company logo
1 of 41
Gramática
La Gramática es el estudio de las reglas y principios que
regulan el uso de las lenguas y la organización de las
palabras dentro de una oración.
La tarea de proveer una descripción bien concisa y
entendible de un lenguaje de programación es difícil pero
esencial para el éxito de un lenguaje. Uno de los problemas
en describir un lenguaje es la diversidad de gente que debe
comprender esas descripciones.
Javi
Las personas que implementan obviamente deben ser
capaces de determinar cómo se forman las expresiones,
sentencias y unidades de programas y también el orden de
ejecución de los mismos. La dificultad del trabajo que tiene
esta gente (los implementadores) está determinado en parte
por la claridad y complejidad de las descripciones del
lenguaje. La sintaxis de un lenguaje de programación
describe la forma correcta en la cual las sentencias,
expresiones y unidades de programa se deben escribir,
mientras que la semántica denota el significado de esas
sentencias, expresiones y unidades de programa. Por
ejemplo la sintaxis de una sentencia Pascal if then es:
if <condición> then <sentencia> Javi
La semántica de esta sentencia es que si el valor actual de la
condición es verdadero, se ejecutará <sentencia>.
Describir sintaxis es más fácil que describir semántica, ya
que existen notaciones aceptadas universalmente para la
descripción de sintaxis y no así de semánticas.
En la definición de un lenguaje de programación la sintaxis
usualmente se expresa en BNF (Backus- Naur Form) y la
semántica está expresada en lenguaje natural (español,
inglés, etc). BNF es un ejemplo de un metalenguaje, es decir,
un lenguaje usado para definir otros lenguajes. Algol 60 fue
el primer lenguaje que utilizó BNF para su descripción
sintáctica.
Javi
Una gramática consiste de un conjunto de no-
terminales, terminales y una serie de reglas de
producción. Un no-terminal está definido en una regla
de producción, mientras que un terminal es un símbolo
del lenguaje que se está definiendo. En una regla de
producción el no-terminal (que aparece en la parte
izquierda) está definido en términos de una secuencia de
no-terminales y terminales (que se encuentran en la
parte derecha )
Javi
Ejemplo:
<dígito>::= 0|1|2|3|4|5|6|7|8|9
<letra>::=a|b|c……………|x|y|z
<identificador>::=<letra>|<identificador><dígito>|<identi
ficador> <letra>
En BNF, un no-terminal se escribe entre < >, el símbolo ::=
significa “se define como” y el símbolo “|” significa “o”.
Estas reglas definen <dígitos> como uno de los símbolos 0,
1 al 9; <letra> como una letra minúscula e <identificador>
se define como una única letra, un identificador seguido de
una letra o un identificador seguido de un dígito.
Javi
Así, el identificador “ab1” puede ser derivado de
<identificador>como sigue:
Sintaxis y Semántica del Lenguaje
<identificador>
<identificador><dígito>
<identificador> <letra>><dígito>
<letra><letra><dígito>
a <letra><dígito>
a b <dígito>
a b 1
Javi
En cada etapa, el no-terminal de más a la izquierda es
reemplazado por la parte derecha de una de sus reglas de
producción, la secuencia de terminales y no-terminales
producidos en cada etapa en una derivación se conoce como
formas senténciales. La forma sentencia final (que ya no
contiene símbolos no-terminales) se conoce como una
sentencia.
La estructura de una derivación se muestra mejor en un
árbol de derivación. árbol de derivación que muestra cómo
ab1 de
Javi
<identificador>
|
<identificador> <dígito>
| |
<identificador> <letra> 1
| |
<letra> b
|
a
Javi
Gramática Formal
Una gramática formal es un objeto o modelo matemático
que permite especificar un lenguaje, ya sea este lenguaje
formal o un lenguajes natural.
La expresión ‹‹gramática formal›› tiene dos sentidos:
• Gramática de un lenguaje formal
• Descripción formal de parte de la gramática de un
lenguaje natural
Javi
Hay distinto tipo de gramáticas formales que general
gramáticas formales y esto lo veremos mas adelante en la
jerarquía de Chomsky.
Imaginemos una gramática con esta dos reglas:
La idea es sustituir el símbolo inicial de la izquierda por
otro símbolos aplicando las reglas.
Ejemplo:
A bAc bbAcc bbbAccc bbbdeccc
Javi
El elemento en mayúscula es el símbolo inicial. Los
elementos el minúscula son símbolos terminales. Las
cadenas de la lengua son aquellas que solo contienen
elementos terminales, como por ejemplo:
Bbbdeccc, de, bdec,….. Estas serian tres posibles
relaciones del lenguaje cuya gramática hemos definido
con dos reglas.
• Elementos que constituyen la gramática
formal: una gramatica formal es un modelo
matemático compuesto por una serie de categorías
sintácticas que se combinan entre si por medio de unasRichar
Existen una única categoría superior que denota
cadenas completas y validas.
• Mecanismo de especificación: por medio de estos
elementos constituyentes se define un mecanismo de
especificación consistente en repetir el mecanismo de
sustitución de una categoría superior y finalizando
cuando la oración ya no contiene ninguna categoría.
Richar
Es decir que una gramática formal es una cuádrupla
G=(N,T,S,P) donde:
Richar
Gramática Regular
La gramática regular o de estado finito son de la forma:
• Lineal por la derecha;
A aB o A a, donde A,B € ∑N , a € ∑T
• Lineal por la izquierda
A Ba o A a, donde A,B € ∑N , a € ∑T
Richar
los lenguaje representados por este tipo de gramáticas
son llamado lenguajes regulares.
Ejemplo:
Richar
Para cada gramática lineal por la derecha existe una
gramática lineal izquierda que genera el mismo lenguaje
y viceversa.
• Algoritmo:
Richar
Ejemplo: gramática lineal derecha
Richar
para cada gramática lineal por la izquierda existe una
gramática lineal derecha que genera el mismo lenguaje y
viceversa.
Richar
Ejemplo: gramática lineal izquierda
Richar
Jerarquía de chomsky
Chomsky clasificó las gramáticas en cuatro grandes grupos
: G0, G1, G2 y G3. Cada uno de estos grupos incluye las
gramáticas del siguiente, de acuerdo con el siguiente
esquema:
Richar
1. gramáticas tipo 0
Las reglas de producción tienen la forma
u : : = v
donde u € ∑+, v € ∑ *, u = xAy con x € ∑ *, y €
∑ *, A € ∑ N sin otra restricción
En las reglas de producción: • La parte izquierda no
puede ser la palabra vacía. • En la parte izquierda (u) ha
de aparecer algún símbolo no terminal.
Richar
Los lenguajes representados por estas gramáticas
reciben el nombre de lenguajes sin restricciones. Puede
demostrarse que todo lenguaje representado por este
tipo de gramáticas pueden ser descritos también por un
grupo de gramáticas un poco más restringido (llamado
de gramáticas de estructura de frases), cuyas
producciones tienen la forma xAy ::= xvy, donde x, y, v
€ ∑ *,, siendo A un símbolo no terminal.
Richar
En las gramáticas compresoras, las derivaciones pueden
ser decrecientes, ya que la longitud de las palabras puede
disminuir en cada uno de los pasos de derivación.
Ejemplo: sea G = ({a, b}, {A, B, C}, A, P), donde
P:
A ::= aABC | abC
CB ::= BC
bB ::= bb
bC ::= b
Richar
2. Gramática de tipo 1
Las reglas de producción de esta gramática tienen la
forma
xAy ::= xvy
donde x, y € ∑*, v € ∑+ y A ha de ser un símbolo no
terminal. (A puede transformarse en v sólo si aparece en
el contexto definido por x e y)
Richar
Ya que v no puede ser la palabra vacía, se deduce de aquí
que este tipo de gramáticas no pueden tener reglas
compresoras. Se admite una excepción en la regla S ::=
(siendo S el axioma de la gramática). Como consecuencia
se tiene que la palabra vacía pertenece al lenguaje
generado por la gramática sólo si contiene esta regla.
Los lenguajes generados por este tipo de gramticas se
denominan “dependientes del contexto”.
Richar
3. Gramática de tipo 2
Los lenguajes generados por este tipo de gramáticas se
denominan independientes de contexto, ya que la
conversión de A en v puede realizarse independientemente
del contexto en que aparezca A.
Martin
La mayor parte de los lenguajes de programación de ordenadores
pueden describirse mediante gramáticas de este tipo.
• Ejemplo : sea la gramática G = ({a, b}, {S}, S, { S ::= aSb | ab}).
Es una gramática de tipo 2. La derivación de la palabra aaabbb
será:
S aSb aaSbb aaabbb
Puede verse que el lenguaje definido por esta gramática es {an bn |
n=1, 2, ...}
Un mismo lenguaje puede generarse por muchas gramáticas
diferentes. Sin embargo, una gramática determinada describe
siempre un lenguaje único.
Martin
4. Gramáticas de tipo 3
Martin
Árbol de derivaciones
A toda derivación de una gramática de tipo 1, 2 ó 3 le
corresponde un árbol de derivación. Este árbol se construye así:
• La raíz del árbol corresponde al axioma de la gramática
• Una derivación directa se representa por un conjunto de ramas
que salen de un nodo determinado. Al aplicar una regla, uno de
los símbolos de la parte izquierda de la producción queda
sustituido por la palabra de la parte derecha. Por cada uno de
los símbolos de x se dibuja una rama, que parte del nodo
correspondiente al símbolo sustituido.
Martin
• En cada rama, el nodo de partida se denomina padre. El
final se denomina hijo del primero. Dos nodos hijos del
mismo padre se denominan hermanos. Un nodo es
ascendiente de otro si es su padre o ascendiente de su
padre. Un nodo es descendiente de otro si es su hijo o es
descendiente de su hijo.
A lo largo del proceso de construcción del árbol, los nodos
finales de cada paso, leídos de izquierda a derecha, forman la
forma sentencia obtenida por la derivación representada por
el árbol. Será rama terminal aquella dirigida hacia un
símbolo terminal. Este nodo se llama hoja. El conjunto de
hojas, leído de izquierda a derecha, forma la sentenciaMartin
• Ejemplo : sea la gramática
G = ({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0},{N,C}, N, {N ::= C | NC,
C::=0|1|2|3|4|5|6|7|8|9})
Consideraremos la derivación :
N NC NCC CCC 2CC 23C 234
El árbol de derivación correspondiente es:
Martin
Maquina de Turing(MT)
Es un dispositivo de reconocimientos de lenguaje, es más
general que cualquier autómata finito y cualquier
autómata de pila, debido a que ellas pueden reconocer
tanto los lenguajes regulares, como los lenguajes
independientes de contexto y además muchos otros tipos
de lenguajes.
Martin
La máquina de Turing (abreviado MT) tiene, un control
finito, una cabeza lectora y una cinta donde puede haber
caracteres, y donde eventualmente viene la palabra de
entrada. La cinta es de longitud infinita hacia la derecha,
hacia donde se extiende indefinidamente, llenándose los
espacios con el carácter blanco (que representaremos con
“t”). La cinta no es infinita hacia la izquierda, por lo que
hay un cuadro de la cinta que es el extremo izquierdo, la
MT la cabeza lectora es de lectura y escritura, por lo que la
cinta puede ser modificada en curso de ejecución. Además,
en la MT la cabeza se mueve bidireccionalmente
(izquierda y derecha), por lo que puede pasar repetidasMartin
Este modelo está conformado por un alfabeto de entrada
y uno de salida, un símbolo especial llamado
blanco(normalmente b, Δ o 0), un conjunto de estados
finitos y un conjunto de transiciones entre dichos
estados. Su funcionamiento se basa en una función de
transición, que recibe un estado inicial y una cadena de
caracteres(la cinta, la cual es finita por la izquierda)
pertenecientes al alfabeto de entrada.
Martin
• La máquina de Turing consta de un cabezal
lector/escritor y una cinta infinita en la que el cabezal
lee el contenido, borra el contenido anterior y escribe
un nuevo valor. Las operaciones que se pueden realizar
en esta máquina se limitan a: avanzar el cabezal
lector/escritor hacia la derecha. Avanzar el cabezal
lector/escritor hacia la izquierda. El cómputo es
determinado a partir de una tabla de estados de la
forma: (estado, valor) (nuevo estado, nuevo valor,
dirección)
Martin
• Como funciona la maquina de turing
Una máquina de Turing es un dispositivo que transforma
un INPUT en un OUTPUT después de algunos pasos.
Tanto el INPUT como el OUPUT constan de números en
código binario (ceros y unos). En su versión original la
máquina de Turing consiste en una cinta infinitamente
larga con unos y ceros que pasa a través de una caja. La
caja es tan fina que solo el trozo de cinta que ocupa un
bit (0 ó 1) está en su interior. La máquina tiene una serie
de estados internos finitos que también se pueden
numerar en binario.
Martin
Una instrucción típica podría ser: 01 11011i
La traducción es como sigue: si la máquina se encuentra en
el estado interno 0 y lee 1 en la cinta, entonces pasará al
estado interno 1101 (13), escribirá 1 y se moverá hacia la
izquierda un paso (la cinta se moverá hacia la derecha).
A continuación es conveniente inventar una notación para
la secuencia del INPUT. Esta notación se llama notación
binaria expandida. Consiste en cambiar la secuencia
original binaria por otra construida de la siguiente forma:
el 0 se cambia por 0 y el 1 por 10 y se ponen un cero a la
izquierda y/o a la derecha del resultado si empieza o acaba
en 1 respectivamente. Martin
La máquina de Turing consta de un cabezal lector/escritor
y una cinta infinita en la que el cabezal lee el contenido,
borra el contenido anterior y escribe un nuevo valor. Las
operaciones que se pueden realizar en esta máquina se
limitan a:
• avanzar el cabezal lector/escritor hacia la derecha.
Martin
• avanzar el cabezal lector/escritor hacia la izquierda.
El cómputo es determinado a partir de una tabla de
estados de la forma:
(estado, valor) (nuevo estado, nuevo valor, dirección)
Martin
Gramaticas

More Related Content

What's hot

2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPUEduardo Suarez
 
Automata Finito No Determinista
Automata Finito No DeterministaAutomata Finito No Determinista
Automata Finito No DeterministaJean Bernard
 
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...Jose Emilio Labra Gayo
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosRosviannis Barreiro
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas yelizabeth_20
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.Emmanuel Colon
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de GrafosSandra Biondi
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...Hugo Alberto Rivera Diaz
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajesAlex Javier
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesbasilioj
 

What's hot (20)

Gramáticas formales
Gramáticas formales Gramáticas formales
Gramáticas formales
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
Revisando la jerarquía de chomsky
Revisando la jerarquía de chomskyRevisando la jerarquía de chomsky
Revisando la jerarquía de chomsky
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
Automata Finito No Determinista
Automata Finito No DeterministaAutomata Finito No Determinista
Automata Finito No Determinista
 
Unidad1 Lenguajes y automatas
Unidad1 Lenguajes y automatasUnidad1 Lenguajes y automatas
Unidad1 Lenguajes y automatas
 
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No Deterministicos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas 
 
Autómatas de pila
Autómatas de pila Autómatas de pila
Autómatas de pila
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de Grafos
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajes
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 
UNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓNUNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓN
 

Similar to Gramaticas

Similar to Gramaticas (20)

Investigación Expositiva
Investigación ExpositivaInvestigación Expositiva
Investigación Expositiva
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Compiladores1
Compiladores1Compiladores1
Compiladores1
 
Lenguajes y Grmaticas.pdf
Lenguajes y Grmaticas.pdfLenguajes y Grmaticas.pdf
Lenguajes y Grmaticas.pdf
 
Lenguajes formales y teoría de autómatas I.pdf
Lenguajes formales y teoría de autómatas I.pdfLenguajes formales y teoría de autómatas I.pdf
Lenguajes formales y teoría de autómatas I.pdf
 
Presentacion automata grupo 1 unibe 02-02-2018
Presentacion automata grupo 1   unibe 02-02-2018Presentacion automata grupo 1   unibe 02-02-2018
Presentacion automata grupo 1 unibe 02-02-2018
 
Compilador2
Compilador2Compilador2
Compilador2
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contexto
 
Lizbeth...
Lizbeth...Lizbeth...
Lizbeth...
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
GRAMATICA LIBRE DE CONTEXTO.ppt
GRAMATICA LIBRE DE CONTEXTO.pptGRAMATICA LIBRE DE CONTEXTO.ppt
GRAMATICA LIBRE DE CONTEXTO.ppt
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Exposición de compiladores e intérpretes - Profesor: Eddie Malca
Exposición de compiladores e intérpretes - Profesor: Eddie MalcaExposición de compiladores e intérpretes - Profesor: Eddie Malca
Exposición de compiladores e intérpretes - Profesor: Eddie Malca
 
SIMBOLOS PARA REALIZAR DERIVACIONES.pdf
SIMBOLOS PARA REALIZAR DERIVACIONES.pdfSIMBOLOS PARA REALIZAR DERIVACIONES.pdf
SIMBOLOS PARA REALIZAR DERIVACIONES.pdf
 
gramatica-libre-de-contexto.ppt
gramatica-libre-de-contexto.pptgramatica-libre-de-contexto.ppt
gramatica-libre-de-contexto.ppt
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
 
Gramatica
GramaticaGramatica
Gramatica
 
lenguajes formales
lenguajes formaleslenguajes formales
lenguajes formales
 
Tarea111
Tarea111Tarea111
Tarea111
 
Gramaticas
GramaticasGramaticas
Gramaticas
 

Recently uploaded

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 

Recently uploaded (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Gramaticas

  • 1.
  • 2. Gramática La Gramática es el estudio de las reglas y principios que regulan el uso de las lenguas y la organización de las palabras dentro de una oración. La tarea de proveer una descripción bien concisa y entendible de un lenguaje de programación es difícil pero esencial para el éxito de un lenguaje. Uno de los problemas en describir un lenguaje es la diversidad de gente que debe comprender esas descripciones. Javi
  • 3. Las personas que implementan obviamente deben ser capaces de determinar cómo se forman las expresiones, sentencias y unidades de programas y también el orden de ejecución de los mismos. La dificultad del trabajo que tiene esta gente (los implementadores) está determinado en parte por la claridad y complejidad de las descripciones del lenguaje. La sintaxis de un lenguaje de programación describe la forma correcta en la cual las sentencias, expresiones y unidades de programa se deben escribir, mientras que la semántica denota el significado de esas sentencias, expresiones y unidades de programa. Por ejemplo la sintaxis de una sentencia Pascal if then es: if <condición> then <sentencia> Javi
  • 4. La semántica de esta sentencia es que si el valor actual de la condición es verdadero, se ejecutará <sentencia>. Describir sintaxis es más fácil que describir semántica, ya que existen notaciones aceptadas universalmente para la descripción de sintaxis y no así de semánticas. En la definición de un lenguaje de programación la sintaxis usualmente se expresa en BNF (Backus- Naur Form) y la semántica está expresada en lenguaje natural (español, inglés, etc). BNF es un ejemplo de un metalenguaje, es decir, un lenguaje usado para definir otros lenguajes. Algol 60 fue el primer lenguaje que utilizó BNF para su descripción sintáctica. Javi
  • 5. Una gramática consiste de un conjunto de no- terminales, terminales y una serie de reglas de producción. Un no-terminal está definido en una regla de producción, mientras que un terminal es un símbolo del lenguaje que se está definiendo. En una regla de producción el no-terminal (que aparece en la parte izquierda) está definido en términos de una secuencia de no-terminales y terminales (que se encuentran en la parte derecha ) Javi
  • 6. Ejemplo: <dígito>::= 0|1|2|3|4|5|6|7|8|9 <letra>::=a|b|c……………|x|y|z <identificador>::=<letra>|<identificador><dígito>|<identi ficador> <letra> En BNF, un no-terminal se escribe entre < >, el símbolo ::= significa “se define como” y el símbolo “|” significa “o”. Estas reglas definen <dígitos> como uno de los símbolos 0, 1 al 9; <letra> como una letra minúscula e <identificador> se define como una única letra, un identificador seguido de una letra o un identificador seguido de un dígito. Javi
  • 7. Así, el identificador “ab1” puede ser derivado de <identificador>como sigue: Sintaxis y Semántica del Lenguaje <identificador> <identificador><dígito> <identificador> <letra>><dígito> <letra><letra><dígito> a <letra><dígito> a b <dígito> a b 1 Javi
  • 8. En cada etapa, el no-terminal de más a la izquierda es reemplazado por la parte derecha de una de sus reglas de producción, la secuencia de terminales y no-terminales producidos en cada etapa en una derivación se conoce como formas senténciales. La forma sentencia final (que ya no contiene símbolos no-terminales) se conoce como una sentencia. La estructura de una derivación se muestra mejor en un árbol de derivación. árbol de derivación que muestra cómo ab1 de Javi
  • 10. Gramática Formal Una gramática formal es un objeto o modelo matemático que permite especificar un lenguaje, ya sea este lenguaje formal o un lenguajes natural. La expresión ‹‹gramática formal›› tiene dos sentidos: • Gramática de un lenguaje formal • Descripción formal de parte de la gramática de un lenguaje natural Javi
  • 11. Hay distinto tipo de gramáticas formales que general gramáticas formales y esto lo veremos mas adelante en la jerarquía de Chomsky. Imaginemos una gramática con esta dos reglas: La idea es sustituir el símbolo inicial de la izquierda por otro símbolos aplicando las reglas. Ejemplo: A bAc bbAcc bbbAccc bbbdeccc Javi
  • 12. El elemento en mayúscula es el símbolo inicial. Los elementos el minúscula son símbolos terminales. Las cadenas de la lengua son aquellas que solo contienen elementos terminales, como por ejemplo: Bbbdeccc, de, bdec,….. Estas serian tres posibles relaciones del lenguaje cuya gramática hemos definido con dos reglas. • Elementos que constituyen la gramática formal: una gramatica formal es un modelo matemático compuesto por una serie de categorías sintácticas que se combinan entre si por medio de unasRichar
  • 13. Existen una única categoría superior que denota cadenas completas y validas. • Mecanismo de especificación: por medio de estos elementos constituyentes se define un mecanismo de especificación consistente en repetir el mecanismo de sustitución de una categoría superior y finalizando cuando la oración ya no contiene ninguna categoría. Richar
  • 14. Es decir que una gramática formal es una cuádrupla G=(N,T,S,P) donde: Richar
  • 15. Gramática Regular La gramática regular o de estado finito son de la forma: • Lineal por la derecha; A aB o A a, donde A,B € ∑N , a € ∑T • Lineal por la izquierda A Ba o A a, donde A,B € ∑N , a € ∑T Richar
  • 16. los lenguaje representados por este tipo de gramáticas son llamado lenguajes regulares. Ejemplo: Richar
  • 17. Para cada gramática lineal por la derecha existe una gramática lineal izquierda que genera el mismo lenguaje y viceversa. • Algoritmo: Richar
  • 18. Ejemplo: gramática lineal derecha Richar
  • 19. para cada gramática lineal por la izquierda existe una gramática lineal derecha que genera el mismo lenguaje y viceversa. Richar
  • 20. Ejemplo: gramática lineal izquierda Richar
  • 21. Jerarquía de chomsky Chomsky clasificó las gramáticas en cuatro grandes grupos : G0, G1, G2 y G3. Cada uno de estos grupos incluye las gramáticas del siguiente, de acuerdo con el siguiente esquema: Richar
  • 22. 1. gramáticas tipo 0 Las reglas de producción tienen la forma u : : = v donde u € ∑+, v € ∑ *, u = xAy con x € ∑ *, y € ∑ *, A € ∑ N sin otra restricción En las reglas de producción: • La parte izquierda no puede ser la palabra vacía. • En la parte izquierda (u) ha de aparecer algún símbolo no terminal. Richar
  • 23. Los lenguajes representados por estas gramáticas reciben el nombre de lenguajes sin restricciones. Puede demostrarse que todo lenguaje representado por este tipo de gramáticas pueden ser descritos también por un grupo de gramáticas un poco más restringido (llamado de gramáticas de estructura de frases), cuyas producciones tienen la forma xAy ::= xvy, donde x, y, v € ∑ *,, siendo A un símbolo no terminal. Richar
  • 24. En las gramáticas compresoras, las derivaciones pueden ser decrecientes, ya que la longitud de las palabras puede disminuir en cada uno de los pasos de derivación. Ejemplo: sea G = ({a, b}, {A, B, C}, A, P), donde P: A ::= aABC | abC CB ::= BC bB ::= bb bC ::= b Richar
  • 25. 2. Gramática de tipo 1 Las reglas de producción de esta gramática tienen la forma xAy ::= xvy donde x, y € ∑*, v € ∑+ y A ha de ser un símbolo no terminal. (A puede transformarse en v sólo si aparece en el contexto definido por x e y) Richar
  • 26. Ya que v no puede ser la palabra vacía, se deduce de aquí que este tipo de gramáticas no pueden tener reglas compresoras. Se admite una excepción en la regla S ::= (siendo S el axioma de la gramática). Como consecuencia se tiene que la palabra vacía pertenece al lenguaje generado por la gramática sólo si contiene esta regla. Los lenguajes generados por este tipo de gramticas se denominan “dependientes del contexto”. Richar
  • 27. 3. Gramática de tipo 2 Los lenguajes generados por este tipo de gramáticas se denominan independientes de contexto, ya que la conversión de A en v puede realizarse independientemente del contexto en que aparezca A. Martin
  • 28. La mayor parte de los lenguajes de programación de ordenadores pueden describirse mediante gramáticas de este tipo. • Ejemplo : sea la gramática G = ({a, b}, {S}, S, { S ::= aSb | ab}). Es una gramática de tipo 2. La derivación de la palabra aaabbb será: S aSb aaSbb aaabbb Puede verse que el lenguaje definido por esta gramática es {an bn | n=1, 2, ...} Un mismo lenguaje puede generarse por muchas gramáticas diferentes. Sin embargo, una gramática determinada describe siempre un lenguaje único. Martin
  • 29. 4. Gramáticas de tipo 3 Martin
  • 30. Árbol de derivaciones A toda derivación de una gramática de tipo 1, 2 ó 3 le corresponde un árbol de derivación. Este árbol se construye así: • La raíz del árbol corresponde al axioma de la gramática • Una derivación directa se representa por un conjunto de ramas que salen de un nodo determinado. Al aplicar una regla, uno de los símbolos de la parte izquierda de la producción queda sustituido por la palabra de la parte derecha. Por cada uno de los símbolos de x se dibuja una rama, que parte del nodo correspondiente al símbolo sustituido. Martin
  • 31. • En cada rama, el nodo de partida se denomina padre. El final se denomina hijo del primero. Dos nodos hijos del mismo padre se denominan hermanos. Un nodo es ascendiente de otro si es su padre o ascendiente de su padre. Un nodo es descendiente de otro si es su hijo o es descendiente de su hijo. A lo largo del proceso de construcción del árbol, los nodos finales de cada paso, leídos de izquierda a derecha, forman la forma sentencia obtenida por la derivación representada por el árbol. Será rama terminal aquella dirigida hacia un símbolo terminal. Este nodo se llama hoja. El conjunto de hojas, leído de izquierda a derecha, forma la sentenciaMartin
  • 32. • Ejemplo : sea la gramática G = ({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0},{N,C}, N, {N ::= C | NC, C::=0|1|2|3|4|5|6|7|8|9}) Consideraremos la derivación : N NC NCC CCC 2CC 23C 234 El árbol de derivación correspondiente es: Martin
  • 33. Maquina de Turing(MT) Es un dispositivo de reconocimientos de lenguaje, es más general que cualquier autómata finito y cualquier autómata de pila, debido a que ellas pueden reconocer tanto los lenguajes regulares, como los lenguajes independientes de contexto y además muchos otros tipos de lenguajes. Martin
  • 34. La máquina de Turing (abreviado MT) tiene, un control finito, una cabeza lectora y una cinta donde puede haber caracteres, y donde eventualmente viene la palabra de entrada. La cinta es de longitud infinita hacia la derecha, hacia donde se extiende indefinidamente, llenándose los espacios con el carácter blanco (que representaremos con “t”). La cinta no es infinita hacia la izquierda, por lo que hay un cuadro de la cinta que es el extremo izquierdo, la MT la cabeza lectora es de lectura y escritura, por lo que la cinta puede ser modificada en curso de ejecución. Además, en la MT la cabeza se mueve bidireccionalmente (izquierda y derecha), por lo que puede pasar repetidasMartin
  • 35. Este modelo está conformado por un alfabeto de entrada y uno de salida, un símbolo especial llamado blanco(normalmente b, Δ o 0), un conjunto de estados finitos y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una función de transición, que recibe un estado inicial y una cadena de caracteres(la cinta, la cual es finita por la izquierda) pertenecientes al alfabeto de entrada. Martin
  • 36. • La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a: avanzar el cabezal lector/escritor hacia la derecha. Avanzar el cabezal lector/escritor hacia la izquierda. El cómputo es determinado a partir de una tabla de estados de la forma: (estado, valor) (nuevo estado, nuevo valor, dirección) Martin
  • 37. • Como funciona la maquina de turing Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT después de algunos pasos. Tanto el INPUT como el OUPUT constan de números en código binario (ceros y unos). En su versión original la máquina de Turing consiste en una cinta infinitamente larga con unos y ceros que pasa a través de una caja. La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 ó 1) está en su interior. La máquina tiene una serie de estados internos finitos que también se pueden numerar en binario. Martin
  • 38. Una instrucción típica podría ser: 01 11011i La traducción es como sigue: si la máquina se encuentra en el estado interno 0 y lee 1 en la cinta, entonces pasará al estado interno 1101 (13), escribirá 1 y se moverá hacia la izquierda un paso (la cinta se moverá hacia la derecha). A continuación es conveniente inventar una notación para la secuencia del INPUT. Esta notación se llama notación binaria expandida. Consiste en cambiar la secuencia original binaria por otra construida de la siguiente forma: el 0 se cambia por 0 y el 1 por 10 y se ponen un cero a la izquierda y/o a la derecha del resultado si empieza o acaba en 1 respectivamente. Martin
  • 39. La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a: • avanzar el cabezal lector/escritor hacia la derecha. Martin
  • 40. • avanzar el cabezal lector/escritor hacia la izquierda. El cómputo es determinado a partir de una tabla de estados de la forma: (estado, valor) (nuevo estado, nuevo valor, dirección) Martin