0% encontró este documento útil (0 votos)
36 vistas35 páginas

Lenguaje Formales y de Programación: Clase I

El documento presenta los conceptos básicos de los lenguajes formales y de programación. Explica la diferencia entre lenguajes de bajo y alto nivel, así como los componentes clave de un lenguaje formal como el alfabeto, las reglas y las cadenas. También define los tipos de procesadores de lenguaje como compiladores, intérpretes y compiladores híbridos.

Cargado por

3116549240704
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
36 vistas35 páginas

Lenguaje Formales y de Programación: Clase I

El documento presenta los conceptos básicos de los lenguajes formales y de programación. Explica la diferencia entre lenguajes de bajo y alto nivel, así como los componentes clave de un lenguaje formal como el alfabeto, las reglas y las cadenas. También define los tipos de procesadores de lenguaje como compiladores, intérpretes y compiladores híbridos.

Cargado por

3116549240704
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 35

Lenguaje Formales y de

Programación

Clase I
22 de enero 2024
David Morales
Presentación del catedrático

Correo electrónico: [email protected]


Asunto: [0796 – SEGUNDO SEMESTRE 2023 - Sección B+]
Auxiliar: Francisco Magdiel Asicona Mateo
Objetivo General
• Que el estudiante conozca los conceptos teóricos y
matemáticos necesarios que fundamentan los lenguajes
formales y de programación; mediante la clasificación de
gramáticas, y el diseño de lenguajes mediante autómatas,
expresiones y gramáticas.
Objetivos Específicos
Al final del curso el estudiante deberá:
1. Definir cualquier lenguaje formal
2. Reconocer las características que identifican a cualquier tipo
de gramática.
3. Manejar la terminología de los lenguajes formales y
gramáticas.
4. Conocer el modelo matemático que resuelve cada tipo de
gramática.
5. Diseñar gramáticas que representen lenguajes específicos.
Objetivos Específicos
Al final del curso el estudiante deberá:
6. Conocer e implementar máquinas de estado finito.
7. Diseñar e implementar gramáticas regulares.
8. Reconocer las fases de un compilador.
9. Desarrollar un analizador léxico con base a los autómatas
finitos.
10. Desarrollar un analizador sintáctico por medio de las
gramáticas libres del contexto.
Características y Políticas del curso

Ponderación

3 Evaluaciones de rendimiento (15 puntos c/u)......................................... 45 puntos


Tareas, trabajos en clase, comprobaciones, asistencia, cortos, etc. .. 06 puntos
Laboratorio (proyectos, prácticas, etc.)......................................................... 24 puntos
Evaluación Final...................................................................................................... 25 puntos

Nota Total............................................................................................... 100 puntos

Se evaluarán únicamente trabajos y exámenes que estén en plataforma


Uedi.
¿Lenguajes formales y de
programación?
Lenguaje
1

2 Lenguaje

Es un sistema de signos
a través del cual los
individuos se comunican
3

entre sí. Estos signos


pueden ser sonoros
(como el habla),
corporales (como los
gestos o el lenguaje de
señas) o gráficos (como
la escritura).
Lenguaje Formal
1

Lenguaje Formal
2

En matemáticas, lógica y ciencias


de la computación, un lenguaje
formal es un lenguaje cuyos 3
símbolos primitivos y reglas para
unir esos símbolos están Lenguaje
formalmente especificados.​ Al
conjunto de los símbolos
primitivos se le llama el alfabeto
(o vocabulario) del lenguaje, y al
conjunto de las reglas se lo llama
la gramática formal (o sintaxis).
Lenguaje Formal
Lenguajes formales

● Un lenguaje formal es idéntico al conjunto de todas sus


fórmulas bien formadas.

Ejemplo:

Lenguaje que tiene el mismo número de 1 que 0s. El


lenguaje sería el conjunto de todas las cadenas (o
formulas) que tienen un 1 por cada 0 o a la inversa.

01, 10, 1110000011


Lenguajes formales

● Un lenguaje formal es idéntico al conjunto de todas sus


fórmulas bien formadas.

Ejemplo:

Lenguaje que tiene el mismo número de símbolos a que b.


El lenguaje sería el conjunto de todas las fórmulas que lo
contienen bien formadas.

ab, aaaabbbb, abababab


Alfabeto - Elementos del lenguaje formal

● Es el conjunto de los símbolos primitivos del lenguaje se le


llama también vocabulario

