En este curso aprenderás a crear tus propios traductores o intérpretes de lenguajes, que te permitirán correr en un lenguaje ya hecho algún otro lenguaje de programación.
Un compilador es un programa que traduce un lenguaje informático a un lenguaje máquina o en su caso a un lenguaje ejecutable.
Un compilador esencialmente se conforma de los siguientes elementos:
Es un conjunto de componentes totalmente portables que conforman a un compilador.
Es el conjunto de componentes que son totalmente dependientes de una arquitectura real o virtual. Para el caso de los códigos ejecutables, es imprescindible en enlazador o linker por su nombre en inglés.
Conceptualmente un compilador opera en varias etapas o fases de compilación, cada una de las cuales cambia la representación del programa.
El diagrama fue creado con el software plantUML con mediante el siguiente código:
@startuml
title "Fases de compilación"
state "Código Fuente" as fuente
state "Análisis Léxico" as lexico
state "Manejo de errores" as errores
state "Administración de la tabla de símbolos" as tabla
state "Análisis Sintáctico" as sintactico
state "Análisis Semántico" as semantico
state "Generación de código intermedio" as intermedio
state "Optimización de código" as optimizador
state "Generación de código ejecutable" as generador
state "Ensamblaje de programa objeto" as enlazador
[*] --> fuente
fuente --> lexico
lexico --> errores
errores --> lexico
lexico --> tabla
tabla --> lexico
lexico --> sintactico
sintactico --> errores
sintactico --> tabla
tabla --> sintactico
errores --> sintactico
sintactico --> semantico
semantico --> errores
semantico --> tabla
tabla --> semantico
errores --> semantico
semantico --> intermedio
intermedio --> errores
intermedio --> tabla
tabla --> intermedio
errores --> intermedio
intermedio --> optimizador
optimizador --> errores
optimizador --> tabla
tabla --> optimizador
errores --> optimizador
optimizador --> generador
generador --> enlazador
generador --> errores
generador --> tabla
tabla --> generador
errores --> generador
enlazador --> [*]
@enduml Como parte de una clasificación básica podemos mencionar a los siguientes tipos de compiladores:
También conocidos como crosscompilers su principal caracteística es que son compiladores multiplataforma.
Son compiladores que generan código ejecutable de alto desempeño, a partir de el código generado por otro compilador o desde cero.
Hacen un análisis del código antes de proceder a al generación del código ejecutable
Realizan varios análisis del código antes de proceder a la generación del código ejecutable.
Las siglas JIT significan Just-In-Time. Estos compiladores forman parte de in intérprete, y para aumentar su desempeño compilan código según se necesite en tiempo de ejecución.
Te comparto aquí mis recomendaciones de cursos de Código Facilito. Codigofacilito.com es una plataforma virtual…
Te comparto aquí mis recomendaciones de cursos de Linkedin Learning. LinkedIn Learning es una plataforma…
Estos snippets de código para entrevista acerca de mockito espero te sean de mucha utilidad.…
En este tutorial aprenderá a usar expresiones regulares en Java de manera práctica para contar…
¿Entrevista de programación Java fullstack? No te preocupes, te tengo un compendio de preguntas de…
Te recomiendo algunos cursos de Udemy para mejorar tus softskills y así mejorar en tu…