Archive for febrero, 2011

Telefónica anuncia el lanzamiento de BlueVia, una comunidad de desarrolladores

Telefónica ha anunciado hoy el lanzamiento de una comunidad de desarrolladores bajo el nombre de ‘BlueVia’ (www.bluevia.com), que operará en todas las regiones en las que está presente Telefónica y que ha sido desarrollado en el centro de I+D ubicado en el Parque Tecnológico de Boecillo (Valladolid).

La compañía estima que ‘BlueVia’ “supone un paso adelante” respecto a los programas para desarrolladores ya existentes de Telefónica y marca el inicio de “una nueva fase” en el compromiso de Telefónica con la comunidad de desarrolladores, al refundir todas estas actividades con el fin de crear “una oferta mejorada, coordinada y totalmente integrada para los desarrolladores de aplicaciones tanto web como para móviles de todo el mundo”.

Fuente: noticia

24% del tráfico de Internet es de contenido ilegal

 

En estos días leíamos cómo los contenidos legales en Internet luchan a toda costa con los múltiples medios existentes en la Red para compartir archivos protegidos por derechos de autor de manera ilegal. El estudio realizado por la compañía Envisional para NBCUniversal revela algunos datos más dicientes en este sentido ydeja cierta preocupación para los encargados de promover la legalidad en la Web.

Según el informe, casi una cuarta parte del tráfico de Internet (23,76%) infringe de alguna manera los derechos de autor, siendo BitTorrent, la red de peer-to-peer (P2P) más popular de los últimos años, la que maneja el 11,4% de este contenido. Por su parte, los cyberlockers (sitios para almacenamiento de archivos) alcanzan el 5,1%; los sitios de streaming de video (como MegaVideo y Novamov) representan el 1,4%; y otras redes peer-to-peer (P2P) como eDonkey y Gnutella y sitios para compartir archivos como Usenet son responsables del resto del tráfico.

Al respecto, Erik Barnett, director asistente del Departamento de Inmigración y Aduanas de Estados Unidos, dijo que la lucha contra los piratas en la Red es a toda costa, pues es un delito que debemos combatir.Muchas personas relacionan nuestras acciones contra varios sitios como censura y un atentado contra su privacidad. La verdad es que hay muchas víctimas de estas acciones criminales y debemos protegerlas“.

ENLACE: INTERNET

ANTLR

ANTLR tiene un entorno de desarrollo de la gramática avanzada tecnología “ANTLRWorks, escrito por Jean Bovet.

ANTLR es una herramienta más para el reconocimiento del lenguaje, el lenguaje es una herramienta que proporciona un marco para construir reconocedores, intérpretes, compiladores y traductores a partir de descripciones gramaticales que contengan acciones en una variedad de idiomas de destino. Proporciona un excelente soporte para la construcción del árbol, recorrido por el árbol, la traducción, la recuperación de errores, y los informes de errores. En este momento hay cerca de 5.000 descargas de origen ANTLR un mes.

Terence Parr es el loco detrás de ANTLR y ha estado trabajando en herramientas de lenguaje desde 1989. Él es un profesor de ciencias de la computación en laUniversidad de San Francisco.

Hay varias cosas han cambiado para mejor en la inclusión de v3:

  • una extensión de marca nueva muy potente para LL (k) LL llamada (*)
  • un modomarcha atrás
  • parcial resultado de análisis para aumentar la velocidad de marcha atrás
  • un muy bonito AST reescribir mecanismo de regla
  • integración de la herramienta del template StringTemplate para generar texto estructurado
  • Informes de errores y mejora la recuperación
  • Un código de redestinable verdaderamente generador que hace que sea fácil de construir backends (“blancos”), las siguientes metas de generación de código : Java, C #, C, Objective-C, Python con los demás en el desarrollo
  • Licencia BSD

 

¿Qué es y cómo funciona ANTLR?

