Saludos a todos,
Felicitaciones a Edgar!,
Juan Manuel Diaz
--
To post to this group, send email to clubSm...@googlegroups.com
To unsubscribe from this group, send email to clubSmalltal...@googlegroups.com
http://www.clubSmalltalk.org
No te olvides de ver la página de SmaCC
http://www.refactory.com/Software/SmaCC/index.html
Un compañero que entiende como definir la gramatica usa el de Dolphin
y anda perfecto.
Ahora, escribir SQL para consultar colecciones de objetos???? Cada
loco con su tema jaja :)
Saludos
GallegO
Gracias por los enlaces, ya agregados a
http://delicious.com/ajlopez/smalltalk
Hay varios Object Query Language en otras tecnologías, y son bastante
usados. Uno de los mas populares es Linq, de .NET, que a veces se extrania
en Java.
Una estrategia a seguir: permitir que cada query definida en el lenguaje de
consulta, se pueda ejecutar con métodos agregados a colecciones de objetos,
tipo (imagino en el aire)
aColl select: [....projection....] "un bloque que tome un element de la
colección y devuelva el elemento de la colección nueva que se esta formando"
aColl selectFirst: [....projection....]
aColl where: [... critera...] "un bloque que tome un element de la coleccion
y devuelva verdadero o falso"
aColl orderBy: [.... order criteria ...]
aColl skip: 10 take: 20 "para saltear 10 elementos, y tomar los proximos 20"
Supongo que debe haber algo asi ya escrito en librerías de Smalltalk, y en
la propia librería base, cuales eran? Hmm... me patina la neurona... :-)
Y luego recién ahí, implementar una gramatica para otro lenguaje mas OQL,
SQL
Nos leemos!
Angel "Java" Lopez
http://www.ajlopez.com/
http://twitter.com/ajlopez
-----Mensaje original-----
De: clubsm...@googlegroups.com [mailto:clubsm...@googlegroups.com]
En nombre de GallegO
Enviado el: jueves, 25 de febrero de 2010 12:49
Para: clubsm...@googlegroups.com
Asunto: Re: [clubSmalltalk] ATParserCompiler
Hola:
http://www.refactory.com/Software/SmaCC/index.html
Saludos
GallegO
--
To post to this group, send email to clubSm...@googlegroups.com
To unsubscribe from this group, send email to
clubSmalltal...@googlegroups.com
http://www.clubSmalltalk.org
No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.5.435 / Virus Database: 271.1.1/2707 - Release Date: 02/24/10
07:34:00
Perdón que me vaya un poco offtopic, pero justo hoy Lukas hizo un post interesante:
- - aColl selectFirst: [....projection....]
#first (Hagamos la salvedad de que se trate de una coleccion con
orden)
- - aColl where: [... critera...] "un bloque que tome un element de
la coleccion
- - y devuelva verdadero o falso"
es el famoso #select: aBlock
. . aColl orderBy: [.... order criteria ...]
#asSortedCollection: aSortBlock (el sortBlock especifica el criterio
de orden)
- - aColl skip: 10 take: 20 "para saltear 10 elementos, y tomar los
proximos 20"
Te lo dejo como ejercicio para hacer en el desayuno
Guillermo, con respecto a lo del Stream cursor:
La principal ventaja de los cursores cuando usamos SQL, es la de no
traer a memoria todos los objetos (registros, perdón), y en cambio,
recorrerlos en la misma base de datos, el cursor sólo "recuerda" la
posición del próximo elemento y sabe como avanzar y eventualmente
retroceder.
Si la collection ya está en memoria, como es el caso para una
collection standar de un Smalltalk standar, no hay razones para que
estos métodos creen cursores, si se crea una nueva collection, solo
tendrá referencias a los objetos de la original, y esto no es muy
costoso.
Ahora, si realmente querés un "cursor", no por una cuestión de
"economía" de espacio sino porque lo que querés es que realmente opere
sobre esa collection (y no sobre sus elementos) los Streams de
Smalltalk cumplen ese rol perfectamente, el protocolo no es el mismo
que el de Collection pero no es tan costoso "adaptarlo".
Saludos,
Claudio
On 26 feb, 01:23, Guillermo Schwarz <guillermo.schw...@gmail.com>
wrote:
> La idea de Angel está interesante.
>
> aColl select: [....projection....] "un bloque que tome un element de la
> colección y devuelva el elemento de la colección nueva que se esta formando"
> aColl selectFirst: [....projection....]
> aColl where: [... critera...] "un bloque que tome un element de la coleccion
> y devuelva verdadero o falso"
> aColl orderBy: [.... order criteria ...]
> aColl skip: 10 take: 20 "para saltear 10 elementos, y tomar los proximos 20"
>
> Cada uno de esos debe retornar un collectionStream que sea algo así como un
> cursor, pero que tenga el mismo protocolo de un collection de modo que sea
> un drop in replacement de collection y que permita operar como si fuera un
> pipe a un collection.
>
> Entonces si collectionStream implementa el mismo protocolo de collection
> descrito arriba, se puede armar sentencias SQL sin necesidad de escribir
> SQL, y hacer un interprete de SQL se volvería trivial...
>
> Saludos,
> Guillermo.
>
> 2010/2/25 Mariano Martinez Peck <marianop...@gmail.com>
>
>
>
>
>
> > Perdón que me vaya un poco offtopic, pero justo hoy Lukas hizo un post
> > interesante:
>
> >http://www.lukas-renggli.ch/blog/petitparser-1
>
> > saludos
>
> > Mariano
>
> > 2010/2/25 Angel "Java" Lopez <webmas...@ajlopez.com>
> >> clubSmalltal...@googlegroups.com<clubSmalltalk%2Bunsubscribe@googlegroups.com>
>
> >>http://www.clubSmalltalk.org
> >> No virus found in this incoming message.
> >> Checked by AVG -www.avg.com
> >> Version: 8.5.435 / Virus Database: 271.1.1/2707 - Release Date: 02/24/10
> >> 07:34:00
>
> >> --
> >> To post to this group, send email to clubSm...@googlegroups.com
> >> To unsubscribe from this group, send email to
> >> clubSmalltal...@googlegroups.com<clubSmalltalk%2Bunsubscribe@googlegroups.com>
>
> >>http://www.clubSmalltalk.org
>
> > --
> > To post to this group, send email to clubSm...@googlegroups.com
> > To unsubscribe from this group, send email to
> > clubSmalltal...@googlegroups.com<clubSmalltalk%2Bunsubscribe@googlegroups.com>
>
> >http://www.clubSmalltalk.org
>
> --
> Saludos cordiales,
>
> Guillermo Schwarz
> Sun Certified Enterprise Architect- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
Muchas gracias a todos por los aportes, la idea inicial era hacer algo
de lo que propuso Angel y Claudio, la idea no era hacer un parser
compiler que evalue sintaxis ni esas cosas... pero me parecio
interesante, lo unico que no entiendo de ese tema es como se termina
convirtiendo mi lenguaje en lenguaje smalltalk que ejecute haga cosas
con colecciones y objetos.
Es muy probable que opte por extender alguna coleccion, probablemente
SortedCollection y que le agregue metodos como #select: from: where:,
pero de todos modos me gustaria, en una futura implementacion defenir
un lenguaje para estas cosas. Mas ideas son bienvenidas!,
Saludos,
JM
Gracias! Aunque tiene daños superficiel, tengo que cambiar de
departamento.
Saludos,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.