Por ejemplo: Un alfabeto podría ser el conjunto {a,b}


Reglas - Elementos del lenguaje formal

● Conjunto de reglas que debe cumplir el lenguaje para ser válido.


● Al conjunto de las reglas se le llama la Gramática formal (o
sintaxis).

Por ejemplo, una gramática podría definir a las fórmulas bien


formadas como aquellas que tienen el mismo número de
símbolos a que b.

“debe cumplirse con esa regla” y “se representa


algebraicamente”
Cadenas - Elementos del lenguaje formal

● A una cadena de símbolos formada de acuerdo a la


gramática se la llama una fórmula bien formada (o palabra)
del lenguaje
● Frase y palabra a menudo se utilizan como sinónimos

Ejemplo: Fórmulas bien formadas del lenguaje serían: ab,


ba, abab, ababba – Cadenas válidas

AAAABBBB, babba – Cadenas inválidas


Ejercicio

● Cadenas que contienen letras del


abecedario y tienen la vocal a y o, pero no la
vocal e.
Lenguaje de Programación
1

Lenguaje de
programación
Lenguaje Formal 2

Lenguaje

3
Lenguaje de Programación

Es un lenguaje formal (o artificial, es decir, un lenguaje


con reglas gramaticales bien definidas) que le
proporciona a una persona, en este caso el
programador, la capacidad de escribir una serie de
instrucciones o secuencias de órdenes en forma de
algoritmos con el fin de controlar el comportamiento
físico y/o lógico de una computadora.
¿Qué propósito tiene un
lenguaje de programación?
Sir Charles Antony Richard Hoare (Quicksort):

"El propósito principal de un lenguaje de programación


es ayudar al programador en la práctica de su arte"
¿Para qué sirven?

Esencialmente:
Para comunicar a un ordenador un procesamiento que va a
llevarse a cabo en dicho dispositivo (de forma cómoda para
la persona que escribe el programa).
Pero también:
Para comunicar entre personas información no ambigua
sobre algoritmos matemáticos o procesos reales
¿Cómo funciona?

1
2
Niveles de los lenguajes
Lenguaje de Máquina - Bajo Nivel

● El lenguaje de la máquina es una colección de dígitos


binarios o bits que la computadora lee e interpreta.
● Los lenguajes de máquina son los únicos idiomas que
las computadoras entienden.
● Aunque las computadoras las entienden fácilmente,
los lenguajes de máquina son casi imposibles de usar
por los humanos, ya que consisten completamente
de números. Luis Olarte Gervacio. (2018).
Lenguaje de Máquina - Ejemplo
Lenguaje Ensamblador - Bajo Nivel

● El lenguaje ensamblador es el primer intento de


sustitución del lenguaje de máquina por uno más
cercano al utilizado por los humanos.
● Un programa escrito en éste lenguaje es almacenado
como texto (tal como programas de alto nivel) y
consiste en una serie de instrucciones que
corresponden al flujo de órdenes ejecutables por un
microprocesador.
Lenguaje Ensamblador - Bajo Nivel

● Sin embargo, dichas máquinas no comprenden el


lenguaje emsamblador, por lo que se debe convertir
a lenguaje máquina mediante un programa llamado
Ensamblador.
● Este genera códigos compactos, rápidos y eficientes
creados por el programador que tiene el control
total de la máquina.
Lenguaje Ensamblador - Ejemplo
Lenguajes de Alto Nivel

Un Lenguaje de Programación de Alto Nivel es el encargado


de mostrar distintos Algoritmos de modo tal de que un
usuario pueda leerlo, reorganizarlo e interpretarlo.

La creación entonces de un Lenguaje de Alto Nivel está


orientada a que un usuario pueda organizar, ordenar y
modificar un procesamiento de datos en forma sencilla y
rápida, teniendo los conocimientos previos para sus distintas
normativas y organizaciones, y una elaboración de un Código
de Programación viable.
Lenguajes de Alto Nivel - Ejemplo
Procesadores de lenguaje
Compilador ¿Cómo funciona?

entrada

programa fuente
salida
Intérprete ¿Cómo funciona?

programa fuente
salida

entrada
Compilador híbrido ¿Cómo funciona?

programa fuente
salida
Programa
intermedio

entrada
Tarea 1 - “Mapa conceptual Estructura de un
compilador”

● Elaborar Actividad de Aprendizaje 1 de UEDi.

También podría gustarte