0% encontró este documento útil (0 votos)
6 vistas7 páginas

¿Qué es un compilador y su función?

El compilador es un traductor que convierte el código fuente de un lenguaje de programación de alto nivel a un código de máquina que puede ser entendido por un procesador. Este proceso incluye análisis léxico, sintáctico y semántico, así como optimización del código y detección de errores. Aunque los compiladores mejoran el rendimiento y la eficiencia, también presentan desventajas como tiempos de compilación largos y complejidad en su uso.

Cargado por

yilbersuarezcal
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas7 páginas

¿Qué es un compilador y su función?

El compilador es un traductor que convierte el código fuente de un lenguaje de programación de alto nivel a un código de máquina que puede ser entendido por un procesador. Este proceso incluye análisis léxico, sintáctico y semántico, así como optimización del código y detección de errores. Aunque los compiladores mejoran el rendimiento y la eficiencia, también presentan desventajas como tiempos de compilación largos y complejidad en su uso.

Cargado por

yilbersuarezcal
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 DOCX, PDF, TXT o lee en línea desde Scribd

Quisiera saber si alguno tiene una idea de lo que se refiere a la palabra compilador toda la noche.

Bueno, como dice el caballero en verdad, el compilador básicamente es un traductor que traduce
el lenguaje humano a que la máquina lo pueda compilar. Normalmente utilizaban el lenguaje
binario, ahora utilizan otro tipo de lenguaje que también se puede expresar de forma secuencial y
mucho más fácil.

Para eso se utiliza el compilador. Puede ser de manera de extensión y también hay programas que
ya lo incluyen. Tenemos el C++, tenemos el Java, tenemos el Python, como han explicado en la
anterior clase. De estos programas se trata del lenguaje humano traducido a lo que una máquina
puede tener ¿Queda claro lo que es el compilador? Bueno chicos, hay varios pasos que el
compilador tiene que cumplir para que el programa haga un buen proceso. Para que sea algo
óptimo, que sea algo que realmente funcione.

Primero está la parte de la traducción Está el lenguaje de entrada, el de entrada y el de salida. Hay
otro tipo de compilador.

Luego tenemos la parte en la que hace la optimización del recurso. Lo que el diario lo optimiza y lo
vuelve algo mejor y más funcional para el software. Hace que ya pueda ser un programa .es. No sé
si alguno conoce ese tipo de programas.

¿Quedan claras las partes del compilador? Luego de esto, la relación de corte y detención de los
errores. Varios programas de compilación, en mi caso aquí como RAND, lo iba a poner. En este
caso, si no lo mira justo la profesora, estos datos de acá no le iban a funcionar.

El compilador te iba a decir que el programa tiene un error de lectura. Ahora, esta extensión nos
permite identificar cuál sería el error. Esta es la parte en la que nosotros podemos utilizar el
compilador como un guía también.

Lo voy a dejar con mis compañeros que les van a dar muchas más informaciones técnicas acerca
del compilador. El compilador, hay que entenderlo como si fuera un traductor. Fácil, ¿verdad? Él
empieza con el código fuente.

El código fuente es un lenguaje de programación de alto nivel. ¿Qué hace esto? El procesador no
puede leer ese lenguaje. El compilador traduce ese código de fuente al código de máquina.

Serían 0 y 1. Lo cual el procesador de la computadora podría entender eso. Acá tendremos un


claro ejemplo sobre un libro de ingeniería. Está en un idioma que nosotros no entendemos.

Podría ser el idioma chino El código fuente es el libro este que nosotros no entendemos. El idioma
que está en ese libro.

Después vendría el compilador, que sería el traductor profesional o la editora que va a traducir ese
libro. Después vendría el código de máquina, como ya lo dije Es el libro ya traducido.

Y el último es el procesador, que sería el lector, el cual podría leer ya el libro Bueno, tres pasos
importantes aquí serían el análisis. Antes del compilador iniciar, el analiza el lenguaje.
Como lo dijo mi compañero, tiene que saber si las frutas y las gramáticas están bien. Porque si no,
aquí no tenemos un ejemplo. Si escribe x igual a ola, ese va a tirar un error y no va a poder
ejecutarlo.

