Archive for febrero, 2011


 

 La compañía Little iApps ha lanzado una aplicación para iPhone para ayudar a los católicos a practicar el sacramento de la confesión y ayudar a los fieles a volver a la fe

“Confesión: una aplicación Católica Romana” cuesta unos 1,40 euros (1,99 dólares) y conduce a los católicos por el sacramento de la confesión a través de lo que la compañía describe como un “examen de conciencia personalizado para cada usuario”.

“Nuestro deseo es invitar a los católicos a participar en la fe a través de la tecnología digital”, asegura uno de los miembros de la compañía Little iApps, Patrick Leinen, con sede en South Bend, (Indiana). “Teniendo presente el mensaje del Papa Benedicto XVI, nuestro objetivo con este proyecto es ofrecer una aplicación digital que sea un nuevo medio al servicio de la palabra”.

La compañía aseguró que el contenido de la aplicación fue desarrollado en colaboración con el reverendo de la Conferencia Estadounidense de Obispos Católicos, Thomas Weinandy y el pastor de la iglesia Reina de la Paz de Mishawaka (Indiana), Dan Scheidt.

La aplicación no está diseñada para sustituir el acto de la confesión sino para ayudar a los católicos a que acudan a un sacerdote para que les otrogue la absolución de los epcados. Little iApps, asegura el obispo de la Diócesis de Fort Wayne en Indiana, ya ha ayudado a un hombre en regresar a su fe después de 20 años. “Esperamos que muchos más se aproveche de esta nueva confesión de recursos”, añadió.

Para ampliar el tea pulsa aqy

En este link podras encontar mas informaciòn

Anuncios

 

La empresa TigerText Inc ha diseñado una aplicación homónima que ya ha sido descargada medio millón de veces en un año. Se trata de un sistema que podría venir muy bien a espías profesionales o a personajes como Tiger Woods, que fueron pillados in fraganti a través de sus mensajes de móvil (de hecho algunos atribuyen el nombre de la aplicación al famoso golfista).

La única condición es que ambos móviles que se comunican entre sí tengan instalada esta aplicación. En este caso los textos se convierten en autodestructivos: una vez enviado el mensaje, se borra en el celular del remitente; una vez leído por el destinatario, también se autodestruye en el celular de este. Desaparecen, además, de los datos de la compañía telefónica, con lo que resultan irrecuperables.

La opción funciona también para las fotos y los vídeos. La aplicación está disponible sobre todo para Iphone, aunque los creadores están trabajando en versiones para otros soportes.

Son los mismos usuarios quienes programan dentro de qué período de tiempo quieren que sus textos se eliminen una vez sean leídos. El plazo puede variar entre 60 segundos y 30 días.

Además, el proceso de entrega del SMS puede ser seguido a través de unos pequeños iconos. Cuando el destinatario recibe el mensaje, en la pantalla del móvil del remitente aparece un recuadro (como en las casillas a marcar en los formularios) de color naranja. Ese mismo icono, en color verde, aparece en su pantalla cuando el receptor abre el texto enviado.

Una tecnología parecida fue ofrecida por BigString Corp. para los usuarios de los BlackBerry hace unos tres años. Sin embargo, la compañía abandonó luego la idea para concentrarse más en un servicio para correo electrónico que permitía a los remitentes eliminar y editar los correos después de que fueran enviados.

Para leer el articulo comleto pulse aqy o en este link

 

Tan sólo dos meses después de la última versión del navegador de Google, Chrome, la compañía ya ha lanzado Google Chrome 9, la nueva versión que ofrecerá a sus usuarios más velocidad, imágenes en 3D y un sistema de carga instantánea de webs al comenzar a escribir la URL.

