viernes, 1 de febrero de 2013
No
hay mucha informacion sobre como hacer este tipo de conexion de forma rapida y
que funcione, si bien para java es muy sencillo y funciona a la primera para
poder realizar la conexion con el emulador y la aplicacion de android lleva
algunas variantes.
1. Lo primero es obtener el ojdbc14.jar ya sea el que se encuentra en la carpeta donde se encuentra instalado oracle en la ubicacion $ORACLE_HOME/jdbc/lib/ojdbc14.jar donde
oracle_home se encuentra generalmente
en /usr/lib/oracle..........
Dependiendo de la version asi sera el ojdbc que se necesite, este la version 5, la 6 dependiendo de la base de datos que tengan instalada por lo que lo primero es probar con estas librerias, sino funciona se pueden descargar desde la pagina de oracle:
Por
ejemplo yo use la version 10g xe de la base de datos y el ojdbc14 pero no me
funciono ninguno de los de la pagina ni los que tenia en la carpeta de oracle,
si llegan a tener el mismo problema pues la unica solucion que encontre es
utilizar el ojdbc que trae la version oracle mobile server, luego de
descargarla, la instale y busque el driver ojdbc14.jar y ese fue el que utilice
y me funciono.
2.
Una vez obtenido el bendito ojdbc.jar lo agregamos al proyecto como libreria
(agregarlo a la carpeta lib del proyecto android y luego agregar el jar al
proyecto).
Antes
de empezar con la parte de programar debemos agregar esta linea al manifest del
proyecto justo despues de el cierre del tag application
<uses-permission
android:name="android.permission.INTERNET" />
Porque
el no dar este permiso causa error al querer conectarse con una base de datos y
es de los errores mas comunes que se dan pero que son dificiles de identificar.
3. Ahora lo que necesitamos es una clase para conectarnos a la
base de datos, encontre una clase generica en Clase
Generica la cual me sirvio de base para la conexion y que es la que se
puede instancear desde cualquier activity de android, El codigo de la clase es:
4. Ya que tenemos la clase para conectarnos necesitamos un activity con el cual llamaremos a la clase generica y ya nos comunicaremos con la base de datos.
NOTA: Uno de los errores mas comunes es
colocar en el parametro ip, la ip de la maquina o 'localhost'
en este caso se usa la ip 10.0.2.2 que
funciona con el emulador.
Para mas informacion ir a: http://developer.android.com/tools/devices/emulator.html#networkaddresses
Con este activity al dar clic en el
boton nos mostrara que se ha conectado con exito a la base de datos.
y luego solo se llama desde el activity desde algun componente o al cargar el mismo activity, dependiendo de como lo necesiten o quieran pasandole los parametros asignados desde algun edittext u otro componente:
Espero sea de ayuda este pequeno post
sobre la conexion de android con oracle y sirva como base para realizar algun
proyecto a partir de tener la conexion lista.
En el siguiente link pueden descargar
el ejemplo realizado en android adt bundle version para linux.
APP
domingo, 13 de enero de 2013
Se puede encontrar información sobre la instalación de oracle pero muchas veces da problemas y lleva tiempo estar buscando una solución, a continuación se explicara de forma breve la instalación de oracle-xe 10.2.0.1.1.1_i386 en una maquina con ubuntu 12.10 32 bits y posteriormente en una con ubuntu 12.10 de 64 bits la cual requiere unas modificaciones.
1. Lo primero es descargar la version 10 de oracle-xe pero si entran a la pagina oficial verán que ya no esta disponible solamente la version 11g y esta solamente en 64 bits para linux por lo que buscando en la web me encontré con el siguiente enlace en el cual descargue la versión para trabajar.
2. Una vez descargado instalamas el gestor de paquetes synaptic desde el centro de software de ubuntu ya que así sera mas fácil instalar las librerías que necesitamos.
3. Instalado el gestor de paquetes lo ejecutamos y buscamos "libao" y marcamos las librerías
libao-dev y libao-dbg, aplicamos los cambios y cerramos el gestor.
4. Desde la terminal ir a la carpeta en donde tenemos el .deb de oracle y tecleamos la siguiente linea sudo dpkg -i oracle-xe_10.2.0.1-1.1_i386.deb donde solamente cambia el nombre del .deb
Con esto se ha instalado oracle 10 en ubuntu de 32 bits o en cualquier linux. Pero y si tengo una maquina de 64 bits y quiero instalar la version 10 que pasa?
Bueno hay que hacer unas modificaciones a partir del paso 4 las cuales son:
Nos quedamos en el paso 3 donde instalamos las librerias necesarias.
4. Instaladas las librerías de libao instalamos:
sudo apt-get install libc6-i386
y también :
sudo apt-get install bc
5. Ahora descargamos el .deb de este enlace:
6. Esto que estamos instalando son las dependencias que oracle necesita para instalarse correctamente, descargado el .deb de libao nos vamos a la carpeta donde los descargamos y ejecutamos:
7. Como se puede ver en la ejecución anterior se forzó la arquitectura ya que el paquete a instalar es de 32 bits y vamos a ejecutarlo sobre una plataforma de 64 por lo que debemos hacer lo mismo con la base de datos en este caso:
Parecerá que todo va bien pero es posible que nos muestre errores de dependencias algo parecido a esto:
cabe aclarar que lo común es que tire solamente la del error que falta la del dependencia libc6 aunque no tendría porque hemos instalado todo en el paso anterior pero para esto lo que podemos hacer es:
7.1 Extraer el .deb
7.2 Ir a la carpeta del paquete extraído y buscar en la carpeta DEBIAN el archivo llamado control, lo abrimos y tenemos los siguiente
aqui debemos borrar lo que nos da error en la linea donde dice "depends" ya sea libc6 o libao pero para ahorrar molestias yo borre toda la linea dejando al final esto:
8. Por ultimo ahora con el nuevo .deb tecleamos
Luego nuevamente la linea "/etc/init.d/oracle-xe" y nos pide puertos y password
y con esto ya podemos acceder a la pagina principal e ingresar al sistemas con el usuario SYSTEM y el password que hemos ingresado en la configuración todo esto con el icono que nos lleva a la pagina principal de oracle
y ya dentro del sistema para poder trabajar con la base de datos.
Bueno esto es un resumen con el que trato de explicar lo mas claro posible para que no sea tan tedioso estar buscando error por error o por partes la información para hacer una instalación cuando se tiene poco tiempo y siempre agradeciendo a los blogs y paginas de donde me base para hacer las instalaciones
http://justalittlebrain.wordpress.com/2008/05/12/how-to-install-oracle-xe-in-ubuntu-64-bit/
http://ubuntuforums.org/archive/index.php/t-1759118.html
http://www.devshed.com/c/a/Oracle/Install-Oracle-Database-10g-Express-in-Ubuntu/
32 bits
2. Una vez descargado instalamas el gestor de paquetes synaptic desde el centro de software de ubuntu ya que así sera mas fácil instalar las librerías que necesitamos.
3. Instalado el gestor de paquetes lo ejecutamos y buscamos "libao" y marcamos las librerías
libao-dev y libao-dbg, aplicamos los cambios y cerramos el gestor.
4. Desde la terminal ir a la carpeta en donde tenemos el .deb de oracle y tecleamos la siguiente linea sudo dpkg -i oracle-xe_10.2.0.1-1.1_i386.deb donde solamente cambia el nombre del .deb
sudo dpkg -i <nombre del archivo>.deb
Si no nos marca ningún error nos pedirá que ingresemos "/etc/init.d/oracle-xe" para configurar oracle, tecleamos esa linea y nos pide especificar que puertos a usar y el password, los puertos pues si no estan ocupados por algun servidor dejamos los que tiene por default que son el 8080 y como listener el 1521, por ultimo solamente ingresamos el password y listo. nos debe de mostrar la direccion a la cual debemos acceder para ingresar al sistema o podemos hacerlo desde el icono de oracle que nos lleva a la pagina principal.
Con esto se ha instalado oracle 10 en ubuntu de 32 bits o en cualquier linux. Pero y si tengo una maquina de 64 bits y quiero instalar la version 10 que pasa?
Bueno hay que hacer unas modificaciones a partir del paso 4 las cuales son:
64 Bits
4. Instaladas las librerías de libao instalamos:
sudo apt-get install libc6-i386
y también :
sudo apt-get install bc
5. Ahora descargamos el .deb de este enlace:
6. Esto que estamos instalando son las dependencias que oracle necesita para instalarse correctamente, descargado el .deb de libao nos vamos a la carpeta donde los descargamos y ejecutamos:
dpkg -i --force-architecture libaio_0.3.104-1_i386.deb
7. Como se puede ver en la ejecución anterior se forzó la arquitectura ya que el paquete a instalar es de 32 bits y vamos a ejecutarlo sobre una plataforma de 64 por lo que debemos hacer lo mismo con la base de datos en este caso:
dpkg -i --force-architecture oracle-xe_10.2.0.1-1.1_i386.deb
Parecerá que todo va bien pero es posible que nos muestre errores de dependencias algo parecido a esto:
cabe aclarar que lo común es que tire solamente la del error que falta la del dependencia libc6 aunque no tendría porque hemos instalado todo en el paso anterior pero para esto lo que podemos hacer es:
7.1 Extraer el .deb
7.2 Ir a la carpeta del paquete extraído y buscar en la carpeta DEBIAN el archivo llamado control, lo abrimos y tenemos los siguiente
aqui debemos borrar lo que nos da error en la linea donde dice "depends" ya sea libc6 o libao pero para ahorrar molestias yo borre toda la linea dejando al final esto:
Guardamos.
7.3 debemos empaquetar todo nuevamente en un .deb por lo que hacemos un:
dpkg-deb --build oracle-xe_10.2.0.1-1.1_i386
o sino con
dpkg --build <nombre_archivo>
todo esto desde la terminal y ubicados en la carpeta donde tenemos nuestra carpeta en la que extrajimos el .deb de oracle por ejemplo en la imagen se ve que yo tengo esta carpeta en el escritorio por lo que en cd Escritorio ejecuto la linea anterior.
Esto nos creara un nuevo .deb en el cual ya no nos pedirá las dependencias ya que hemos eliminado la linea del archivo control. y con este sera con el que instalaremos:
dpkg -i --force-architecture oracle-xe_10.2.0.1-1.1_i386.deb
y la instalación ira normalLuego nuevamente la linea "/etc/init.d/oracle-xe" y nos pide puertos y password
y con esto ya podemos acceder a la pagina principal e ingresar al sistemas con el usuario SYSTEM y el password que hemos ingresado en la configuración todo esto con el icono que nos lleva a la pagina principal de oracle
y ya dentro del sistema para poder trabajar con la base de datos.
Bueno esto es un resumen con el que trato de explicar lo mas claro posible para que no sea tan tedioso estar buscando error por error o por partes la información para hacer una instalación cuando se tiene poco tiempo y siempre agradeciendo a los blogs y paginas de donde me base para hacer las instalaciones
http://justalittlebrain.wordpress.com/2008/05/12/how-to-install-oracle-xe-in-ubuntu-64-bit/
http://ubuntuforums.org/archive/index.php/t-1759118.html
http://www.devshed.com/c/a/Oracle/Install-Oracle-Database-10g-Express-in-Ubuntu/
lunes, 17 de diciembre de 2012
Después de tanto tiempo por fin el sdk de android se puede descargar directamente junto con eclipse y ya viene listo para trabajar.
La forma convencional de instalar el sdk para poder programar en android era un poco tediosa y muchas veces daba problemas pero ahora ya tenemos la posibilidad de descargar todo lo necesario junto en un archivo comprimido y que al descomprimirlo de una vez es posible empezar a desarrollar para android.
Esta versión es llamada ADT Bundle disponible para windows y linux, en mi caso utilice la versión para linux, entonces nos dirigimos a la pagina oficial de android sdk http://developer.android.com/sdk/index.html y descargamos el archivo 320 mb aproximadamente pero que valen la pena sabiendo que una vez descargado, descomprimimos pegamos las carpetas que trae (una llamada eclipse y la otra sdk) en la ubicación deseada y luego en la carpeta de eclipse ejecutamos el mismo y ya viene el entorno configurado para iniciar a programar aplicaciones para android, de forma rápida y sencilla.
La forma convencional de instalar el sdk para poder programar en android era un poco tediosa y muchas veces daba problemas pero ahora ya tenemos la posibilidad de descargar todo lo necesario junto en un archivo comprimido y que al descomprimirlo de una vez es posible empezar a desarrollar para android.
Esta versión es llamada ADT Bundle disponible para windows y linux, en mi caso utilice la versión para linux, entonces nos dirigimos a la pagina oficial de android sdk http://developer.android.com/sdk/index.html y descargamos el archivo 320 mb aproximadamente pero que valen la pena sabiendo que una vez descargado, descomprimimos pegamos las carpetas que trae (una llamada eclipse y la otra sdk) en la ubicación deseada y luego en la carpeta de eclipse ejecutamos el mismo y ya viene el entorno configurado para iniciar a programar aplicaciones para android, de forma rápida y sencilla.
domingo, 18 de noviembre de 2012
On 12:42 by Unknown No comments
La mayoria de las veces la instalación del android sdk en linux da problemas otras veces se puede instalar de primera siguiendo algun tutorial pero que pasa cuando da problema después de haber seguido varios tutoriales y no encontrarle solución? por esta razón decido hacer este post, después de haber instalado como 4 veces el sdk en diferentes versiones de linux pues dos funcionaron a la primera y la ultima estuvo tediosa y aburrida.
Para instalar el SDK se puede seguir cualquier tutorial en Internet y lo mas recomendable como dicen es descargar eclipse desde la pagina y no instalarlo desde los repositorios , luego de esto descargamos el sdk, descomprimimos, etc. Pueden ir al link Instalar SKD para ver que se debe hacer antes de añadir el sdk a eclipse porque hasta este momento todo bien, es decir hasta la instalación de android y descarga de las librerias y complementos necesarios del sdk no da problemas y si los da es por malas configuraciones del sistema operativo.
Una vez teniendo todo descargado necesitamos indicarle a eclipse que vamos a anadir el SDK para poder realizar aplicaciones para android. En eclipse nos vamos a help --> install new software y clic en el boton "Add" y colocamos los datos que nos pide donde "name" puede ser cualquier nombre que queramos y en
location debe ir:
https://dl-ssl.google.com/android/eclipse/ o sino
http://dl-ssl.google.com/android/eclipse/.
Entonces en esta parte es donde da el error:
Cannot complete the install because one or more required items could not be found.
Software being installed: Android Development Tools 0.9.1.v200905011822-1621 ..... etc....
Solución 1: Como dice en el link, puede ser que se este usando la version de eclipse de los repositorios y por eso no se pueda instalar. PERO yo descargue desde la pagina oficial eclipse y me dio el error. Puede que algunos les funcione pero a otros no.
Solución 2: Instalar eclipse desde consola: sudo apt-get install eclipse que en muchos casos puede funcionar pero yo probé y el mismo error nuevamente. Entonces por ahí leí que en windows daba el mismo error pero al ejecutar eclipse como administrador si dejaba descargar los paquetes para el ADT (android development tools). entonces una forma sencilla de hacerlo es en consola nos logueamos como root
sudo -s
y escribimos nautilus (esto en ubuntu) sino en mi caso que ahora uso kubuntu tuve que instalar nautilus.
Entonces seguimos, luego de escribir nautilus logueados como root nos abre home como root y ya podemos modificar cualquier carpeta o archivo del sistema nos vamos a eclipse, lo ejecutamos, volvemos a agregar el nuevo software y FUNCIONA!! ahora si empieza la descarga de los paquetes y complementos y como paso final solo queda indicar a eclipse donde se encuentra el sdk (ver link mencionado) y listo ya podemos trabajar aplicaciones android en eclipse y ya sin necesidad de ejecutar eclipse como root, sino que normalmente.
Para instalar el SDK se puede seguir cualquier tutorial en Internet y lo mas recomendable como dicen es descargar eclipse desde la pagina y no instalarlo desde los repositorios , luego de esto descargamos el sdk, descomprimimos, etc. Pueden ir al link Instalar SKD para ver que se debe hacer antes de añadir el sdk a eclipse porque hasta este momento todo bien, es decir hasta la instalación de android y descarga de las librerias y complementos necesarios del sdk no da problemas y si los da es por malas configuraciones del sistema operativo.
Una vez teniendo todo descargado necesitamos indicarle a eclipse que vamos a anadir el SDK para poder realizar aplicaciones para android. En eclipse nos vamos a help --> install new software y clic en el boton "Add" y colocamos los datos que nos pide donde "name" puede ser cualquier nombre que queramos y en
location debe ir:
https://dl-ssl.google.com/android/eclipse/ o sino
http://dl-ssl.google.com/android/eclipse/.
Entonces en esta parte es donde da el error:
Cannot complete the install because one or more required items could not be found.
Software being installed: Android Development Tools 0.9.1.v200905011822-1621 ..... etc....
Solución 1: Como dice en el link, puede ser que se este usando la version de eclipse de los repositorios y por eso no se pueda instalar. PERO yo descargue desde la pagina oficial eclipse y me dio el error. Puede que algunos les funcione pero a otros no.
Solución 2: Instalar eclipse desde consola: sudo apt-get install eclipse que en muchos casos puede funcionar pero yo probé y el mismo error nuevamente. Entonces por ahí leí que en windows daba el mismo error pero al ejecutar eclipse como administrador si dejaba descargar los paquetes para el ADT (android development tools). entonces una forma sencilla de hacerlo es en consola nos logueamos como root
sudo -s
y escribimos nautilus (esto en ubuntu) sino en mi caso que ahora uso kubuntu tuve que instalar nautilus.
Entonces seguimos, luego de escribir nautilus logueados como root nos abre home como root y ya podemos modificar cualquier carpeta o archivo del sistema nos vamos a eclipse, lo ejecutamos, volvemos a agregar el nuevo software y FUNCIONA!! ahora si empieza la descarga de los paquetes y complementos y como paso final solo queda indicar a eclipse donde se encuentra el sdk (ver link mencionado) y listo ya podemos trabajar aplicaciones android en eclipse y ya sin necesidad de ejecutar eclipse como root, sino que normalmente.
sábado, 20 de octubre de 2012
El modelado 3D es un tema talvez un poco alejado en cuanto a ingenieria en ciencias y sistemas se refiere pero hay que conocer lo basico para saber sobre que va todo esto de los modelos, y juegos lo cual es lo mas interesante de todo este tema, la creacion de videojuegos con el uso de herramientas tales como blender, maya, unity, etc. y en los juegos ya se hace uso de la programacion.
Como parte de un curso en la universidad se nos pide elegir un personaje y hacer un modelado del mismo asi como una pequena animacion con el personaje elegido.
A continuacion les dejo un video (no muy bueno) sobre un modelado en blender que explica algunas cuestiones basicas sobre como modelar.
Y en espanol el canal de perublend3d es de los mejores que hay para aprender a utilizar blender.
Como parte de un curso en la universidad se nos pide elegir un personaje y hacer un modelado del mismo asi como una pequena animacion con el personaje elegido.
A continuacion les dejo un video (no muy bueno) sobre un modelado en blender que explica algunas cuestiones basicas sobre como modelar.
La animacion realizada ya con el modelo completado y modificado una cantidad enorme de veces para que quedara lo mejor posible es:
Videos muy sencillos pero que si se dedican al modelado poco a poco iran mejorando con la experiecia, lo que requiere el modelado mas que todo es paciencia para ir dando la mejor forma posible al personaje que estemos modelando y asi tener mejor calidad de detalle.
A continuacion le dejo los enlaces de los videotutoriales que realmente son de ayuda para empezar a modelar y que tienen la guia para que podamos empezar de buena forma, lo demas ya es un poco de creatividad y como lo mencione anteriormente mucha paciencia.
El primero de mas de 20 tutoriales relacionados con el uso de blender y sus diferentes tecnicas de modelado.
Algunas sugerencias para trabajar de forma mas fácil con cup o la discusión de algunos errores se trataran a continuación:
1. Un consejo útil para distinguir a la hora de trabajar en la gramática es tener todos los no terminales con mayúsculas y los terminales con minúsculas o viceversa para tener una fácil distinción entre ambos.
2. Podemos tomar el valor de un no terminal y guardarla en una variable colocando dos puntos y luego la variable en donde almacenaremos el valor. Ejemplo:
PORTADA ::= abretag portada PROPORTADA:xxx cierretag PARRAFO
se guarda en la variable xxx el valor de lo que tiene PROPORTADA.
3. "RESULT" es una palabra reservada de cup que lo que hace es ir almacenando valores en ella, es como un string que va concatenado cadenas y puede ser bastante util si se realiza un compilador que haga la tarea de traductor. Por ejemplo en un proyecto había que leer un lenguaje html pero en español y con palabras propias, es decir un lenguaje inventado y eso pasarlo a html 5 y la solucion fue utilizar RESULT para ir traduciendo y formar una gran cadena con código html.
Ej:
lo que hace la produccion anterior es que la variable xxx toma el valor de PROPORTADA y luego ese valor se imprime y se le asigna a la variable RESULT junto con los demas parametros html5 que se necesitan.
como se puede el no terminal PROPORTADA trae el valor de FONDO y el no terminal FONDO toma su valor de:
por lo tanto en no terminal PROPORTADA utilizado en la primera produccion mostrada tendria un valor de:
1. Un consejo útil para distinguir a la hora de trabajar en la gramática es tener todos los no terminales con mayúsculas y los terminales con minúsculas o viceversa para tener una fácil distinción entre ambos.
2. Podemos tomar el valor de un no terminal y guardarla en una variable colocando dos puntos y luego la variable en donde almacenaremos el valor. Ejemplo:
PORTADA ::= abretag portada PROPORTADA:xxx cierretag PARRAFO
se guarda en la variable xxx el valor de lo que tiene PROPORTADA.
3. "RESULT" es una palabra reservada de cup que lo que hace es ir almacenando valores en ella, es como un string que va concatenado cadenas y puede ser bastante util si se realiza un compilador que haga la tarea de traductor. Por ejemplo en un proyecto había que leer un lenguaje html pero en español y con palabras propias, es decir un lenguaje inventado y eso pasarlo a html 5 y la solucion fue utilizar RESULT para ir traduciendo y formar una gran cadena con código html.
Ej:
lo que hace la produccion anterior es que la variable xxx toma el valor de PROPORTADA y luego ese valor se imprime y se le asigna a la variable RESULT junto con los demas parametros html5 que se necesitan.
como se puede el no terminal PROPORTADA trae el valor de FONDO y el no terminal FONDO toma su valor de:
por lo tanto en no terminal PROPORTADA utilizado en la primera produccion mostrada tendria un valor de:
" background-color: blue "
y el result mostrado de la primera produccion seria:
<body style="background-color: blue ">
y asi sucesivamente se puede ir creando un gran string que tenga como resultado lo que hemos compilado y todo almacenado en la variable RESULT y tomando lo valores ascendentemente como se vio en el ejemplo anterior.
4. La mejor herramienta para trabajar con jflex y Cup es definitivamente notepad++ un gran editor de texto bastante sencillo y que puede ser util para trabajar con estas herramientas con las cuales necesitamos un editor de texto y notepad o wordpad son demasiado sencillos.
5. Errores comunes:
5.1 syntax error: Lo mas común es que se nos olvide colocar punto y coma al final de una producción.
5.2 El famoso y dolor de cabeza "Shirt/reduce conflict, que nos muestra algo así:
Este error sucede cuando tenemos producciones que van a terminar a los mismos estados es decir van a derivar a los mismos terminales siguiendo una producción diferente pero al reducir siempre dan lo mismo; son bastantes difíciles de encontrar porque revisamos las producciones vemos que no son iguales y nos preguntamos que pasa? La solución es analizar o reducir manualmente las producciones en la que nos tira los errores y ver como quedan ya reducidas ahí nos daremos cuenta del error y habrá que cambiar alguna de las dos producciones para que se pueda tomar una única ruta para la reducción.
5.3 mas que ser errores son los "warning' que nos muestra cuando declaramos no terminales y nunca los usamos en las producciones, son indefensos pero si tenemos otro tipo de errores ya son molestos verlos en consola por lo que solamente debemos quitar los no terminales que no usamos y listo.
Estos son los errores mas comunes que se dan en cup, claro que hay mas pero estos son con los que comúnmente me enfrente.
Por ultimo hay una presentación muy buena de la cual yo saque un post sobre utilizar una clase java para compilar archivos de jflex, en la presentación se muestra también como utilizar una clase para compilar desde un ide archivos de cup y esta muy bien detallada, en enlace es:
viernes, 19 de octubre de 2012
CUP es una herramienta utilizada para
la generación de analizadores sintácticos para java y una de las mas usadas y
comunes.
Para conocer a fondo que es cup pueden
ir a CUP.
A continuación voy a explicar la
estructura de un archivo de cup así como su sintaxis, hay una buena cantidad de
manuales en internet acerca de esto pero el objetivo del blog es hacerlo de la
manera mas resumida y entendible posible ya que muchas veces (casi siempre)
estamos escasos de tiempo y no podemos ponernos a leer un manual de 20 o más
paginas.
Archivo de entrada para Cup:
Consta de 5 partes las cuales son:
1- definición de paquetes y librerías
2- Código de usuario
3- Declaración de terminales y no
terminales
4- Declaración de precedencia
5- Definición de símbolo inicial y
reglas de producción
Se podría decir que esa es la
estructura general y lleva ese orden a excepción del código de usuario el cual
puede ser usado entre las producciones.
1-
La definición de paquetes y librerías se
refiere a los "package" e "imports" en java, los cuales serán
útiles cuando se agreguen los archivos generados por cup a nuestro proyecto en
java.
2-
Código de usuario: Lo utilizamos para escribir código java dentro
de el parser, puede ser action code o parser code.
La sintaxis que utiliza es:
parser code {: //código java :} o
action code {://código java:}
3-
Terminales y No terminales: La declaración de
los símbolos terminales de la gramática y de los no terminales.
4-
La declaración de precedencia se realiza si
es necesaria, algunas veces no es necesaria pero otras si.
5-
En la ultima parte se inicia con el símbolo inicial
de la gramática y se escribe toda la gramática con notación bnf.
Al final de cada producción podemos incluir código java
si queremos que se ejecute una acción al llegar a dicha producción, por
ejemplo:
BEGIN ::=
COMPLETO {:System.out.println(“Se llego a la produccion inicial”);:};
Aquí se tiene la producción
BEGIN::= COMPLETO y lo que se hará es imprimir un string cuando se llegue a tal
producción, el código se coloca dentro llaves así ------> {://código aquí:}.
A continuación un
pequeño ejemplo de un archivo de cup el cual contiene la sintaxis comentada y
muestra de forma mas clara como se utiliza.
Nota: la sintaxis
genera un parser para reconocer sentencias if anidadas.
miércoles, 17 de octubre de 2012
On 15:25 by Unknown in Compiladores No comments
Cup es una herramienta utilizada para generar analizadores sintácticos en java, bastante usada y bastante útil para trabajar. Para conocer mas acerca de cup pueden ir a Mas acerca de CUP.
Para poder usar cup primero debemos descargarlo desde: Descargar CUP.
Una vez descargado, descomprimimos y la carpeta java_cup la colocamos en alguna carpeta
facil de acceder en el disco local para mayor comodidad ejemplo :
C:\compiladores\java_cup.
Ya que tenemos esto ahora vamos a generar un parser a partir de una gramática lo que hacemos es colocar el archivo con la sintaxis de cup dentro de la carpeta "compiladores" y abrimos el cmd, nos ubicamos en la carpeta compiladores
Ahora escribimos:
java java_cup.Main <archivo_trabajar>.<extension>
y vemos que nos muestra los resultados en el cmd y nos genera dos archivos el parser.java y el sym.java donde el primero contiene una clase de java con todo el código del analizador sintáctico y la otra clase contiene los tokens con un identificador entero unico asignado a cada uno.
De esta forma ya podemos trabajar con cup y en la siguiente entrada se explicara sobre la sintaxis y estructura de CUP.
Para poder usar cup primero debemos descargarlo desde: Descargar CUP.
Una vez descargado, descomprimimos y la carpeta java_cup la colocamos en alguna carpeta
facil de acceder en el disco local para mayor comodidad ejemplo :
C:\compiladores\java_cup.
Ya que tenemos esto ahora vamos a generar un parser a partir de una gramática lo que hacemos es colocar el archivo con la sintaxis de cup dentro de la carpeta "compiladores" y abrimos el cmd, nos ubicamos en la carpeta compiladores
Ahora escribimos:
java java_cup.Main <archivo_trabajar>.<extension>
y vemos que nos muestra los resultados en el cmd y nos genera dos archivos el parser.java y el sym.java donde el primero contiene una clase de java con todo el código del analizador sintáctico y la otra clase contiene los tokens con un identificador entero unico asignado a cada uno.
De esta forma ya podemos trabajar con cup y en la siguiente entrada se explicara sobre la sintaxis y estructura de CUP.
Suscribirse a:
Entradas (Atom)
Search
Categories
android
(2)
Animacion 3D
(3)
aspx
(4)
bases de datos
(7)
Blender
(3)
C
(1)
C#
(4)
cisco
(1)
Compiladores
(11)
conceptos
(1)
cup
(2)
DB2
(2)
gns3
(5)
Irony
(3)
Java
(3)
kvm
(1)
linux
(5)
manual express latex
(1)
MongoDB
(1)
ocio
(3)
oracle
(3)
poo
(1)
Postgresql
(4)
programacion
(9)
Redes
(7)
resumen
(1)
soluciones
(1)
SQL
(16)
sqlserver
(1)
teoría
(5)
Ubuntu
(9)
Uwintu
(1)
VB
(1)
windows
(2)
Statistics
Con la tecnología de Blogger.















