Want to create interactive content? It’s easy in Genially!

Reuse this 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