¿Por qué no va a poder ejecutarlo? Porque lo sabe. ¿Y x igual a ola? Porque ola no es un error. A la
vez no es un error, el programa simplemente no.

Aquí, como lo dice su título, optimización. Antes del compilador entregar el código, él puede
reagrupar y simplificar ciertas instrucciones. Pero no cambiaría el resultado cierto.

Y por último es la generación del código. El compilador entregaría el archivo ejecutable. Y podría
tener un solo archivo o en varias partes.

Bueno, y por último la pregunta que usted tiene aquí. ¿Qué hace el compilador a la hora de la
ejecución de un programa? Él no tiene nada que ver a la hora de la ejecución de un programa.
¿Por qué? Aquí como dice, cuando un usuario o el sistema operativo ejecuten el archivo, el
procesador lleva a cabo las instrucciones que ha dado el compilador.

Obviamente ya traducido desde el usuario de la computadora. ¿Quedan claras las informaciones?


¿Alguien sí puede preguntar por acá?¿Todos estamos claros? (5:34) Adelante. Yo voy a decir
ahora.

Ella escucha, pero yo voy a decir ahora. Diga. Ahora es privado.

Es privado Eso es otra pregunta. Después.

Seguidamente con los lenguajes de programación compilados, son aquellos que requieren de un
proceso de compilación. Es decir, para poder traducir el código de fuente escrito por el
programador a un código matemática. Este puede ser ejecutado por la computadora.

Este proceso nos ayuda a optimizar el rendimiento y la eficiencia del programa. En ello nos
encontramos con TAPE, que es un lenguaje de programación con propósito general y es
ampliamente utilizado en sistemas gráficos y desarrollo de software de sistemas. Una de las
ventajas de este programa es que nos permite, y es muy eficiente y nos permite el control de los
recursos del sistema.

En ello nos encontramos con una sintaxis, ¿verdad?, que incluye io-stream a, estudio h. Esta es
una biblioteca estándar que permite la entrada y la salida. Y ntmai es su función principal. Y aquí
utilizamos print, porque está imprimiendo el resultado que nosotros queremos tener, por ejemplo
5 más 3. Y retárselo porque nos indica el programa que ha terminado con éxito.

Seguidamente con C++ es una simulación de C, a diferencia de este, C++ tiene características de
entrada de objetivos, ¿verdad?, en programación. Una de las ventajas de este programa es que
nos permite el control de crear aplicaciones, ¿verdad?, ya sean complejas. Y aquí nos
encontramos con una sintaxis de C++ que incluye io-stream.
Esta es una biblioteca, ¿verdad?, que permite la entrada y la salida de C++. Y ntmai es como una
simulación de C, que incluye su función principal Y aquí colocamos, aquí como el error que está
aquí, es como lo mismo que explicó la profesora, que para nosotros poder colocar este 3D,
tenemos que colocar la biblioteca incluye stream.

Ajá. Y colocamos todo, porque esto nos va a significar que necesitamos que el programa imprime
resultados. Es como cuando nosotros vemos algoritmos que nosotros, como ejemplo que ya
dieron, nosotros colocamos escribirle.

En cambio aquí colocamos todo porque necesitamos que el programa imprime resultados. Y sin
para que el programa lea resultados. Ahí están todos.

Sí, aquí en este lado. Sí, sí, aquí en este lado. Con ello nos encontramos con both, de verdad.

Que este, este es un lenguaje moderno. Que este es ampliamente utilizado y nos optimiza el
rendimiento y la eficiencia del programa. ¿Verdad? En ello nos encontramos con una sintaxis
también que dice...¿Qué dice? No, dice B. Ahí dice...¿Este?¿Both? No, es dos.

Ajá. Estamos por acá. Sí, estamos por acá.

Entonces aquí nos encontramos con bot. Que este es como un... No, voy a explicarlo a mí, porque
es buena. Ajá.

Entonces es un lenguaje con propósito general. Que es ampliamente utilizado y no es muy fácil de
utilizar. Ya que nos permite la creación de aplicaciones y sitio web.

En este caso nos encontramos con bootman. Que este es un lenguaje que imprime. Lo utilizamos
para que nos imprima el resultado de dos números.

