You are on page 1of 5

Un traductor es un programa que recibe como entrada cdigo escrito en un cierto

lenguaje y produce como salida cdigo en otro lenguaje, generalmente el lenguaje de


entrada es de ms alto nivel que el de salida, por ejemplo, los traductores son los
ensambladores y los compiladores.
Cuando programamos en algn lenguajes de alto nivel, lo que estamos haciendo en
realidad es el cdigo fuente de ese programa, este cdigo fuente debe ser traducido a
lenguaje binario para que las instrucciones que contienen puedan ser entendidas y
ejecutadas por la computadora.
Un ensamblador es un programa que traduce de un lenguaje ensamblador a lenguaje
mquina, mientras que un compilador es un programa que traduce de un lenguaje de
alto nivel a un lenguaje de bajo nivel o a lenguaje mquina.
Un traductor es un programa que toma el texto escrito en un lenguaje (el lenguaje
fuente) y lo convierte en el texto equivalente en un segundo lenguaje (el lenguaje
destino u objeto).
Si la fuente es un lenguaje abstracto o de alto nivel y si el objetivo es un lenguaje de
ensamble de bajo nivel o de mquina, el traductor es un compilador.
Los programas traductores de lenguajes son:
1. Compiladores
2. Interpretes

Sintaxis, Lexico y Semantica


Sintaxis

Define orden de las palabras.

Estudia la correcta relacion de las palabras.

Busca eliminar la ambiguedad de las palabras.

Lexico

Diccionario.

Un analizador lexico en leguaje de programacin es un elemento de analisis que


verifica la valides y existencia de las palabras utilizadas dentro de una sentencia
(librerias string o tokenizador de java).

Semantica

Se encarga de establecer el significado de las palabras.

en un lenguaje de programacin al momento de compilar se determina la


semantica de las instrucciones escritas.

SINTAXIS
Un programa en cualquier lenguaje se puede concebir como un string de caracteres
escogidos de algn conjunto o alfabeto de caracteres. Las reglas que determinan si un
string es un programa vlido o no, constituyen la sintaxis de un lenguaje.
Posteriormente, se estudiarn ciertas notaciones denominadas expresiones regulares
y gramticas libres de contexto, muy usadas no slo para especificar las sintaxis de
los lenguajes de programacin sino tambin para contribuir en la construccin de sus
compiladores.
SEMANTICA
Las reglas que determina el significado de los programas constituyen la semntica de
los lenguajes de programacin. Es ms difcil de especificar que la sintaxis.
Los siguientes son algunos enfoques para especificar la semntica de los lenguajes:

Tabla de smbolos

La tabla de smbolos es una estructura de datos que nos permite realizar


operaciones de insercin, bsqueda y eliminacin de informacin en varias
construcciones del lenguaje fuente, la cual es analizada por el compilador
originndose un cdigo objeto.

Las principales operaciones de la tabla de smbolos las definimos as:

Insercin : Almacena informacin proporcionada por las declaraciones de


nombre cuando estas son procesadas.

Bsqueda : Recupera la informacin asociada con un nombre cuando este se


utiliza en una declaracin o el cdigo asociado.

Eliminacin : Elimina la informacin proporcionada por una declaracin


cuando esta ya no se aplica.

Generacin y optimizacin de cdigo intermedio


:
la optimizacin consiste
en la calibracin del rbol sintctico donde ya no
aparecen construcciones
de alto nivel. Generando un cdigo mejorado, ya no
estructurado, ms
fcil de traducir directamente a cdigo ensamblador
o mquina,
compuesto de un cdigo de tres direcciones (cada in
struccin tiene un

operador, y la direccin de dos operndoos y un lug


ar donde guardar el
resultado), tambin conocida como cdigo intermedio
.
resultado), tambin conocida como cdigo intermedio
.

La etapa de optimizacin slo dependen del lenguaje


fuente (y no de la
mquina), se busca principalmente: eliminar sub-exp
resiones comunes,
identificar cdigo muerto, sustituir operaciones ar
itmticas, clculo previo
de constantes, variables de induccin, propagacin
de copias o cdigo
inalcanzable. Suele ser una fase lenta y compleja

