Lecture Notes in Computer Science
7554
Commenced Publication in 1973
Founding and Former Series Editors:
Gerhard Goos, Juris Hartmanis, and Jan van Leeuwen
Editorial Board
David HutchisonLancaster University, UK
Takeo Kanade
Carnegie Mellon University, Pittsburgh, PA, USA
Josef Kittler
University of Surrey, Guildford, UK
Jon M. Kleinberg
Cornell University, Ithaca, NY, USA
Alfred Kobsa
University of California, Irvine, CA, USA
Friedemann Mattern
ETH Zurich, Switzerland
John C. Mitchell
Stanford University, CA, USA
Moni Naor
Weizmann Institute of Science, Rehovot, Israel
Oscar Nierstrasz
University of Bern, Switzerland
C. Pandu Rangan
Indian Institute of Technology, Madras, India
Bernhard Steffen
TU Dortmund University, Germany
Madhu Sudan
Microsoft Research, Cambridge, MA, USA
Demetri Terzopoulos
University of California, Los Angeles, CA, USA
Doug Tygar
University of California, Berkeley, CA, USA
Gerhard Weikum
Francisco Heron de Carvalho Junior
Luis Soares Barbosa (Eds.)
Programming
Languages
16th Brazilian Symposium, SBLP 2012
Natal, Brazil, September 23-28, 2012
Proceedings
Volume Editors
Francisco Heron de Carvalho Junior
Universidade Federal do Ceará, Departamento de Computação Campus Universitário do Pici, Bloco 910, 60440-900 Fortaleza, Brazil E-mail: heron@lia.ufc.br
Luis Soares Barbosa
Universidade do Minho, Departamento de Informática Campus de Gualtar, 4710-057 Braga, Portugal E-mail: lsb@di.uminho.pt
ISSN 0302-9743 e-ISSN 1611-3349
ISBN 978-3-642-33181-7 e-ISBN 978-3-642-33182-4 DOI 10.1007/978-3-642-33182-4
Springer Heidelberg Dordrecht London New York Library of Congress Control Number: 2012945547
CR Subject Classification (1998): D.3.1-2, D.3.4, D.2.5-6, D.2.9, D.1.5, D.2.11 LNCS Sublibrary: SL 2 – Programming and Software Engineering
© Springer-Verlag Berlin Heidelberg 2012
This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting, reproduction on microfilms or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer. Violations are liable to prosecution under the German Copyright Law.
The use of general descriptive names, registered names, trademarks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use.
Typesetting: Camera-ready by author, data conversion by Scientific Publishing Services, Chennai, India
Printed on acid-free paper
Preface
The Brazilian Symposium on Programming Languages (SBLP) is an annual con-ference that has been promoted by the Brazilian Computer Society (SBC) since 1996. In the last three years, it has been organized in the context of CBSOFT (Brazilian Conference on Software: Theory and Practice), co-located with a num-ber of other events on computer science and software engineering.
SBLP 2012 was its 16th edition held in Natal, Brazil. It was organized by the Department of Informatics and Applied Mathematics (DIMAP) of the Federal University of Rio Grande do Norte (UFRN), collocated with the 2012 editions of SBMF (Brazilian Symposium on Formal Methods), SBES (Brazilian Sympo-sium on Software Engineering), and SBCARS (Brazilian SympoSympo-sium on Software Components, Architecture and Reuse), under CBSOFT 2012. The previous edi-tions of SBLP were held in S˜ao Paulo (2011), Salvador (2010), Gramado (2009), Fortaleza (2008), Natal (2007), Itatiaia (2006), Recife (2005), Niter´oi (2004), Ouro Preto (2003), Rio de Janeiro (2002), Curitiba (2001), Recife (2000), Porto Alegre (1999), Campinas (1997), and Belo Horizonte (1996).
The Program Committee (PC) of SBLP 2012 was formed by 36 members, from 10 countries. The Committee was responsible for selecting 10 full papers and 2 short papers from a total of 27 submissions, with authors from Brazil, Czech Republic, France, Netherlands, Portugal, USA and Uruguay. Each paper was reviewed by at least five reviewers, including 21 reviewers outside the PC. The refereeing reports were discussed by the reviewers, generally leading to a consensus. The final selection was made by the Program Committee Co-chairs, based on the final evaluations but also taking into account the reviewers reports as well as all comments received during the discussion phase. As in previous edi-tions, the authors of the 10 full papers were invited to submit extended versions of their works to be considered for publication in a special issue of a reputed journal in computer science.
The technical program of SBLP 2012 also included keynote talks from Bern-hard K. Aichernig (Graz University of Technology, Austria), entitled “The Sci-ence of Killing Bugs in a Black Box”, and Luis S. Barbosa (Universidade do Minho, Portugal), entitled “Software Components as Invariant-Typed Arrows.” Finally, we would like to thank all members of the PC for their efforts, the referees for their reviews and contribution to the final discussion, the invited speakers for accepting our invitation and enriching the technical program with interesting talks, and all the authors, the sponsors and the Organizing Commit-tee of CBSOFT 2012 for contributing to the success of SBLP 2012.
September 2012 Francisco Heron de Carvalho Junior Luis Soares Barbosa
Organization
SBLP 2012 was organized by the Department of Informatics and Applied Mathe-matics, Federal University of Rio Grande do Norte, and sponsored by the Brazil-ian Computer Society (SBC), in the context of CBSOFT 2012 (Third BrazilBrazil-ian Conference on Software: Theory and Practice).
Organizing Committee
N´elio Cacho UFRN, Brazil Martin Musicante UFRN, Brazil
Steering Committee
Christiano Braga UFF, Brazil Ricardo Massa Ferreira Lima UFPE, Brazil Andr´e Luis de Medeiros Santos UFPE, Brazil Francisco Carvalho Junior UFC, Brazil
Program Committee Chairs
Francisco Carvalho Junior UFC, Brazil
Luis Soares Barbosa Universidade do Minho, Portugal
Program Committee
Alberto Pardo Universidad de La Republica, Uruguay Alex Garcia IME, Brazil
Alvaro Freitas Moreira UFRGS, Brazil Andr´e Rauber Du Bois UFPel, Brazil Andre Santos UFPE, Brazil Carlos Camar˜ao UFMG, Brazil Christiano Braga UFF, Brazil Fernando Castor Filho UFPE, Brazil Fernando Quint˜ao Pereira UFMG, Brazil
Jo˜ao Saraiva Universidade do Minho, Portugal Jo˜ao F. Ferreira Teesside University, UK
Jonathan Aldrich Carnegie Mellon University, USA Jos´e Luiz Fiadeiro University of Leicester, UK Lucilia Figueiredo UFOP, Brazil
VIII Organization
Marcelo A. Maia UFU, Brazil
Marcello Bonsangue Leiden University/CWI, The Netherlands Marcelo d’Amorim UFPE, Brazil
Marco Tulio Valente UFMG, Brazil Mariza A. S. Bigonha UFMG, Brazil Martin A. Musicante UFRN, Brazil Noemi Rodriguez PUC-Rio, Brazil Paulo Borba UFPE, Brazil
Peter Mosses Swansea University, UK Qiu Zongyang Peking University, China Rafael Dueire Lins UFPE, Brazil
Renato Cerqueira PUC-Rio, Brazil Ricardo Massa UFPE, Brazil Roberto S. Bigonha UFMG, Brazil Roberto Ierusalimschy PUC-Rio, Brazil Sandro Rigo UNICAMP, Brazil S´ergio Soares UFPE, Brazil
Simon Thompson University of Kent, UK Varmo Vene University of Tartu, Estonian
Additional Referees
T. M. Gawlitza V. Vojdani M. Garcia J. Mendes J. Barbosa V. Rebello S. Gouw L. Santos A. Annamaa P. Martins N. Oliveira M. Viera H. Yang A. Sanchez G. Albuquerque-Junior C. Vieira H. Rebˆelo J. Saraiva L. SierraSponsoring Institutions
CNPq - Conselho Nacional de Desenvolvimento Cient´ıfico e Tecnol´ogico http://www.cnpq.br
CAPES - Coordena¸c˜ao de Aperfei¸coamento de Pessoal de N´ıvel Superior http://www.capes.gov.br
Minist´erio da Educa¸c˜ao, Brazilian Government http://www.mec.gov.br
Instituto Nacional de Ciˆencia e Tecnologia para Engenharia de Software http://www.ines.org.br
Microsoft Research
http://research.microsoft.com NatalCard
Table of Contents
Software Components as Invariant-Typed Arrows (Keynote Talk) . . . . 1
Luis Soares Barbosa
The Science of Killing Bugs in a Black Box (Keynote Talk). . . . 6
Bernhard Klaus Aichernig
Spill Code Placement for SIMD Machines. . . . 12
Diogo Nunes Sampaio, Elie Gedeon,
Fernando Magno Quint˜ao Pereira, and Sylvain Collange
Left Recursion in Parsing Expression Grammars. . . . 27
S´ergio Medeiros, Fabio Mascarenhas, and Roberto Ierusalimschy
Speed and Precision in Range Analysis . . . . 42
Victor Hugo Sperle Campos, Raphael Ernani Rodrigues,
Igor Rafael de Assis Costa, and Fernando Magno Quint˜ao Pereira
Parameter Based Constant Propagation. . . . 57
P´ericles Rafael Oliveira Alves, Igor Rafael de Assis Costa, Fernando Magno Quint˜ao Pereira, and Eduardo Lage Figueiredo
Adaptable Parsing Expression Grammars . . . . 72
Leonardo Vieira dos Santos Reis, Roberto da Silva Bigonha, Vladimir Oliveira Di Iorio, and Luis Eduardo de Souza Amorim
Optimizing a Geomodeling Domain Specific Language . . . . 87
Bruno Morais Ferreira, Fernando Magno Quint˜ao Pereira, Hermann Rodrigues, and Britaldo Silveira Soares-Filho
A System for Runtime Type Introspection in C++. . . . 102
Maximilien de Bayser and Renato Cerqueira
Model-Based Programming Environments for Spreadsheets. . . . 117
J´acome Cunha, Jo˜ao Saraiva, and Joost Visser
A Quantitative Assessment of Aspectual Feature Modules for Evolving
Software Product Lines. . . . 134
Felipe Nunes Gaia, Gabriel Coutinho Sousa Ferreira, Eduardo Figueiredo, and Marcelo de Almeida Maia
Attribute Grammar Macros . . . . 150
Marcos Viera and Doaitse Swierstra