Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Materia: Compiladores
Temas: Compiladores, interpretes, tokens, expresiones regulares
Estudiante: Dagoberto Angulo J
Docente: Luis Cardozo
Lenguajes compilados
Un compilador es, a grandes rasgos, un traductor. Es el encargado de transformar el código fuente
del programa que hemos creado (generalmente usando un lenguaje de alto nivel), junto con todas
las dependencias y librerías necesarias para que el programa pueda ejecutarse y funcionar sin
problemas, en un archivo binario. Este compilador se encarga de comprobar que no hay errores en
el código (para evitar fallos críticos), así como de analizar y agrupar la sintaxis y la estructura del
programa. Si todo está correcto, lo pasa a un lenguaje intermedio común, ensamblador, para,
posteriormente, optimizarlo y traducirlo a lenguaje binario. De esta manera, a través del sistema
operativo, el programa se puede ejecutar en la máquina.
lenguajes interpretados
En ciencias de la computación, intérprete o interpretador es un programa informático capaz de
analizar y ejecutar otros programas. Los intérpretes se diferencian de los compiladores o de los
ensambladores en que mientras estos traducen un programa desde su descripción en un lenguaje de
programación al código de máquina del sistema, los intérpretes solo realizan la traducción a medida
que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado
de dicha traducción.
Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de
traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de
programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar
partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al
programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino
del propio intérprete (lo que se conoce comúnmente como máquina virtual).
Tokens
Así, un token puede ser una palabra, una sub-palabra (es decir una parte de una palabra) o por
ejemplo un signo de puntuación. Es decir que la codificación con tokens es un punto intermedio
entre la codificación a nivel de caracteres y la codificación a nivel de palabra de la que hablamos
hace un momento.
Entendamos este concepto con algunos ejemplos.
La palabra “una” es tokenizada (es decir convertida a tokens) como “una”, es decir es exactamente
igual a 1 token.
Pero la palabra “puntos” es tokenizada con 2 tokens: “punt” y “os”. Y esto se debe a que la
secuencia de caracteres “punt” aparece en varias palabras del Español y por tanto, por ser
relativamente común, se codifica como un sólo token.
Por ejemplo, podemos encontrar las palabras puntillas y puntapié que tienen exactamente la misma
secuencia inicial de caracteres “p”, “u”, “n” y “t”.
Así, dependiendo del lenguaje y de la palabra en particular, un token puede ser exactamente una
palabra o una porción de una palabra.
Referencias:
https://www.softzone.es/programas/lenguajes/que-es-compilador/
https://es.wikipedia.org/wiki/Int%C3%A9rprete_(inform%C3%A1tica)
https://www.codificandobits.com/blog/tokens-y-llms/#qu%C3%A9-son-los-tokens