R e v i s t a
BITS
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION
de Ciencia
UNIVERSIDAD DE CHILE
Nº 2 / Primer Semestre 2009
Caracterizando
la Web Chilena
19
Computación y Sociedad Contando
Citas en Artículos de Revistas y
Conferencias
Entrevistas con
Peter Buneman y Ricardo Baeza-Yates
14
30
BITS
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN
Revista
de Ciencia
UNIVERSIDAD DE CHILE
Comité Editorial
Benjamín Bustos
Claudio Gutiérrez
Alejandro Hevia
Gonzalo Navarro
Sergio Ochoa
Editor General
Pablo Barceló
Editora Periodistica
Claudia Páez
Periodísta
Ana G. Martínez
Diseño
Sociedad Publisiga Ltda.
Imagen Portada
Eduardo Graells
Dirección
Departamento de Ciencias
de la Computación
Avda. Blanco Encalada 2120, 3º piso
Santiago, Chile
837-0459 Santiago
www.dcc.uchile.cl
Teléfono: 56-2-9780652
Fax: 56-2-6895531
[email protected]
Revista BITS DE CIENCIA
es una publicación del
Departamento de Ciencias
de la Computación de
la Facultad de Ciencias
Físicas y Matemáticas de
la Universidad de Chile.
La reproducción total o
parcial de sus contenidos
debe citar el nombre de la
Revista y su Institución.
contenidos
investigaciÓn destacada
Regreso al Futuro: Depuración Omnisciente
Guillaume Pothier / Éric Tanter
computación y sociedad
Antes del Internet
José Miguel Piquer
Contando Citas en Artículos de
Revistas y Conferencias
Mauricio Marín
ciencia de la web en chile
Caracterizando la Web Chilena
Eduardo Graells / Ricardo Baeza-Yates
Panorama de la Investigación sobre la Web en Chile
Claudio Gutiérrez / Mauricio Marín
conversaciones
Entrevista Nacional: Ricardo Baeza-Yates
Gonzalo Navarro
Entrevista Internacional: Peter Buneman
Pablo Barceló
Surveys
Análisis de Redes Sociales: Un Tutorial
Mauricio Monsalve Moreno
grupos de investigación
Khipu, Centro para la Investigación
en Bases de Datos
Marcelo Arenas / Jorge Pérez
conferencias
LA WEB 2008
III Alberto Mendelzon Workshop on the
Foundations of Data Management
2
10
14
19
25
30
32
34
40
43
44
EDitorial
La buena recepción por parte de la comunidad al
primer número de la Revista Bits de Ciencia nos ha
impulsado a ser bastante más ambiciosos en este
segundo número. Esto ha implicado tres cambios
fundamentales. El primero salta a la vista, y es que nos
hemos preocupado mucho más del formato. Queremos
así responder positivamente a algunos comentarios de
nuestros alumnos expresando que el primer número
parecía más un artículo científico (escrito en Latex, por
cierto) que una revista propiamente tal. Nos pareció
que tenían razón, y es por eso que nos hemos vestido
de pantalón largo. En particular, la diagramación ha
sido hecha profesionalmente, mejoramos la calidad
del papel e introdujimos el color.
El segundo cambio es que de ahora en adelante cada
número de la revista estará dedicado a un tema en
particular. Para este segundo número elegimos el
tema de la Ciencia de la Web en Chile. Para ello
invitamos a varios de los expertos nacionales del
área a participar. Incluimos respecto de este tema
el estudio de Ricardo Baeza sobre la web en Chile,
el de Claudio Gutiérrez y Mauricio Marín sobre
el desarrollo de la ciencia de la web en el país, el
survey de Mauricio Monsalve sobre redes sociales,
además de un artículo de José Miguel Piquer sobre la
primera conexión a internet en Chile. Sin embargo, y
para no darle un giro completamente monotemático
a la revista, sumamos también en este número otros
artículos de interés general.
El tercer cambio tiene que ver con la estructuración
del contenido de cada número de la revista.
Introdujimos secciones que dividan los diferentes tipos
de artículos, y que sirvan como referencia estructural
para los siguientes números. Por supuesto, este patrón
no es totalmente rígido, y es probable que en el futuro
agregemos nuevas secciones mientras algunas de las
actuales desaparezcan.
Finalmente, me gustaría responder a nombre del
Comité Editorial una pregunta que naturalmente surgió
dentro del Departamento luego del primer número:
¿A quién está dirigida esta revista? Nos encantaría
responder que a la comunidad informática en general.
Pero sabemos que eso es imposible porque no
tenemos ni la experiencia ni el tiempo para hacerlo.
Nuestra respuesta es bastante más modesta: A los
académicos interesados en la computación en Chile,
a nuestros alumnos y a todos los alumnos de ciencia
de la computación del país (y, por qué no, también
del cono sur). Por supuesto, esto sin perjuicio de
querer dirigirnos también a cualquier otra persona
–empresario, funcionario de gobierno, científico,
etc.– que sienta afinidad por el área y tenga amor
por el mundo académico.
La revista está abierta a todos ellos también.
Profesor Pablo Barceló
Editor Revista Bits de Ciencia
investigación destacada
Regreso al Futuro:
Depuración Omnisciente
La depuración es una actividad tediosa y costosa que requiere
una comprensión profunda del comportamiento dinámico de los
programas. Un depurador omnisciente, debido a que permite navegar
en forma transparente en el historial de ejecución de los programas,
facilita la localización de la causa raíz de los errores. ¿Por qué,
entonces, no todos tenemos un depurador omnisciente en nuestro
entorno de desarrollo favorito? Por cierto, para hacer práctica la
depuración omnisciente es necesario superar varios desafíos, pero
¿son acaso estos una barrera definitiva para su adopción? Este
artículo describe TOD, nuestro depurador omnisciente escalable
para Java. TOD se integra en el ambiente de desarrollo Eclipse y
contribuye a hacer práctica la depuración omnisciente.
INTRODUCCIóN
La depuración representa una parte importante del costo del desarrollo de software.
Un estudio del NIST (National Institute of Standards and Technology) de 2002 muestra
que los errores de software tienen un costo enorme sobre la economía de EE.UU. [1] y
menciona que “los desarrolladores ya gastan aproximadamente 80 por ciento de los costos
en identificar y corregir defectos”. En un estudio empírico de “hazañas” de depuración,
Guillaume Pothier
Estudiante de Doctorado en Ciencias
mención Computación, DCC,
Universidad de Chile, bajo la supervisión
del profesor Éric Tanter. Ingeniero en
Ciencia de la Computación, École des
Mines de Nantes, Francia.
[email protected]
Éric Tanter
Profesor Asistente, DCC, Universidad
de Chile. Ph.D. en Computer Science,
Universidad de Nantes y Universidad
de Chile. Lidera el Laboratorio
PLEIAD (Programming Languages
and Environments for Intelligent,
Adaptable, and Distributed Systems).
[email protected]
2
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN
Revista / Bits de Ciencia
Marc Eisenstadt determinó que la principal
causa de la dificultad de encontrar los
errores es la distancia temporal y espacial
entre la causa raíz y el síntoma del error
[2]; una vez que un error está precisamente
localizado, arreglarlo es a menudo trivial.
Desafortunadamente, la mayoría de los
depuradores en uso hoy en día otorgan
una ayuda muy limitada con respecto a la
navegación temporal; los programadores
deben con frecuencia simular mentalmente
la ejecución de sus programas.
Los depuradores omniscientes mejoran de
sobremanera esa situación, permitiendo a
los programadores navegar fácilmente hacia
adelante y atrás en el historial de ejecución
de un programa, así como encontrar de
inmediato la causa raíz de los errores,
gracias a vínculos causales que pueden ser
atravesados hacia atrás en el tiempo [3]. Por
lo tanto, un depurador omnisciente puede
tener un gran impacto sobre la eficiencia
del proceso de desarrollo.
La depuración omnisciente no es, desde
luego, una idea nueva: el primer depurador
omnisciente, EXDAMS [4], fue creado en
1969. Sin embargo, a pesar de las numerosas
propuestas que se han hecho desde
entonces, los depuradores omniscientes
todavía no forman parte del típico ambiente
de desarrollo. ¿Serán acaso los desafíos
de la depuración omnisciente una barrera
definitiva para su adopción?
LA DEPURACIóN
OMNISCIENTE
EN POCAS PALABRAS
Enfoques tradicionales
de depuración
Existen dos enfoques tradicionales para
la depuración: basada en registros, o
logs, y basada en puntos de quiebre, o
breakpoints (Figura 1). El primer enfoque
consiste en insertar instrucciones de registro
en el código fuente para producir una
bitácora ad-hoc durante la ejecución del
programa. Esa técnica revela efectivamente
el historial de ejecución del programa,
pero tiene serios inconvenientes: requiere
modificaciones engorrosas, extendidas
y anticipadas del código fuente, y no es
escalable cuando las bitácoras deben ser
analizadas manualmente.
El segundo enfoque consiste en correr
el programa con una herramienta de
depuración dedicada, que da al programador
la posibilidad de detener la ejecución en
determinados breakpoints, inspeccionar
el contenido de la memoria, y seguir la
ejecución paso a paso. Desafortunadamente,
cuando la ejecución está detenida, la
información acerca de estados y actividades
anteriores del programa está limitada a la que
está accesible desde la pila de activaciones.
Por lo tanto, los desarrolladores que usan
depuradores basados en breakpoints
deben con frecuencia volver a ejecutar el
programa entero con distintos breakpoints
para progresivamente acercarse a la causa
del error.
La depuración omnisciente
Un depurador omnisciente registra en forma
automática el historial completo, o huella
de ejecución, del programa depurado, y
permite al usuario explorarlo libremente
(Figura 1). Este enfoque combina las ventajas
de la depuración basada en registros (la
información sobre la actividad pasada no
se pierde) y las de la depuración basada
en breakpoints (navegación interactiva,
ejecución paso a paso, inspección de la pila
de activación completa). Los depuradores
omniscientes simulan
Comentarios de: Bits de ciencia 02 (0)
No hay comentarios