Que en este caso es 5, 5 más 3. En ello nos encontramos con bot. Que este es un lenguaje
desarrollado por Botlet. Ampliamente utilizado.

Y es muy utilizado en la creación de aplicaciones web. Es decir, ya sea... Pues un ejemplo básico
puede ser... Uno como extranjero de informática puede crear una aplicación como el SGA.
Seguidamente como mi compañero licenciado.

Entendemos entonces que el compilador va a ser el traductor del código fuente Que es un
lenguaje de programación como el C++. A un lenguaje de un nivel más bajo al código máquina.

Este tiene varias ventajas que les dieron dos por ahí. Pero yo voy a hablar sobre el rendimiento
mejorado. Que habla que a la hora de traducir el código de fuente al código de máquina.

Pues el proceso suele ser un poquito más rápido. Que los lenguajes de interpretación. Por
ejemplo.

Tenemos un videojuego de fricción C++. Y se compila a la hora de que este sea mucho más
efectivo. A pasar por su consola y nos dé una experiencia de mejor en el juego.
También está en la detección temprana de errores. Entendamos que este lee y ve los códigos que
escribimos. Entonces va a ver errores en la sintaxis y en la semántica.

Antes de que el programa lo vea. Por ejemplo tenemos un programa de contabilidad. A la hora de
no tener un valor o una justificación.

Como lo que la profesora nos está señalando. Él lo va a interpretar. Va a decir aquí hay un error y
no va a poder ejecutar ese procesador.

Y así poder evitar errores en la operación. También la optimización del código. Los compiladores
pueden tener varias técnicas de optimización.

Que va a mejorar en su memoria. Y también en su velocidad para que los programas se ejecuten
más rápido. El ejemplo que tenemos ahí.

Por cierto. Todos ustedes tienen la información que se les envió por whatsapp. Por si la quieren
leer.

Dice que el programa realiza cálculos complejos. Entonces de que le va a servir la optimización. Es
que esto va a ser mucho más rápido.

Mucho más eficaz. A la hora de hacer ese proceso. La portabilidad.

La portabilidad habla de que un compilador. Puede ejecutarse en cualquier sistema no compatible.


Con respecto a la estructura del compilador.

Que quiero decir con esto. Que si nosotros hacemos un programa. De una manera.

Por ejemplo en Windows. Lo podemos compartir a otra máquina. O trasladar a otra máquina.

Que tenga el mismo sistema que lo hicimos. Y así no tener que reescribirlo. Un poco más adelante
veremos en la actualidad.

La seguridad y la gestión del código. El código en fuente no se va a distribuir. O sea el código en


fuente como tal.

No se comparte. Y eso va a reducir el riesgo. A que otras personas lo cambien o lo modifiquen.

Y normalmente esto se utiliza mucho. En lo que es las operaciones. En los programas de


contabilidad.

Y otros porque eso ayuda. A que esa información no se explique. En los compiladores.

Las desventajas de un compilador. Como tal. Es bastante tardar.

A la hora de hacer una compilación. Puede ser un proceso muy largo. Y mucho más a lo que viene
siendo.
Programas muy largos como software. Eso nos va a quitar mucho tiempo. Porque si queremos
hacer un software.

Desarrollar un software. Y queremos cambiarlo. Lo vamos a tener que volver a hacer desde cero.

Volver a cambiar. Y viene de mano con que es mejor flexibilidad. Porque tenemos el software listo.

Pero le queremos cambiar o mejorar alguna cosa. Esa cosa va a tener que volverse a recompilar.
Volverse a hacer desde cero.

Y analizar la dependencia del entorno. Lo que venía hablando sobre la portabilidad. Es que el
código compilado es específico para el sistema operativo.

Entonces si yo compilo en un formato para Linux. ¿Me va a servir para Windows? No. No es cierto.

Entonces eso me va a causar problemas de portabilidad. Y obviamente lo que puede complicar. El


despliegue de diferentes plataformas.

Su complejidad de uso de herramientas. Y aquí vamos a entrar en lo que viene siendo. Para
nosotros como principiantes.

