• Viernes 8 de Noviembre de 2024, 21:04

Autor Tema:  Traductor-compilador  (Leído 2355 veces)

jhumpa

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Traductor-compilador
« en: Sábado 30 de Junio de 2007, 22:57 »
0
Hola a todos, tengo una duda:
se podra implementar un traductor de idiomas basandome en la estructura de un compilador?
Si fuera asi, como se implementa el codigo de un compilador; si estoy haciendolo todo en el lenguaje JAVA.
Algun manual, para que me recomienden?

De antemano, gracias por sus comentarios.

jpaler

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Traductor-compilador
« Respuesta #1 en: Domingo 1 de Julio de 2007, 00:11 »
0
pero cual es la pregunta...
¿como hacer un compilador? o ¿como hacer un traductor?

Salu2 !!!

jhumpa

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Traductor-compilador
« Respuesta #2 en: Lunes 2 de Julio de 2007, 02:58 »
0
Disculpa, por no ser tan claro.
Lo que quisiera es hacer un traductor de idiomas.
Estaba viendo varias formas de hacerlo, para elegir la menos complicada de implementar.Se me ocurrio que una de esas formas era, entender la implementacion de un compilador.
Quisiera sugerencias para hacer un traductor de idiomas.

Gracias de antemano.
Salu2.

jpaler

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Traductor-compilador
« Respuesta #3 en: Lunes 2 de Julio de 2007, 14:24 »
0
normalmente los compiladores tiene algo q se llama "analizador lexico" y
"analizador sintactico".

Analizador Sintactico: se encarga de la sintaxis del lenguaje, y verifica
que se cumpla la misma, es decir, x ejemplo: si un Lenguaje A tiene las
palabras 'uno', 'dos' y 'tres'... y x error se le define 'cuatro', el Analizador
Sintactico te diria que 'cuatro' no pertenece al Lenguaje A.
Analizador Lexico: se encarga de verificar q se cumpla la definicion
propia del lenguaje, es decir, por ejempo: si se define el Lenguaje A y se
especifica q la manera correcta de utilizarlo es de forma ordenada, de menor
a mayor... si yo le defino 'uno','dos','tres'  o le defino 'dos','tres' el Aanalizador
Lexico me dice q esta bien, ya q cumple con las reglas (orden ascendente), pero
si en cambio le defino, 'tres','uno' me dice q hay un error.
Resumen: s necesita un modulo encargado de q todo este bien escrito
(analiz. sintac.) y otro modulo encargado para verificar q aunque este bien escrito,
este cumpla las reglas del lenguaje (analiz. lexico).

Ahora... acerca del traductor.
Yo si creo q la manera en que trabaja un compilador te sirva como base o guia
para desarrollar tu traductor... ya q te tocaria definir:

:: Las palabras del idioma, que son las q vas a traducir... y a este mismo te
tocaria pasarle el Analizador Sintactico para verificar q el escrito tiene solo las
palabras q el traductor puede ser capaz de interpretar. Por ejemplo: si tu solo
definiste traducir 'amo','yo','te' y alguien te sale con 'puerta' para la cual tu
traductor no conoce su equivalente, deberia enviarse un error de sintaxis, al
menos q definas q para una palabra diferente a 'amo','yo','te' su equivalente
sea ella misma... (como veo q hacen los traductor q hay x hay).
:: Definir el comportamiento del lenguaje, aqui debes definir el orden en q
iran las palabras q ya anteriormente definiste, x ejemplo: si alguien escribe
'yo te amo', deberia ser reconocida, pero si en cambio escriben 'amo te yo', el
Analizador Sintantico nunca te votaria error, ya q son las palabras q tu puedes
traducir, solo q no cumplen las reglas q definiste, y entonces tu Analizador Lexico
diria un NO Reconocida a esa frase y posiblemente su traduccion seria ella misma.
:: Los resultados, una ves q se cumpla la sintaxis y las reglas del lenguje,
para cada regla cumplida se debe generar una determinada salida, x ejemplo:
para alguien q escriba 'yo te amo' su salida deberia ser 'I love you'.

....
Yo espero no haberte confundido mas, de todos modos te aclaro q no soy experto
en compiladores, asi q seria normal tener un error en alguno q otro termino
tecnico manejados en estos... pero mas/menos la idea es esa.

Si en verdad quieres hacer el traductor, creo q antes debes leer muchos libros
hacerca de compiladores...
...

Si algo gritaaaa...jejeje
Salu2 !!!

jhumpa

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Traductor-compilador
« Respuesta #4 en: Lunes 2 de Julio de 2007, 22:30 »
0
Gracias por la informacion, porque son conceptos generales,
Estas aclaraciones,son las que sospechaba, pero no las tenia muy claras.
Habia averiguado que un traductor pasaba por 3 fases, un analisis lexico, un analisis sintactico, y por ultimo un analisis semantico.
Soy conciente que cada fase, es mas complicada, que la fase que la precede.

Pasando la fase lexica, para la siguiente fase(sintactica), tengo que tener una representacion intermedia, es decir utilizar una estructura adecuada(listas o arboles); porque si al inicio tengo una lista de palabras, al aplicarle las reglas sintacticas, me debe generar otra lista con palabras traducidas.

¿como implementar estas reglas?,....son consciente que la gramatica de una lengua es extensa, pero mi idea es aplicar las mas usuales. Por eso pense en un compilador, y encontrar su codigo fuente en java para que me sirva de guia.

Gracias de antemano, por los comentarios.
Si tuvieran algun codigo o algun manual a la mano, me lo mandan porfa, lo agradeceria mas.

Salu2.

jpaler

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Traductor-compilador
« Respuesta #5 en: Martes 3 de Julio de 2007, 00:08 »
0
forero, tu disculpa en q insista... pero creo q lo mejor es q te dediques a leer
libros dedicados a compiladores, ya q es hay donde vas a encontrar el codigo
util q necesitas... xq estoy seguro q si alguien te da un codigo de un compilador,
NO VAS A ENTENDER NI PAPA... pero si en cambio te lees un libro, este te ira
guiando paso a paso y etapa tras etapa y te ira explicando de donde van
saliendo las cosas... y es hay donde verdaderamente vas a entender como
crear un compilador...

es mas... podrias empezar x crear uno q solo traduzca varias frasecitas y ya... y
luego incrementas las etapas (lexica, sintactica, semantica).

Pilas a leer...
Salu2 !!!