El navegador más rápido de todos ya está listo para entrar en el mundo 3D gracias a la incorporación de WebGL en su versión 9 disponible para descargar. El navegador más rápido de todos ya está listo para entrar en el mundo 3D gracias a la incorporación de WebGL en su versión 9 disponible para descargar. Desde ya puedes empezar a bajar esta nueva versión de Chrome mientras lees la entrada, para culminar disfrutando del soporte para gráficos 3D en el Aquarium que se encuentra en Chrome Experiments o ilustrarte un poco más sobre las partes del cuerpo en Google Labs. No tendremos ya necesidad de instalar ningún complemento adicional para visualizar contenido tridimensional en esta nueva versión del navegador de Google. Adicionalmente se ha agregado el sistema “Instant”, que permite la carga de páginas web tan pronto como se escribe la URL de un sitio, antes de darle un Enter. Con Instant habilitado, también podremos observar los resultados de búsqueda mientras digitamos una consulta en el recuadro de nuestro motor de búsqueda preferido (si es que soporta esta característica). Algo que Google ya disponía desde hace rato.Desde ya puedes empezar a bajar esta nueva versión de Chrome mientras lees la entrada, para culminar disfrutando del soporte para gráficos 3D en el Aquarium que se encuentra en Chrome Experiments o ilustrarte un poco más sobre las partes del cuerpo en Google Labs. No tendremos ya necesidad de instalar ningún complemento adicional para visualizar contenido tridimensional en esta nueva versión del navegador de Google. Adicionalmente se ha agregado el sistema “Instant”, que permite la carga de páginas web tan pronto como se escribe la URL de un sitio, antes de darle un Enter. Con Instant habilitado, también podremos observar los resultados de búsqueda mientras digitamos una consulta en el recuadro de nuestro motor de búsqueda preferido (si es que soporta esta característica). Algo que Google ya disponía desde hace rato.

 

Según informa la compañía en su blog oficial, esta nueva versión incorpora la tecnología WebGL, la cual incluye “gráficos en 3D acelerados por hardware” que el usuario podrá disfrutar en su ordenador.

Otra de las características más novedosas es ‘Chrome Instant’, una herramienta que se encargará de cargar las páginas favoritas del usuario “nada más empezar a escribir la URL”. Es un sistema basado en el concepto de las búsquedas de Google Instant.

Por último, Google Chrome 9 ofrece ‘Chrome Web Store’, la tienda de aplicaciones para el navegador de Google, pero por el momento esta novedad sólo esta disponible en Estados Unidos.

Para ampliar el tema pulsa aqy o aqy

 

JAVACC

EL Java Compiler Compiler (JAVACC) es un generador de analizadores sintácticos de código abierto para el lenguaje de programación Java.

JavaCC es similar a Yacc en que genera un parser para una gramática presentada en notación BNF, con la diferencia de que la salida es en código Java.

A diferencia de Yacc, JavaCC genera analizadores descendentes (top-down), lo que lo limita a la clase de gramáticas LL(K) (en particular, la recursión desde izquierda no se puede usar).

El constructor de árboles que lo acompaña, JJTree, construye árboles de abajo hacia arriba (bottom-up). En 1996Sun Microsystems lanzó un generador del programa de análisis llamado Gato.

Los reveladores responsables de Gato creó a su propia compañía llamada Metamata y cambió Gato nombre a JavaCC. Metamata se convirtió en eventual parte de WebGain. Después de que WebGain cerrara sus operaciones, JavaCC fue movido a su hogar actual.     

  CARACTERÍSTICAS PRINCIPALES

JavaCC integra las funciones de análisis léxico y análisis sintáctico en una sola herramienta, obteniendo a la salida código java

–a diferencia de lex/yacc cuya salida es código C

-. Antes que nada veamos un ejemplo sobre el cual se va a ir haciendo un seguimiento de cada uno de los distintos puntos que vayamos comentando.

En él se muestra una gramática reconocedora de una calculadora.

 

 

 

 

La principal diferencia con lex/yacc es que los analizadores sintácticosgenerados por JavaCC son analizadores sintácticos descendentes de tipo LL(k),mientras que los analizadores sintácticos generados por yacc son de tipo ascendenteLALR.

Otra diferencia bastante importante es que las especificaciones léxicas puedenestar incluidas dentro de la especificación de la gramática.

Por ejemplo, podemosescribir algo como esto:

sentenciaIf : {} { “if” “(” expresion() “)” sentencia() }

