Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Instituto Tecnológico de Santo Domingo
Índice
1. Introducción 3
2. Lenguajes Formales 4
2.1. Definición 4
2.2. Partes de un lenguaje formal 4
2.3. Un poco de historia 5
2.4. Ejemplos 6
2.4.1. Ejemplos de notaciones de alfabeto 6
2.4.2. Ejemplo de lenguaje formal 6
5. Notación polaca 8
6. Clausura de Kleene 8
2
1. Introducción
Los lenguajes formales forman parte de la increíble historia acerca de la
computación, y actualmente se encuentra definida como un área importante
tanto en matemáticas como en ciencias de la computación.
En el presente trabajo describimos en detalle qué son los lenguajes formales,
cómo construirlos, operaciones que se pueden realizar, y describimos
también una de las maneras para describir lenguajes formales, las
expresiones regulares.
3
2. Lenguajes Formales
2.1. Definición
Un lenguaje formal consiste en palabras cuyas letras están tomadas de
un alfabeto y están bien formadas de acuerdo con un conjunto
específico de reglas (las cuales pueden ser completamente arbitrarias).
Más formalmente: Un lenguaje formal L sobre un alfabeto Σ es un
subconjunto de Σ*, es decir, un conjunto de palabras sobre ese
alfabeto.
- Σn : conjunto de todas las cadenas sobre Σ que tienen
longitud n.
- Σ+ : conjunto de todas las cadenas sobre Σ que tienen al
menos longitud 1.
- Σ* conjunto de todas las cadenas sobre Σ .
● Letras. A cada elemento dentro del alfabeto se le denomina letra.
La cantidad de letras en un alfabeto puede ser infinita. Pero, en
lo que respecta a esta unidad, solo estaremos tratando con
elementos finitos.
● Palabras. Una palabra sobre un alfabeto puede ser cualquier
secuencia finita (es decir, una cadena) de letras que es parte del
alfabeto.
Para denotar al conjunto completo de palabras dentro de un
alfabeto se utiliza Σ* (usando la estrella de Kleene ). L
a longitud
de una palabra es el número de letras que la componen.
2.3. Ejemplos
- Σ0 = {ϕ}
- Σ1 = {m, k}
- Σ2 = {mm, kk, mk, k m}
- Σ+ = {m, k, mm, kk, mk, km, mmm, kkk, mmk, mkk...}
- Σ* = {ϕ, m, k, mm, kk, mk, km, mmm, kkk, mmk, mkk...}
5
5. Notación polaca
La notación de prefijo, también conocida como notación polaca (en homenaje
a Jan Łukasiewicz por crearla en 1942), de infijo y de postfijo(conocida como
polaca inversa) son formas de escritura de expresiones algebraicas que se
diferencian por la posición relativa que toman tanto los operadores como los
operandos.
Las diferentes formas de escribir la expresión algebraica (5 + 7), son las
siguientes:
8
● Prefijo: (+ 5 7), se evalúa de derecha a izquierda.
● Infijo: (5 + 7), se evalúa como una operación normal.
● Postfijo: (5 7 +), se evalúa de izquierda a derecha.
Donde cada una da el mismo resultado, claro está, siguiendo los pasos
correspondientes. Las ventajas de usar la notación polaca y polaca invertida
es que no se ven en la necesidad del uso de paréntesis para poder resolver la
operación. Por ejemplo, la operación infija 5*(12 + 4), en notación polaca se
puede representar como *5 + 12 4 o en postfijo como 5 12 4 + *.
6. Clausura de Kleene
La clausura de Kleene (también llamada estrella Kleene o cierre estrella) es
una operación unaria que se aplica sobre un conjunto de cadenas de
caracteres o un conjunto de símbolos o caracteres (alfabeto), y representa el
conjunto de las cadenas que se pueden formar tomando cualquier número de
cadenas del conjunto inicial, posiblemente con repeticiones, y
concatenándolas entre sí.
Caracte Definición
r
Caracter Definición
+ 1 o más veces
* 0 o más veces
Caracter Definición
Clases de caracteres:
Caracter Definición
- Indicador de rango
Caracte Definición
r
12
10. Conclusión
En retrospectiva, por medio del trabajo de investigación realizado, pudimos
determinar que los lenguajes computacionales son capaces de asimilarse a
lenguajes como inglés, pues por medio del primero podemos formar cadenas
de caracteres de acuerdo a ciertas reglas para formar programas
sintácticamente correctos.
13
7. ¿Quién formalizó la descripción del lenguaje regular?
El matemático estadounidense Stephen Kleene promovió el surgimiento
de este concepto.
8. ¿Cuál fue el sistema operativo que integró primero las expresiones
regulares?
Ken Thompson integró las r egex a un editor del sistema UNIX (grep).
9. ¿Qué son las expresiones regulares?
Las Expresiones regulares son cadenas de caracteres basadas en
reglas sintácticas que permiten describir secuencias de caracteres.
10. ¿Cómo pueden estar formadas las expresiones regulares?
Una expresión regular puede estar formada, o bien exclusivamente por
caracteres normales, o bien por una combinación de caracteres
normales y metacaracteres.
11. ¿Cuándo se usó por primera vez el lenguaje formal?
Se cree que el primer lenguaje formal es el utilizado por Gottlob Frege
en su Begriffsschrift (1879), que significa literalmente "escritura
conceptual", y que Frege describió como un "lenguaje formal de
pensamiento puro".
12. ¿Cómo Noam Chomsky aportó a la clasificación del lenguaje formal?
Descubrió los principios subyacentes por medio de los cuales los seres
humanos generan palabras y creó la Jerarquía de Chomsky.
13. ¿Qué otras aplicaciones utilizan expresiones regulares?
JavaScript y C# son otros lenguajes que utilizan expresiones regulares,
pero en estos son tratados como objetos.
14. ¿Qué otros usos tiene las expresiones regulares?
Las expresiones regulares, además de buscar cadenas de caracteres
en un string, sirven para validar que la información introducida por un
15
usuario se ajusta a un formato establecido. Esto se hace comparando
el input del usuario con una expresión regular.
16
http://zasoby.open.agh.edu.pl/~11sustrojny/en/compiler/index.html#:~:text
semantics.
https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Regular_Ex
https://es.wikipedia.org/wiki/Expresión_regular
https://en.wikipedia.org/wiki/Formal_language
Retrieved from
https://culturacientifica.com/2019/02/13/la-notacion-polaca-la-de-jan-luk
asiewicz/
Zealand, P. –, Pythia, Mark, Amrut, P., Italy, A. M., Maiorana, A., . . . Prakash, V.
https://www.rexegg.com/regex-quickstart.html