ANTLR es un programa está escrito en java, por lo que se necesita alguna máquina virtual de java para poder ejecutarlo. Es software libre, lo que quiere decir que al descargarlo de la página oficial (http://www.antlr.org) btendremos tanto los ficheros compilados *.class como el código fuente en forma de ficheros *.java.

ANTLR es un generador de analizadores. Mucha gente llama a estas herramientas compiladores de compiladores, dado que ayudar a implementar compiladores es su uso más popular. Sin embargo tienen otros usos. ANTLR, por ejemplo, podría servir para implementar el intérprete de un fichero de configuración.

ANTLR 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.

ANTLR genera analizadores pred-LL(k), y él mismo utiliza un analizador pred-LL(k) para leer los ficheros en los que están escritas las reglas EBNF. ANTLR admite acciones en sus reglas, además de otras prestaciones como paso de parámetros, devolución de valores o herencia de gramáticas.

JavaCC

El generador JavaCC (Java Compiler Compiler) es una herramienta para generar programas escritos en lenguaje Java; acepta como entrada una especificación de un determinado lenguaje y produce como salida un analizador para ese lenguaje. En la manera más simple de funcionamiento, la especificación proporcionada define las características sintácticas y lexicográficas de un lenguaje y se genera un analizador léxico-sintáctico del lenguaje especificado; pero también es posible completar una especificación léxico-sintáctica con la inclusión adecuada de código para que el programa generado llegue a ser un analizador completo del lenguaje.

Pasos para la generación del analizador

1.- Edición de la especificación (editor de texto plano)

  • vi | edit |· · · NombreFichero.jj

(el nombre del fichero puede tener cualquier extensión; suele usarse .jj)

2.- Ejecución del generador

  • javacc NombreFichero.jj

Si el nombre elegido para la especificación es NombreDeLaEspecif (más adelante se indica la manera de dar un nombre a la especificación), como resultado de la generación se obtiene (además de otros ficheros auxiliares) el fichero

  • NombreDeLaEspecif.java

3.- Compilación del analizador generado

  • javac NombreDeLaEspecif.java

Como resultado de la compilación se obtiene (además de otras clases auxiliares) el fichero

  • NombreDeLaEspecif.class

Ejecución del analizador generado

Si el nombre del fichero donde se encuentra el texto fuente (escrito en el lenguaje para el que se ha generado el analizador) que se pretende analizar es Programa.len

  • java NombreDeLaEspecif <>

Si se desea que los resultados del análisis, en vez de presentarse por pantalla, queden grabados en un fichero de nombre Salida.dat

java NombreDeLaEspecif <> Salida.dat


Especificación léxico-sintáctica codificada con la notación JavaCC

Una manera de escribir la especificación (para la que se ha elegido el nombre ExprMin) de forma que sea aceptada por el generador es:

options { Ignore_Case = true; }

PARSER_BEGIN (ExprMin)

public class ExprMin {

public static void main (String[] argum) throws ParseException {

ExprMin anLexSint = new ExprMin (System.in);

anLexSint.unaExpresion();

System.out.println(“Análisis terminado:”);

System.out.println

(“no se han hallado errores léxico-sintácticos”);

}

}

PARSER_END (ExprMin)

void unaExpresion() :

{ }

{

expresion()

}

void expresion() :

{ }

{

termino() ( “+” termino() )*

}

void termino() :

{ }

{

factor() ( “*” factor() )*

}

void factor() :

{ }

{

 

|

| “(” expresion() “)”

}

TOKEN:

{

< variable : [“a”-“z”] >

}

TOKEN:

{

< constante : ( [“0”-“9”] ) + >

}

SKIP:

{ ” ” | “\t” | “\n” | “\r” }

Obtención del analizador

Si la especificación precedente se tiene grabada en un fichero de nombreEjemplo.jj, para obtener el analizador:

– se ejecuta el generador: javacc Ejemplo.jj

– se compila el analizador generado: javac ExprMin.java

Ejecución del analizador

Si se quiere analizar una expresión grabada en un fichero de nombrePruebaExp.txt:

– se ejecuta el analizador obtenido: java ExprMin <>

Webgrafía:

DEFINICIÓN DIRIGIDA POR LA SINTAXIS

La definició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 la producció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.

Atributos

Un atributo puede representar cualquier cosa, un nombre, una cadena, un número, un tipo, una posición de memoria, su valor en un nodo se define mediante una regla semántica asociada a la producción usada en dicho nodo. En una definición dirigida por sintaxis se asume que los terminales sólo tienen atributos sintetizados, ya que la definición no proporciona ninguna regla semántica para los terminales. El analizador léxico es el que proporciona generalmente los valores para los atributos de los terminales.

Atributos Sintetizados

Se puede decir que un atributo es sintetizado si su valor en un nodo del árbol de análisis sintáctico se determina a partir de los valores de atributos de los hijos de ese nodo (como decir de abajo hacia arriba). Se pueden calcular mediante un solo recorrido ascendente del árbol de análisis sintáctico, lo que es muy deseable.

Atributos Heredados

Un atributo heredado es uno cuyo valor en un nodo de un árbol de análisis sintáctico está definido a partir de los atributos en el padre y los hermanos de dicho nodo. Éstos sirven para expresar la dependencia de una construcción de un lenguaje de programación en el contexto en el que aparece.

Reglas semánticas

Las reglas semanticas establecen dependencias entre los atributos de los diferentes símbolos.Esas dependencias se reflejan en un grafo con el fin deestablecer un orden de evaluación de las reglas.La evaluación de las reglas asigna valor a los atributos.Un árbol de análisis sintáctico que contiene también los atributos y su valores se llama un arbol anotado o decorado.

PROCESO

Forma de Definiciones Dirigidas por Sintaxis

  • Para cada producción A => α

– Reglas semánticas b = f(c1,c2,…,ck)

– b es atributo sintetizado de A
*   c1,c2,…,ck son atributos de simbolos en la producción
– b es atributo heredado
*  de algún símbolo del lado derecho (α)
* c1,c2,…,ck son atributos de simbolos en la producción

EJEMPLO


ENLACE: