Want to create interactive content? It’s easy in Genially!
Compiladores
Omar Hernández
Created on February 2, 2024
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
Omar Hernández
La magia para el código objeto
Compiladores
El Compilador
El compilador es un programa que lee código de Alto Nivel como JavaScript o Python y lo traduce a un lenguaje ensanblador o código de máquina.
Tabla de códigos
Código objeto
Gestión de Errores
Programa fuente (Alto Nivel)
Genera código objeto
Genera código final
Genera código ensamblado
Genera código Optimizado
Síntesis
Genera código compilado
Genera código intermedio
Revisa lo que se quiere lograr
Análisis Semántico
Revisa el orden de las palabras
Análisis Sintáctico
Revisa que las palabras sean de lenguaje
Análisis Léxico
Análisis
El Compilador
Title 1
Esquema de Lenguaje
Facilidad de uso
Es muy eficiente
Orientado al Objeto
Declarativo
Imperativo
Compiladores
Interpretes
Ensambladores
Lenguaje de Máquina
Lenguaje de Bajo Nivel (Ensamblador)
Lenguaje de Alto Nivel (JavaScript o Python)
Modelo o Paradigma de la programación
Traducción a lenguaje de máquina
Nivel de Abstracción y Complejidad
Lenguajes de Programación (Hay 3 tipos)
Notas Musicales Formulas de Física Matemática y Química
Para los Humanos
Natural
Formal
Tipos de Lenguajes
Alfabeto. Son los caracteres o símbolos que forman un lenguaje
Lenguaje. Es un conjunto de signos y caracteres con los cuales formamos palabras o cadenas
Cadenas
Cadena o Palabra o String está formada por los símbolos o caractéres de un lenguaje Σ y tiene una secuencia finita. La cadena vacía se designa con ε (Epsilon) y la longitud de la cadena se denota con | |, por ejemplo, |0101| = 4, el cuatro siendo su cardinalidad. La longitud de la cadena vacía |ε| = 0.
Title 1
Explicar una Operación. Teoría de Automatas Alfabeto Σ ≠ 0 |Σ| > 0 Σ2 = {0,1} Alfabeto Binario Σ1 = {a,b,c...Z} Σ3 = {0,1,2,...,9} Palabra = Cadena = String Σ = {0,1} Palabra w1 = 01101 w2 = 0 Σ0 = {ε} Σ1 = {0,1} = Z Σ2 = {00,01,10,11} Σ* = Σ0 U Σ1 U Σ2 U... Cadena de Kleene Σ+ = Σ1 U Σ2 U Σ3 U... Cadena Positiva
Operaciones que se realizan por cadenas. -Cadena1 = "Hola" -Cadena2 = "Mundo" -Cadena3 = Cadena1 + Cadena2 = Hola Mundo Si A = {0,1}, son cadenas sobre A b1 = 0101 b2 = 1111 b3 = 0111000 b4 = ε Hayar las longitudes de b1, b2, b3 y b4. |b1| = 4 |b2| = 4 |b3| = 7 |b4| = 0 Operaciones de Potencia con Cadenas (b1)2 = 0101 0101 (b2)2 = 1111 1111 (b3)3 = 0111000 0111000 0111000
Cadenas
Title 1
Cerradura de Kleene vs Cerradura Positiva
Resumen
Ejemplos
Uso
Diferencia más importante
Definición
La cadena positiva es más específica y requiere más de una repetición de lenguaje.
La cadena de Kleene tiene la cadena vacía ε y es más flexible.
Σ = {c,d}Σ0 = {ε}; |ε| = 0 Σ+ = Σ* - Σ0 Σ+ = {c, d, cc, dd, cd, dc, cdc,...}
Σ = {c,d}La cadena de Kleene Σ* es Σ* = {ε, c, d, cc, dd, cd, dc, ccc, ddd, ccd, cdc,...} Σ* * este símbolo representa el infinito, desde cero hasta el infinito
Buscar cadenas que se repiten una o más veces.
Buscar cadenas que se repiten cero o más veces.
No incluye la cadena vacía Σ. Puede tener repeticiones del lenguaje.
Incluye la cadena vacía Σ. Puede tener cero repeticiones de lenguaje.
Es la cerradura de Kleene sin la cadena vacía. Σ+ = Σ* - Σ0; donde Σ0 = {ε}.
Es un conjunto que muestra todas las cadenas de todas las posibles combinaciones de los símbolos de un alfabeto, incluye la cadena vacía ε, |ε| = 0
Símbolo
Cerradura Postivia Σ+
Cerradura de Kleene Σ*
Title 1
La gramática ambigua se utiliza para la comunicación entre humanos y los chistes de doble sentido.-Soldado, firme. -Donde firmo sargento?
La gramática independiente del contexto se utiliza para los lenguajes de programación por su exactitud y no causar confusiones a la máquina
Resumen
Ejemplos
Análisis sintactico
Uso
Diferencia más importante
Definición
El hombre vio la mujer con el telescopioa) El hombre usó el telescopio para ver a la mujer. b) El hombre vio a una mujer con un telescopio
El niño comió la manzana. La casa tiene un perro. El gato duerme.
Produce dos o más árboles de derivación.
Produce un único árbol de derivación para una oración
Lenguaje Natural como oraciones con doble sentido.
Lenguajes de programación, lenguajes matemáticos, lenguajes físicos, lenguajes musicales
Es un lenguaje Natural, tomando el contexto para la correcta interpretación.
Es un lenguaje Formal, tomando en cuenta la forma y no el significado
La GA define un lenguaje Natural, donde una oración puede tener diferentes interpretaciones dependiendo del contexto.
GIC define un lenguaje Formal, donde la estructura de una oración se pueda analizar sin tener en cuenta su contexto.
Gramática Independiente del Contexto vs Gramática Ambigua
Gramática Ambigua GA
Gramática Independiente del Contexto GIC
Title 1
GIC
Estudié la cadena de Kleene Σ* que contiene la cadena vacía ε, y la cadena positiva Σ+ que no tiene la cadena vacía ε. De último entendí que la GIC se basa en que el significado de una oración no depende del contexto y en la GA una oración puede tener varios significados
Entendí que una cadena es una secuencia de caracteres que son letras o símbolos. La cadena vacía se escribe ε y se llama Epsilon. Podemos contatenar cadenas y buscarle la longitud o cardinalidad de una cadena.
Cadenas
Lenguaje
Analicé el concepto de lenguaje de programación, que es un conjunto de signos que forman un alfabeto para crear palabras o cadenas. Aprendí los 2 tipos de lenguaje, Natural para los humanos y Formal para los lenguajes de programación.
Aprendí lo que es un computador; es un programa que lee código de alto nivel y lo transforma en código de bajo nivel. Muy importante la función de cada fase para entender cómo funciona el compilador.
Compiladores
Title 1