TOKEN
Un token o tambin llamado componente lxico es una cadena de caracteres que tiene
un significado coherente en cierto lenguaje de programacin. Ejemplos de tokens
podran ser palabras clave (if, else, while, int, ...), identificadores, nmeros, signos, o un
operador de varios caracteres, (por ejemplo, :=).
Son los elementos ms bsicos sobre los cuales se desarrolla toda traduccin de un
programa, surgen en la primera fase, llamada anlisis lxico, sin embargo se siguen
utilizando en las siguientes fases (anlisis sintctico y anlisis semntico) antes de
perderse en la fase de sntesis.
Un parser es un programa o la parte de un programa que analiza un string alfanumrico
para poder reconocer unidades gramaticales.
Las primeras aventuras, como la Aventura Original, usaban un parser de dos palabras,
que analizaba slo los primeros caracteres de una frase. Los juegos modernos tienen un
parser tipo Inform que comprende comandos ms complejos, con palabras ms largas.
Sin embargo, los sistemas de parsing actuales aun estn lejos de comprender el lenguaje
natural (coloquial) y normalmente entienden un conjunto muy acotado de frases que
pueden descomponerse en expresiones regulares y tokens dentro de un rbol sintctico
acotado, con un vocabulario ms bien limitado; mejorado respecto de la Aventura
Original, por cierto, pero lejos de la riqueza de un lenguaje hablado an por un nio
pequeo.
Los sistemas de autora modernos incluyen un parser entre sus componentes bsicos,
liberando al programador de la necesidad de crear un parser homebrew.
LEXEMAS
2.1 El lexema

Denominamos alfabeto y lo representamos por a un conjunto finito y no vaco de


elementos, llamados smbolos y que sern la base de los lenguajes. Lexema es la unidad
mnima e indivisible con significado y se construye a partir de los smbolos. Ej.: {1,
2,..., 9, +, -} --> -99
Lenguaje algortmico:
(A... Z) Maysculas
(a... z) Minsculas
(0... 9) Dgitos
(+, -, *, /...) Smbolos especficos
Diremos que un lexema est sobrecargado cuando es utilizado con ms de un
significado. Tipos de lexema:
Identificadores. La Manera de hacer referencia a cada uno de los elementos que
intervienen en un algoritmo es darles un nombre a cada uno. En programacin se llaman
identificadores a los nombres dados a los elementos del programa. En nuestro lenguaje
de implementacin son aquellos lexemas que empiezan por una letra seguida de un
nmero n arbitrario de letras o dgitos o el smbolo de subrayado. Ej.: s, i, n, suma1,
suma_nmeros
Palabras reservadas. Son identificadores usados de modo privado y exclusivo del
lenguaje no pueden de utilizados por el programador para llamar a sus propios
elementos (variables o constantes). Ej.: while
Literales y Smbolos de operacin. Los literales denotan valores concretos de
elementos computables mientras que los smbolos de operacin denotan operaciones
sobre el dominio de valores; en general pueden estar compuestos por varios smbolos de
nuestro alfabeto. Ej.: 1, 7
Separadores. Son lexemas constituidos por uno o una hilera de varios smbolos de
puntuacin: (, ), {, }, /,...
Dentro de los separadores contaremos con el espacio en blanco y el salto de lnea.
Antecedentes necesarios para tener conocimiento exacto de algo (cantidades, cualidades
o hechos).
Acciones como la reunin, seleccin clculo o escritura.
Un elemento en los conocimientos derivados del anlisis de datos.

DELIMITADOR
Un delimitador es una secuencia de uno o ms caracteres que se utilizan para especificar
el lmite entre las regiones separadas, independientes en texto o en otros flujos de datos.
Un ejemplo de un delimitador es el carcter de coma, que acta como un delimitador de
campo en una secuencia de valores separados por comas.
Delimitadores representan uno de varios medios para especificar los lmites en un flujo
de datos. Notacin declarativa, por ejemplo, es un mtodo alternativo que utiliza un
campo de longitud en el inicio de un flujo de datos para especificar el nmero de
caracteres que contiene la secuencia de datos.
CADENA

onstantes de cadena (Informtica). Tambin llamadas cadenas literales


o alfanumricas ("String literals"), son utilizadas para albergar secuencias
de caracteres alfanumricos, y forman una categora especial dentro de las
constantes, aunque tambin pueden ser consideradas un caso especial de
matrices de caracteres. Se representan en el Cdigo fuente como una
secuencia de caracteres entre comillas dobles ("):

You might also like