Archivo

Archivo para Octubre 2007

Análisis Léxico

Octubre 31, 2007 faustol 5 comentarios

El analizador léxico, también conocido como scanner, lee los caracteres uno a uno desde la entrada y va formando grupos de caracteres con alguna relación entre sí (tokens), que constituirán la entrada para la siguiente etapa del compilador. Cada token representa una secuencia de caracteres que son tratados como una única entidad.

Un Analizador Léxico (o analizador lineal) transforma la secuencia de símbolos de entrada en una secuencia de componentes (símbolos) léxicos sobre la cual es mas fácil hacer luego el análisis sintáctico. El A.L. lee caracteres de entrada y los agrupa en secuencias que tienen significado dentro de la estructura sintáctico del lenguaje fuente.

Un analizador léxico es un traductor que actúa en la primera fase de un proceso de compilación.

Para iniciar en la construcción de un analizador léxico o primero que realizamos es:

1. Definición de todas las palabras reservadas o también lo llamamos lenguaje, a esto le agregamos todos los caracteres separadores, es decir el caracter inmediato que puede existir luego de esta palabra por ejemplo si tengo el lenguaje:

L= { if, (, ), for }, estas palabras reservadas de C++.

if, sus separadores serán: espacio, (, tabulador, enter

(, sus separadores son muchos: identificadores, numeros, (, espacio, tabulador, etc..

esto se debe hacer con cada una de las palabras reservadas.

2. Construcción del autómata en base a las palabras reservadas:

El número negativo colocado a final, es el token, es decir lo que me va a dar como resultado el léxico al reconocer una palabra, esto puede ser un conjunto de caracteres o número negativos.

3. Construcción de la tabla de transiciones

Esta tabla representa el movimiento del autómata, y ya se puede hacer implementación para reconocer las palabras. Si embargo es necesario realizar un proceso de compactación de tablas.

Espero sus comentarios

Categorías:Compiladores

Logos y sonidos de windows

Octubre 25, 2007 faustol Deja un comentario

Interesante encontrar este video que hace referencia a todos los logos y sonidos de windows, incluyendo las versiones iniciales hasta la actualidad. Muchos recuerdos cuando el lindo windows cada vez nos pedia nuevos requerimientos de hardware.

Categorías:software

El libro del dragon

Octubre 25, 2007 faustol 2 comentarios

Les hago referencia a un post que me parece curioso e interesante, y bueno me enteré que existe una nueva versión del famoso libro de compiladores, al que “TENEMOS MIEDO”

http://javieraroche.com/2007/02/20/el-libro-del-dr…

Y bueno un complemento obtenido del mismo blog, y que todos los que han usado este libro lo entenderán.

Java – Llega, encuentra al dragón, desarrolla un framework para aniquilación de tragones en múltiples capas, escribe varios artículos sobre el framework… pero no mata al dragón.

.NET – Llega, ve la idea del desarrollador de Java y la copia, intenta matar al dragón, pero el bicho se lo come

C - Llega, mira al dragón con mirada de desprecio, tira de espada, degolla al dragón, encuentra a la princesa… y la ignora para ver los últimos checkins del cvs del kernel de linux

C++ – Crea un pincho básico y va juntando funcionalidades hasta tener una espada compleja que apenas consigue entender… mata al dragón pero se atasca en medio del puente por culpa de pérdidas de memoria (memory leaks)

COBOL – Llega, ve al dragón y piensa que es demasiado viejo para conseguir matar un bicho de ese tamaño y quedarse con la princesa, y entonces se va.

Pascal – Se prepara durante 10 años para crear un sistema de aniquilación de dragones… cuando llega el momento descubre que el programa sólo acepta lagartijas como entrada

VB – Monta un arma de destrucción de dragones a partir de varios componentes, salta encima del lomo del dragón, y en la hora H descubre que la espada sólo funciona durante las noches de lluvia…

PL/SQL – Recoge datos de otros matadores de dragones, crea tablas con n relaciones de complejidad ternaria, datos en tres dimensiones, OLAP, tarda quince años para procesar la información… y para entonces la princesa se volvió lesbiana.

Ruby – Llega con muchísima fama, diciendo que es el mejor en hacer cualquier cosa y cuando va a enfrentarse al dragón muestra una peliculita en la que él mismo aparece matando a un dragón… el dragón se lo come de puro aburrimiento

Smalltalk - Llega, analiza al dragón y a la princesa, se da la vuelta y se pira: ellos son muy inferiores

shell – Crea un arma poderosa para matar dragones, pero en la hora H no recuerda como usarla

shell(2)- El tío se acerca al dragón con un script de dos líneas que mata, corta, destripa, empala, pica en pedacitos y empaca al bicho, pero a la hora de ejecutarlo el script aumenta, engorda, enfurece y pone alcohol en el fuego del dragón.

Ensamblador - Cree que está haciendo lo más correcto y eficiente… pero pone un A en lugar de un D y mata a la princesa para terminar follándose al dragón

Fortran – Llega y desarrolla una solución con 45 mil líneas de código, mata al dragón, va al encuentro de la princesa… pero ella le llama tirillas y se va corriendo detrás del programador de java que era elegante y además es rico

FOX PRO – Desarrolla un sistema para matar al dragón. Por fuera es precioso y funciona, pero por dentro está todo parcheado y cuando va a ejecutar el aniquilador de dragones recuerda que olvidó indexar los DBF.

ANALISTA DE PROCESOS – Se acerca al dragón con dos toneladas de documentación desarrollada sobre el proceso de matar un dragón genérico, desarrolla un DFD para liberar a la princesa y casarse con ella, convence al dragón de que es lo mejor para el y que no va a doler. Al ejecutar el proceso estima el esfuerzo y el tamaño del daño que causará con la firma del papa, de Buda y de Joan Manuel Serrat para el plano, y entonces compra dos bombas nucleares, 45 cañones, un portaaviones y contrata a 300 hombres armados hasta los dientes… cuando en realidad tan sólo necesitaría la espada que tenía en la mano desde el principio

CLIPPER: Monta una rutina que carga un array de codeblocks para insultar al dragón, cantarle a la princesa, cargar la espada a memoria, moler al dragón, limpiar la suciedad, preparar un vaso de leche condensada con moras para la princesa, follar a la princesa, darse un baño, encender el coche, ponerle gasolina y volver para casa. A la hora de ejecutar recibe un “Bound Error: Array Access” y el dragón se lo come con patatas.

Categorías:Compiladores

Twitter, para windows

Octubre 16, 2007 faustol Deja un comentario

Documentandome sobre el API de twitter, he construido un cliente en .net para twitter, el cual he utilizado una libreria TwitterooCore.dll de twittero para autenticar al servidor, y lectura de se los servios para realizar obtener la información de los post , asi como para la actualización. http://twitter.com/statuses/friends_timeline.xml, para la lectura de los post de los amigos http://twitter.com/statuses/public_timeline.xml, para los públicoshttp://twitter.com/statuses/update.xml para la actualización del estado Les comparto el instalador, luego publicaré el código fuente cuando complete la autenticación sin la libreria utilizada

Descargar

Navegación Celular

Octubre 12, 2007 faustol 1 Comentario

Realmente estoy experimentando con un BlackBerry navegando y leyendo correo. Creo que cuando tenemos la costumbre de navegar no se va a poder poner en restricción. La red nos acompaña en todos los lugares y no se puede evitar.

Realmente asombroso tener: Gmail, Maps,Talk como aplicaciones de escritorio en el dispositivo, hace increible como la tecnología nos llega.

Lo que no les va a parecer muy agradable a las telefónicas es tener voz sobre IP en los dispositivos, es decir herramientas tipo Skype que permitan realizar llamadas, les llevaria a que los usuarios contraten Internet y se olviden de los minutos celulares.

Los sitios WAP, existen muchos pero realmente no todos cubren las espectativas para estar en proceso de auge considero muy aceptable todo lo que he logrado observar en tan solo dos días de tener el servicio.

Categorías:Internet, Tecnología

Primeros y Siguientes

Octubre 12, 2007 faustol 1 Comentario

Como se sufre con estos temas

Primeros._ Conjunto de elementos terminales que se encuentran al lado derecho de la producción. Para lo cual se tiene la tres siguientes formulas. Su palabra lo dice es el primer elemento terminal que encontramos en el lado derecho de la producción

Siguientes._ Si A es un símbolo no Terminal de la gramática; S(A) es el conjunto de terminales ( y $) que pueden aparecer a continuación de A alguna forma sentencial derivada del símbolo inicial.

Cualquier comentario, ayuda sugerencia no duden en escribir

Categorías:Compiladores