reporte final age200 integradover2
TRANSCRIPT
-
8/16/2019 Reporte Final Age200 IntegradoVer2
1/12
Modificación de IDE de Tesis:”Compilador y Máquina
Virtual para un Lenguae de !ociedades de "gentes
#eacti$os”
Rosa María Gutiérrez1, Juan Pablo García1, Patricia Aparicio 1,Roberto Núñez1
1 Maestría en Tecnologías de o!puto Aplicado, "ni#ersidad de Tecnol$gica de la Mi%teca,
arretera a Acatli!a &!' (') *ua+uapan de e$n, -a%', Mé%ico 'P' ./000
#esumen% l presente traba+o tiene co!o ob+eti#o realizar la !odi2icaciones e incre!entar
2uncionalidad al 34 3nAge, co!o reno#ar la inter2az con Ja#a5%, agregar la opci$n de !ulti6
idio!as, así co!o lle#ar a cabo la si!ulaci$n #isualizada en el 34 a una si!ulaci$n real en un
robot'
&ala'ras Cla$e: 78ing, Ja#a5%, ego Mindstor!, e+os N9T, internacionalizaci$n'
1 Introducción
En las ultimas décadas se ha visto un gran uso de los agentes inteligentes en
diferentes áreas de la vida cotidiana. Un agente inteligente es capaz de percibir el
entorno que lo rodea utilizando sensores y comportarse de manera correcta con la
ayuda de actuadores. Una clasicación de los agentes inteligentes son los modelos
reactivos, estos no necesitan conocer el mundo en el que se desenvuelven.
El presente trabao tiene como obetivo realizar ciertas tareas de tal forma que el
compilador propuesto en !"# se pueda aplicar a la realidad.
2 Descripción del Problema
$o que se espera del presente proyecto es realizar un simulador con caracter%sticas
que se apeguen más a la realidad, las cuales se describen en los siguiente puntos.
$as modicaciones propuestas son&
1' Reno#ar inter2az de usuario usando Ja#a59' Actual!ente la inter2az esta
:ec:a usando Ja#a 78ing ; se pretende ca!biar Ja#a5% ;a
-
8/16/2019 Reporte Final Age200 IntegradoVer2
2/12
@' Generaci$n de c$digo ob+eto del lengua+e Age(000 a e+ecutable e+os? la
intenci$n es, a partir de la interpretaci$n del c$digo ob+eto generado por el
co!pilador Age(000, generar c$digo ob+eto del lengua+e e+os ? rear
arc:i#os de palabras cla#es para la traducci$n de la inter2az, ; lla!arlas desde un
!enú para
-
8/16/2019 Reporte Final Age200 IntegradoVer2
3/12
entendi$
-
8/16/2019 Reporte Final Age200 IntegradoVer2
4/12
(. 3e selecciona el botón +e,... el cual abre una nueva ventana y aparecentres opciones& Classic Eclipse messages class, Direct ResoucesBundel usage,
ResourceBundle in feld. 'ara este caso se seleccionó la primera opción.
4. 3e selecciona el botón -nable all, para seleccionar todos los elementos
que se quieren traducir.
5. En la pesta6a +-#ID-.messa%es se puede ver la lista de elementos, la
primera columna son las claves o /e$s que se necesitan para la traducción.
'ara agregar un nuevo idioma se selecciona +e, locale... que nos permitirá
escoger el idioma y el 'a%s, en este caso se selecciona el idioma inglés y el
pa%s Estados Unidos. $a ventaa de esto es que se pueden elegir varios
idiomas.
7. Una vez elegido el idioma, se genera un lista, donde la primera columna
se encuentran las claves para la traducción, la segunda columna es el idioma
por default 8para este proyecto es el espa6ol9 y la tercera columna es la
traducción al idioma deseado. 3e debe dear claro que Eclipse genera los
archivos automáticamente de esta forma, pero se debe hacer la traducción
palabra por palabra en la tercera columna.
:. El proceso anterior genera ( archivos, uno que contiene las palabras
claves en el lenguae por default ;messages.properties”, el segundo
;messages_en_US.properties< que contiene las palabras claves con su
traducción y el tercero messages.java que es la clase que manda a llamar los
archivos .properties.
=. Una vez que se tienen los archivos .properties se genera un men> ?dioma
en la interfaz gráca para las opciones espa6ol e inglés de la interfaz. $as
funciones que implementa el men> están en ?@EA'anatalla.ava.
B. El men> de traducir a inglés y a espa6ol utilizan la función
cambiar?dioma89 descrita en ?@EA'antalla.ava, donde se llama la palabra
clave para cada botón de la interfaz gráca.
". Una vez realizado estas tareas se ha logrado la internacionalización de la
interfaz gráca.
Para la traducci$n del co!pilador se cre$ una 2unci$n
-
8/16/2019 Reporte Final Age200 IntegradoVer2
5/12
compilador, en otro caso marcara error. $as palabras que no aparecen en la lista como3EC3D y motor es porque su traducción es la misma.
&ala'ra
i d i o m a p o r
default
&ala'ra
traducida
&ala'ra idioma
por default
&ala'ra
traducida
accion action a#anza !o#e
conducta conduct entero int
entonces t:en 2in end
2inAccion endAction 2inAcciones endActions
2inonducta endonduct 2ino!porta!iento ende:a#ior
deci!al 2loat gira4er turnRig:t
gira3z< turne2t :acer do
inicio star !ientras 8:ile
otro else repite repeat
retrocede bacC solicita solicit
si i2 luz lig:t
te!peratura te!perature #eces ti!es
ca!inar 8alC agente1 agent1
agente( agent( e#itarHobstaculos a#oidHobstacle
sociedad societ; agente agent
2inAgente endAgent sensorH2rente sensorH2ront
2in7ociedad end7ociet; co!porta!iento be:a#ior
tactil tactile sensorHluz sensorHlig:t
darHunHpaso stepH2or8ard gira turn
'or >ltimo se hace la traducción de cada mensae de error o 1arnings que genera lainterfaz debido a un codigo erroneo. Esto se hace de forma manual, utilizando unacondicional 8if9, si el idioma esta en espa6ol los errores o 1arnings se muestran enespa6ol, si el idioma esta en inglés estos se muestran en inglés.
-
8/16/2019 Reporte Final Age200 IntegradoVer2
6/12
4.3 0eneración de códi%o objeto del len%uaje a ejecutable en ejos
7e obtu#o el so2t8are de e+os de la pgina o2icial' a instalaci$n se realiz$ en
e
-
8/16/2019 Reporte Final Age200 IntegradoVer2
7/12
después de resol#er algunos proble!as de los cuales #ale la pena !encionar ;compilar en $eos< ubicado en el men>
compilar que al presionarse inicializa la traducción del código obeto del *ge+,
también cuenta con un botón en la barra de herramientas para este mismo n.
F 'ara que las opciones de compilar en $eos se activen, es necesario que se compile
primero el código fuente del *ge+, esto para que no haya problemas de código
fuente antiguo u otros posibles problemas de lectura, además como el usuario va a
-
8/16/2019 Reporte Final Age200 IntegradoVer2
8/12
compilar su programa con el compilador *ge+, se tendrá el código correcto en elcódigo obeto a leer.
F Huando se traduce, el programa genera una carpeta por cada agente denido con el
nombre ; *genteCmero de agente. En cada carpeta se genera el
codigo fuente . java que corresponde al agente, es decir este archivo contiene todo el
comportamiento del agente C, y también se genera el archivo .nJ8uno para cada agente9,
que contiene los archivos obeto .class correspondientes.
F El archivo .nxj es el que debe cargarse al $ego -indstorm desde el s%mbolo del
sistema8como se indico anteriormente9, para lo cual se debe tener instalado el $eos.
Para lograr la traducci$n al c$digo ob+eto para ego Mindstor!, en el c$digo 2uente
solo se e#alúa? para el sensor tctil es 2also=No est presionado> ; #erdadero=est
presionado> ; sensor luz es por intensidad ' No se utiliza el sensor te!peratura por
-
8/16/2019 Reporte Final Age200 IntegradoVer2
9/12
2uncional del 34
-
8/16/2019 Reporte Final Age200 IntegradoVer2
10/12
7e logr$ el prop$sito de lle#ar la si!ulaci$n #isualizada en 3nAge a una si!ulaci$n
2ísica en ego Mindstor!, se si!ula cada uno de los agentes por separado' 4entro del
lengua+e Age(000 se encuentran de2inidos @ sensores, tctil, luz ; te!peratura, de los
cuales el sensor de te!peratura no se pudieron probar por
-
8/16/2019 Reporte Final Age200 IntegradoVer2
11/12
?QProgra! 5ilesQJa#aQ+dC1'B'0H.0QbinL ar 3c$fm
?Q"serQno!"suarioQ4esCtopQe+ecutable'+ar
?Q"serQno!"suarioQ4eCstopQ34QMTA63N5QMAN357T'M5 3C
?Q"serQno!"suarioQ4esCtopQ34Q %
on esto , desde un inicio,
el 4r' arlos Alberto 5ernndez sugiri$ utilizar algún controlador de Oersiones para
a#anzar en con+unto ; cu!plir en tie!po con la entrega, situaci$n
-
8/16/2019 Reporte Final Age200 IntegradoVer2
12/12
@' 4ea ,,*ecCler G', Pereda J' et al' Ja#a59 B 3ntroduction b; %a!ple' "7A'Apress
(01D :ttps?docs'oracle'co!+a#a2%(s8ing+2%pub6s8ing':t!' 5ec:a de consulta? . de
nero (10.'
D' Anon' (01)' -racle En lineaF A#ailable at? :ttp?docs'oracle'co!+a#aseB+a#ase6
clienttec:nologies':t!
)' clipse docu!entation6Arc:i#ed Release, clipse Juno' onsultado en 5ebrero
(01.'
:ttp?:elp'eclipse'org+unoinde%'+spStopicK(5org'eclipse'8b'doc'userK(5:t
K(52eaturesK(5internationalization':t!l'
https://docs.oracle.com/javafx/2/swing/jfxpub-swing.htmhttp://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.wb.doc.user%2Fhtml%2Ffeatures%2Finternationalization.htmlhttp://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.wb.doc.user%2Fhtml%2Ffeatures%2Finternationalization.htmlhttp://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.wb.doc.user%2Fhtml%2Ffeatures%2Finternationalization.htmlhttp://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.wb.doc.user%2Fhtml%2Ffeatures%2Finternationalization.htmlhttps://docs.oracle.com/javafx/2/swing/jfxpub-swing.htm