miércoles, 28 de febrero de 2018

Estructura de un traductor

ESTRUCTURA DE UN TRADUCTOR:

Un traductor es un programa que tiene como entrada un texto escrito en un lenguaje (lenguaje fuente) y como salida produce un texto escrito en un lenguaje (lenguaje objeto) que preserva el significado de origen.

1.
Ejemplos de traductores son los ensambladores y los compiladores.


2.
En el proceso de traducción se identifican dos fases principales:


3.
Fase de análisis

4
  • Fase de Síntesis



Herramientas computacionales ligadas con lenguajes

Herramientas computacionales ligadas con lenguajes


TRADUCTOR:
Un traductor es un programa que tiene como entrada un texto escrito en un lenguaje (lenguaje fuente) y como salida produce un texto escrito en un lenguaje (lenguaje objeto) que preserva el significado de origen.
Ejemplos de traductores son los ensambladores y los compiladores.

COMPILADOR:
El compilador es un programa informático que traduce un programa escrito en lenguaje de programación y lo pasa a lenguaje de programación, podemos decir que este programa nos permite traducir un código fuente de un programa en lenguaje de nivel alto, y lo pasmos a otro nivel inferior (lenguaje maquina).

INTERPRETES:
Los interpretes son los que realizan normalmente dos operaciones:
Traducen el código fuente a un formato interno.
Ejecuta o interpretan el programa traducido al formato interno.
Donde la primera pertenece al interprete el cual llama a veces al compilador, así se genera el código interno, pero no es el lenguaje de maquina, ni lenguaje de símbolos, ni mucho menos un lenguaje de nivel alto.

ENSAMBLADORES:
El ensamblador es el programa en que se realiza la tracción de un programa escrito en ensamblador y lo pasa a lenguaje maquina. Directa o no directa la traducción en que las instrucciones no son mas que instrucciones que ejecuta la computadora.

EDITORES DE ESTRUCTURAS:
“Un editor de estructuras toma como entrada una secuencia de órdenes para construir un programa fuente. El editor de estructuras no sólo realiza las funciones de creación y modificación de textos de un editor de textos ordinario, sino que también analiza el texto del programa, imponiendo al programa fuente una estructura jerárquica apropiada. De esa manera, el editor de estructuras puede realizar tareas adicionales útiles para la preparación de programas” Concepto encontrado en el libro de Compiladores de Addison Wesley, a mi punto de vista estos editores de estructura son los que se encarga de llevar el orden de las palabras, valla el acomodo y comprobar si la entrada está formada correctamente. 

IMPRESORAS ESTETICAS:
“Una impresora estética analiza un programa y lo imprime de forma que la estructura del programa resulte claramente visible” Concepto encontrado en el libro de Compiladores de Addison Wesley. Verificadores estáticos: Este verificador lee un programa, lo analiza e intenta descubrir errores potenciales sin correr el programa, algo muy parecido a la corrección de los editores de texto como Word. “Un verificador estático puede detectar si hay partes de un programa que nunca se podrán ejecutar o si cierta variable se usa antes de ser definida” nos dice Addison Wesley. 

INTERPRETES: 
“En lugar de producir un programa objeto como resultado de una traducción, un intérprete realiza las operaciones que implica el programa fuente. Muchas veces los interpretes se usan para ejecutar lenguajes de órdenes, pues cada operador que se ejecuta en un lenguaje de ordenes suele ser una invocación de una rutina compleja, como un editor o un compilador”






viernes, 16 de febrero de 2018

miércoles, 31 de enero de 2018

ALFABETO, CADENA, LENGUAJE

ALFABETO:
Un alfabeto es un conjunto finito no vacío de símbolos y se denota como $ \Sigma$.

La pertenencia de un símbolo $ \sigma$ a un alfabeto $ \Sigma$ se denota como $ \sigma$ $ \in$ $ \Sigma$.
Ejemplo: Podemos representar el alfabeto de las letras minúsculas que utiliza el idioma español, el cual contiene los 27 símbolos siguientes:

$\displaystyle \Sigma = \left\{ a,b,c,d,e,f,g,h,i,j,k,l,m,n,\textrm{\~n},o,p,q,r,s,t,u,v,w,x,y,z\right\},
$

y sabemos que la letra $ a$ pertenece a este alfabeto, lo cual denotaremos como $ a\in\Sigma$.
Ya sabemos que los alfabetos son conjuntos, por lo que, todas las operaciones de conjuntos se pueden aplicar a los alfabetos también. Sean $ \Sigma_1,\Sigma_2, \ldots, \Sigma_n $ alfabetos, y ya que los alfabetos son conjuntos finitos, no vacíos, la unión de un número finito de ellos $ \bigcup_{i=1}^n \Sigma_i$ resulta en un conjunto no vacío y finito, esto es, si $ \Sigma_{i}\neq\emptyset$ y $ \Sigma_{i+1}\neq\emptyset,\ \mathrm{entonces}
\ \Sigma_{i}\cup\Sigma_{i+1}\neq\emptyset.$
La unión de un número arbitrario finito de alfabetos resultará en un conjunto finito y no vacío, es más, si $ \Sigma_1$ y $ \Sigma_2$, son conjuntos no vacíos, entoces $ \Sigma_1 - \Sigma_2,
\ \Sigma_2 - \Sigma_1\ \textrm{y}\ \Sigma_1\cap\Sigma_2$ son conjuntos finitos, no vacíos, y por lo tanto serán considerados alfabetos válidos.


PALABRA O CADENA:
Una cadena o palabra es una secuencia finita de símbolos que pertenecen a un alfabeto y comunmente se denota con la letra $ w$. La cadena vacía se denota como $ \varepsilon$ y es una secuencia vacía de símbolos tomados de cualquier alfabeto $ \Sigma$.

Sí el alfabeto es el español, algunas cadenas pueden ser $ yomero$$ tumero$ y $ malnacido$. Dada la definición anterior, cualquier palabra que contenga los símbolos del alfabeto es una cadena válida, sin importar si esta tiene o no significado alguno.
Si $ w$ es cualquier cadena, su longitud se denota como $ \vert w\vert$, la longitud de una cadena es el número de símbolos que contiene, por ejemplo, si tenemos la cadena $ w=malnacido$ sobre el alfabeto español, $ \vert w\vert=9$. La cadena vacía $ \varepsilon$ no tiene símbolos, por lo que $ \vert\varepsilon\vert=0$


LENGUAJE:
Un lenguaje $ L$ es un conjunto de cadenas sobre un alfabeto $ \Sigma$ definido, éstas pueden ser cualquier cadena $ w$, que cumpla con lo siguente, $ w$ esta formada por los símbolos $ \sigma_1\sigma_{2}\ldots\sigma_{k}$ donde $ \sigma_k \in \Sigma\ \forall k$.

El lenguaje vacío es aquel que no contiene cadenas y no es lo mismo que el lenguaje formado por la cadena vacía $ \{\varepsilon\}$, éste lenguaje se denota de la misma manera que el conjunto vacío, $ \emptyset$.
Sí se tiene una cadena $ w$ sobre un alfabeto $ \Sigma$ y $ L$ es el lenguaje compuesto por algunas de las cadenas sobre el alfabeto $ \Sigma$ y $ w \in L$, entonces diremos que $ w$ es un miembro de $ L$.