En la hora de la programación. Se nos va a hacer difícil. Es un poquito difícil.

Hay que ponerle un poquito más de empeño. Para estudiar. Ya que el uso de la herramienta es
complicado.

Porque a la hora de configurar. Y desarrollar el lenguaje. Tiene mucha dependencia de las


bibliotecas.

Y configuraciones de compilador. Pero estas son herramientas efectivas. Que nos van a ayudar a
alcanzar nuestros objetivos.

Pero igualmente tengamos en cuenta todas las desventajas. Para no pasar desapercibido. Yo voy a
continuar hablándoles ahora.

Sobre los compiladores paso a paso. Para empezar tenemos el primer paso. Que es el análisis
léxico.

El análisis léxico vamos a dividirlo en tres partes. Como entrada. Salida.

Y luego explicaré el proceso. En la entrada. Es el código fuente.

Como lo llevó a mencionar mi compañero Don Mario. Es el código fuente que uno está analizando.
En un lenguaje de alto nivel.

Mientras que en la salida. Es la secuencia de tokens. No se preocupen que yo voy a proceder a


explicarles.
Que son los tokens. Los tokens son. Unos números.

O algunas palabras claves. A las que se les asigna un valor en específico. Todo en función a la
traducción que uno esté construyendo.

Que se hace durante este proceso. Muy fácil. Se leen los caracteres a la vez.

Que se le da una división a cada uno de los tokens. En torno a su utilidad. A lo que se está
buscando traducir.

Vamos con el siguiente paso. Que es. Ni más ni menos.

Que es el análisis sintáctico. El análisis sintáctico. Al igual que la entrada.

Salida. Y proceso. Como entrada.

Está el grupo de tokens. Que no hay que confundir con la secuencia de tokens. Ya que durante
este paso.

Ya se han formado los tokens. De forma en la que sea más fluido. A la vez que ya sea algo.

Que esté completamente mentalizado. Y luego como salida. Tenemos el árbol de sintaxis
abstracto.

El árbol de sintaxis abstracto. Hablaré más de él adelante. El proceso que se realiza.

En este segundo paso. Es que se verifica que los tokens. Cumplan con la función que se debe
realizar.

Ahora vamos a hablar. Sobre el análisis. Semánico.

El análisis semántico. Es nuestro tercer paso. Y uno de los más importantes.

Como entrada. Es el AST. Que es árbol de sintaxis abstracto.

O CST. Ahora sí voy a pasar a explicarles qué es. El AST.

Es la representación del código fuente. Pero de manera simplificada. Mientras que el CST.

Es la representación del código fuente. Pero de una manera más fiel. A como realmente es.

Y como salida tenemos. AST. Pero con información semántica.

¿A qué se refiere con información semántica? De que en vez de representar. El código fuente. De
manera.

Simple. Lo que hace es representarla. De manera jerárquica.

En donde se va realizando. Algunos procesos. Para verificar los tokens.


En este proceso. Lo que se lleva a cabo. Es la verificación del código fuente.

Y que todo esté funcionando. Acordando con la traducción. Y lo que nosotros estamos buscando.

Ahora pasaré. Con el primer paso. Que es.

Su nombre es. Estructuración. De IR.

(¿Qué se preguntarán?¿Qué son las IR? La IR. Es la representación intermitente. Esta viene por la
entrada.

Que es. A largoAST.

Semántica. Mientras que de salida. Tiene el IR.

Ahora yo le voy a aclarar. ¿Qué es el IR? El IR. Es la representación del código.

Pero de forma. Primero que nada. Es un código que está de bajo nivel.

Un código de bajo nivel. Que se utiliza para que el código fuente. Resalte de una manera más
abstracta.

Por así decirlo. Y ya en este proceso. En hacer el paso final.

Lo que se hace es. Significan las estructuras. Y se normalizan las expresiones del lenguaje.

Haciendo que ya esté. Completamente traducido y eficaz. Un paso de IR.

Se puede colocar en el lenguaje. Y en la actualización. Se puede verificar cada uno de los pasos
anteriores.

Y así uno mismo concluye. Que se debe simplificar. O en que aspecto del lenguaje.

También podría gustarte