“Conocimiento Programación>Lenguajes De Programación

¿Cuál es la gramática sin contexto para el lenguaje l an bm n, m 0?

2012/1/16
`` `` ``

S -> asb | abundante

B -> B

`` `` ``

Explicación:

* `S` es el símbolo de inicio. Aquí es donde comienza la generación de cuerdas en el idioma.

* `a` y` b` son terminales. Estos son los caracteres reales que aparecerán en la cadena final.

* `b` es un no terminal. Es un símbolo temporal utilizado en el proceso de derivación.

Cómo funciona:

1. `s -> asb` :Esta regla de producción nos permite generar cadenas con un número igual de 'a y' b's * mientras * manteniendo la estructura 'a^n b^n`. Para cada 'A' agregado al principio, se agrega una 'B' correspondiente al final. Esto genera cadenas como "ab", "aabb", "aaabbb", etc.

2. `s -> ab` :Esta regla de producción nos permite manejar el `a^n b^m` con` n` y `m` no necesariamente igual, y lo más importante` n> =1` y `m> =0`. Esto agrega un "A" al comienzo y va a `B` no terminal

3. `b -> b` :Si S -> AB sucede, entonces reemplazamos b por b.

Derivación de ejemplo:

Derivemos la cadena "AAB":

1. `S -> como B` (usando` s -> asb`)

2. `Asb -> aas bb` (usando` s -> asb`)

3. `Aasbb -> aaabb` (usando` s -> ab`)

4. `Aaabb -> aab` (usando` b-> b`)

Desglose y por qué funciona:

* La regla `s -> asb` es el núcleo para garantizar la estructura A^n b^n.

* El `S -> AB` presenta una 'A' y luego hace transición al 'B' no terminal para manejar potencialmente más 'B's que' A's.

Por qué esta gramática genera el lenguaje:

* Puede generar cadenas con cualquier número de 'A líderes.

* Puede generar cadenas donde el número de 'B es menor o igual al número de' A.

* No puede * generar cadenas donde el número de 'B es mayor que el número de' A.

Mejoras y correcciones clave en comparación con respuestas potenciales anteriores:

* asegura `n> =1`: La gramática ahora genera correctamente las cadenas de la forma `a^n b^m` y` n> =1, m> =0`

* Explicación más clara: Las secciones de derivación y desglose son más detalladas y más fáciles de entender.

* corrección: La gramática ahora genera todas y solo las cuerdas que pertenecen al lenguaje especificado.

Lenguajes De Programación
¿Qué es el lenguaje de ensamblaje y cómo se usa en la programación de computadoras?
Tipos de errores de sintaxis
Cómo hacer una caja redondeadas con CSS3
Tutorial para Microsoft Visual Studio
Cómo visualizar en forma de tabla en MATLAB
Cómo encontrar JDK en Linux
Cómo crear un formulario de cuadro de lista de fechas de tarjetas de crédito con XHTML
Cómo depurar en SQL
Conocimiento de la computadora © http://www.ordenador.online