y automáticamente se ocupa de generar tokens para “if” y para “(“.También es necesario reseñar que el análisis léxico en JavaCC generacombinaciones de autómatas finitos deterministas (AFD) y autómatas finitos nodeterministas(AFND); por contra, lex siempre genera autómatas finitos deterministas.

En definitiva diremos que Java Compiler Compiler (JavaCC) es un potentegenerador de parsers descendentes escritos en lenguaje Java puro.

Es, quizá, uno de losgeneradores de parsers más populares dada su multiplataformidad.

Es por esto que serecomienda su uso para usuarios más afines a los lenguajes de programación orientadosa objetos.Dentro de las características de este metacompilador hay algunas que son aportadas por lex/yacc y otras que no.

Principalmente destacamos:

• Análisis descendente, permitiendo el uso de gramáticas mas generales y la posibilidad de poder utilizar atributos en el árbol sintáctico durante el parsing.

Especificaciones léxicas y gramaticales en un solo archivo. De esta manera la gramática puede ser leída y mantenida más fácilmente gracias al uso de lasexpresiones regulares dentro de la gramática.

• Permite extender especificaciones BNF mediante la utilización de expresionesregulares, tales como (A)*, (A)+.sentenciaIf : {} { “if” “(” expresion() “)” sentencia() }

• Ofrece estados léxicos y la capacidad de agregar acciones léxicas incluyendo unbloque de código java tras el identificador de un token. Además de los conceptosde token, more, skip, cambio de estados, etc. Ello permite trabajar conespecificaciones más claras, a la vez que permite un mejor manejo de mensajesde error y advertencias de JavaCC.

• Genera por defecto un parser LL(1). sin embargo, puede haber porciones de lagramática que no son LL(1).

JavaCC ofrece la posibilidad de resolver lasambigüedades shift-shift localmente al punto del conflicto.

En otras palabras,permite que el parser se vuelva LL(k) sólo en tales puntos; pero se conservaLL(1) en el resto de las producciones para obtener una mejor actuación.

• Permite el uso de Tokens Especiales que son ignorados por el parser; pero estándisponibles para poder ser procesados por el desarrollador.

• Las especificaciones léxicas pueden definir tokens de manera tal que a nivelglobal no se diferencien las mayúsculas de las minúsculas en la especificaciónléxica completa o en una especificación léxica individual

• El análisis del parsing y los pasos de procesamiento de tokens pueden realizarseen profundidad por medio de la utilización de las opciones DEBUG_PARSER,DEBUG_LOOKAHEAD, y DEBUG_TOKEN_MANAGER,.

JavaCC incluye JJTree, un preprocesador para el desarrollo de árboles, concaracterísticas muy poderosas.

De entre los generadores de parsers, JavaCC se halla entre los que tienen mejormanejo de errores.

Los parsers generados por JavaCC son capaces de localizarexactamente la ubicación de los errores, proporcionando informacióndiagnóstica completa.

JavaCC incluye una herramienta llamada JJDoc que convierte los archivos de lagramática en archivos de documentación.

El analizador léxico de JavaCC puede manejar entradas Unicode, y lasespecificaciones léxicas también pueden incluir cualquier caracter Unicode. Estofacilita la descripción de los elementos del lenguaje, tales como losidentificadores Java que permiten ciertos caracteres Unicode que no son ASCII,pero no otros.

• JavaCC es quizá el generador de parsers usado con aplicaciones Java máspopular.

• JavaCC ofrece muchas opciones diferentes para personalizar su comportamientoy el comportamiento de los parsers generados.

Para ampliar la información pulsa aqy

Tutorial util pulsa aqy

Es una herramienta creada principalmente por Terence Parr, que opera sobre lenguajes, proporcionando un marco para construir reconocedores (parsers), intérpretes, compiladores y traductores de lenguajes a partir de las descripciones gramaticales de los mismos (conteniendo acciones semánticas a realizarse en varios lenguajes de programación).

Es un programa está escrito en java, por lo que se necesita alguna máquina virtual de java para poder ejecutarlo.

ANTLR es un generador de analizadores. Es capaz de generar un analizador léxico, sintáctico o semántico en varios lenguajes(java, C++ y C# en su versión 2.7.2) a partir de unos ficheros escritos en un lenguaje propio.Dicho lenguaje es básicamente una serie de reglas EBNF y un conjunto de construcciones auxiliares.

Genera un programa que determina si una sentencia o palabra pertenece a dicho lenguaje (reconocedor), utilizando algoritmos LL(*) de parsing. Si a dicha gramática, se le añaden acciones escritas en un lenguaje de programación, el reconocedor se transforma en un traductor o intérprete.

ANTLR es un generador de lenguajes, a partir de laespecificación de un lenguaje a partir de una gramática podemos:

  • Reconocer si un programa (o palabra) cumple una especificación.
  • Traducir el programa (o palabra) a otro lenguaje.

Es software libre, lo que quiere decir que al descargarlo de la página oficial  (pulsa aqy para descargarlo)obtendremos tanto los ficheros compilados *.class como elcódigo fuente en forma de ficheros *.java.ANTLR

Para entender mas sobre el tema pulsa  aqy

Ejemplo utilizando ANTLR

 

Traducción Dirigida por la Sintáxis El significado de una sentencia de entrada está relacionado con su estructura sintáctica.  Encierran aquellos formalismos utilizados para especificar las traducciones para las construcciones de los lenguajes de programación guiadas por una GLC. ◦ Se Asocian Atributos a los símbolos de la gramática. ◦ Se computan los valores de atributos por reglas semánticas asociadas a las producciones de la gramática.  La evaluación de las reglas semánticas puede: ◦ Generar Código. ◦ Insertar información en la Tabla de Símbolos. ◦ Realizar el Chequeo Semántico. ◦ Dar mensajes de error ◦ Etc. Existen dos notaciones para asociar información a las reglas semánticas:

Definiciones Dirigidas por la Sintáxis: es una especificación de alto nivel que oculta detalles de implementación. Es una generalización de una gramática independiente de contexto en la que cada símbolo gramatical tiene asociado un conjunto de atributosEspecifica la traducción de una construcción en función de los atributos asociados con sus componentes sintácticos. Para traducir una construcción de un lenguaje de programación, un compilador puede necesitar tener en cuenta muchas características, además del código generado para la construcción. Una definición dirigida por sintaxis es un formalismo para especificar las traducciones para las construcciones en funciónde atributos asociados con sus componentes sintácticos.

Utiliza una gramática independiente de contexto para especificar la estructura sintáctica de la entrada, la idea es asociar con cada símbolo de la gramática un conjunto de atributos quepueden ser sintetizados o heredados y además a cada producción un conjunto de reglas semánticas para calcular los valores de los atributos asociados con los símbolos que aparecen en esa producción.

Ladefinición dirigida por sintaxis consiste en sí entonces de la gramática y el conjunto de reglas semánticas. En una definición dirigida por sintaxis, para cada producción gramatical A=>α se asocia un conjunto de reglas semánticas de la forma b:=f(c1,c2,…,ck) donde f es una función y b es un atributo sintetizado de A o un atributo heredado de uno de los símbolos gramaticales de la parte derecha de laproducción y c1,c2,…,ck son atributos que pertenecen a los símbolos gramaticales de la producción. Se dice que b depende de c1,c2,…,ck. •

Utilizan una gramática independiente de contexto para especificar la estructura sintáctica de la entrada

• A cada símbolo de la gramática se le asocia un conjunto de atributos

• A cada regla de la gramática se le asocia un conjunto de reglas semánticas para calcular los valores de los atributos asociados con los símbolos de esa regla

• La gramática y el conjunto de reglas semánticas constituyen la definición dirigida por la sintaxis

ATRIBUTOS • El conjunto de atributos asociado a cada símbolo gramatical se divide en dos subconjuntos

Atributos sintetizados. Se pueden calcular durante un solo recorrido ascendente del árbol de análisis sintáctico –

Atributos heredados. Sirven para expresar la dependencia de una construcción en de un lenguaje en el contexto en el que aparece • Si se considera un nodo de un símbolo gramatical de un árbol sintáctico como un registro para guardar información entonces un atributo se corresponde con el nombre de un campo •

. Un atributo puede representar cualquier cosa (una cadena, un número, un tipo, una posición de memoria…)

• El proceso de calcular los valores de los atributos en los nodos se denomina anotar o decorar el árbol de análisis sintáctico

• El valor de un atributo se define mediante la regla semántica asociada a la regla de producción utilizada en ese nodo

• El valor de un atributo sintetizado se calcula a partir de los valores de los atributos de los hijos de ese nodo en el árbol de análisis sintáctico

• El valor de un atributo heredado se calcula a partir de los valores de los atributos de los hermanos y el padre de ese nodo

• En una definición dirigida por la sintaxis, se asume que los terminales sólo tienen atributos sintetizados (la definición no proporciona ninguna regla semántica para los terminales)

• Los valores para los atributos de los terminales son proporcionados generalmente por el analizador léxico

REGLAS SEMÁNTICAS • Las reglas semánticas establecen las dependencias entre los atributos que serán representadas mediante un grafo

• El grafo de dependencias proporciona el orden de evaluación de las reglas semánticas

• La evaluación de las reglas semánticas define los valores de los atributos de los nodos del árbol

• Una regla semántica puede tener también efectos colaterales (imprimir un valor, actualizar una variable global…)

• Una gramática con atributos es una definición dirigida por la sintaxis en la que las funciones de las reglas semánticas no pueden tener efectos colaterales

EJEMPLO Definición Dirigida por la Sintaxis de una calculadora de escritorio sencilla

Para ampliar el tema pulsa aqy o aqy