publications.bib

@comment{{This file has been generated by bib2bib 1.95}}
@comment{{Command line: /usr/bin/bib2bib -c 'author : "Marpons"'}}
@unpublished{gm-imdea2011,
  tipoactividad = {Cursos, seminarios y tutoriales},
  internacional = {yes},
  author = {Guillem Marpons},
  title = {Layered Coding Rule Definition and Enforcing Using
                  {LLVM}},
  note = {Talk at {IMDEA} Software, Theory Lunch},
  revisores = {no},
  abstract = {Coding rules are used in industry to enforce good
                  software practices that improve software reliability
                  and maintainability. Some examples of standard rule
                  sets are {MISRA-C/C++} and High Integrity C++.  In a
                  previous work we developed a framework to formalize
                  coding rules as logic programs, that can be later
                  run on a knowledge base of the program to
                  inspect. In order to formalize all the rules in
                  standard sets the knowledge base needs to contain
                  information about the program that ranges from
                  syntactic to undecidable semantic properties. As
                  many of the complex properties that coding rules
                  depend upon (or approximations to them) are computed
                  by static analyzers present in the literature, we
                  aim at reusing them presenting their result in a
                  uniform way that can be easily understood and
                  combined by engineers responsible for defining new
                  rules. In fact, some of those analyzes are
                  implemented in modern compilers, but their results
                  are almost exclusively applied to optimization.  In
                  this talk we present initial work on trying to use
                  the {LLVM} compiling infrastructure (http://llvm.org)
                  for enriching our program facts base with pointer
                  aliasing information, and how this information can
                  be used to define and enforce actual coding rules.},
  organization = {The {IMDEA} Software Institute, Spain},
  address = {Montegancedo Science and Technology Park, Madrid, Spain},
  month = {April 26},
  year = 2011,
  pdf = {http://babel.ls.fi.upm.es/~gmarpons/pubs/IMDEAtheoryLunch2011LayeredAnalysis.pdf}
}
@article{DBLP:journals_entcs_Marpons-UceroMCHFMP09,
  author = {Guillem Marpons and Julio Mariño and Manuel Carro and
                  {Ángel} Herranz and Lars-{\AA}ke Fredlund and
                  {Juan José {Moreno-Navarro}} and {Álvaro} Polo},
  title = {A Coding Rule Conformance Checker Integrated into {GCC}},
  journal = {ENTCS},
  volume = 248,
  year = 2009,
  month = {August 5},
  pages = {149-159},
  url = {http://dx.doi.org/10.1016/j.entcs.2009.07.065},
  bibsource = {DBLP, http://dblp.uni-trier.de},
  tipoactividad = {Artículos en revistas},
  internacional = {yes},
  abstract = {Coding rules are often used in industry to foster best
                  practices when coding software and to avoid the many
                  hazardous constructions present in languages such as
                  C or C++. Predictable, reliable tools are needed to
                  automatically measure adherence to these practices,
                  as manually checking for compliance is
                  cumbersome. Moreover, due to the wide range of
                  possible coding rule sets, easy of customization is
                  a need in order for these tools to be of practical
                  use. With this aim in mind, we present an extension
                  of the GNU Compiler Collection (GCC) that flags
                  those code fragments that do not conform to coding
                  rules belonging to a given set. These sets of coding
                  rules can be defined using a high-level declarative
                  language based on logic programming, thereby making
                  it possible to easily check code for conformance
                  with respect to rules addressing the particular
                  needs of a project, company, or application area.},
  issn = {1571-0661}
}
@inproceedings{crisp_tutorial_08,
  tipoactividad = {Cursos, seminarios y tutoriales},
  internacional = {yes},
  author = {Guillem Marpons},
  title = {Tutorial: {GGCC} Coding Rules with {CRISP}},
  descripcion = {Tutorial sobre el lenguaje de definición de reglas
                  de codificación CRISP, impartido a todos los socios
                  industriales del proyecto Global GCC.},
  pdf = {http://www.ggcc.info/files/CRISPtutorial20080910.pdf},
  booktitle = {Global GCC Project Seminar},
  year = 2008,
  address = {MANDRIVA S.A., 43, rue d'Aboukir, 75002 Paris,
                  France},
  month = {September 10}
}
@inproceedings{crisp_action_cost,
  tipoactividad = {Conferencias invitadas en congresos},
  internacional = {yes},
  author = {Guillem Marpons},
  title = {Checking Coding Rules in {OO} Languages Using {CRISP}},
  descripcion = {Charla impartida a los miembros de la acción COST
                  ic0701 sobre el lenguaje de definición de reglas de
                  codificación CRISP.},
  pdf = {http://babel.ls.fi.upm.es/~gmarpons/pubs/COSTaction08CRISPpresentation.pdf},
  booktitle = {COST Action IC0701 2nd Meeting},
  year = 2008,
  address = {Madrid, Spain},
  month = {December}
}
@inproceedings{marpons08:_codin_rule_confor_check_integ_into_gcc,
  tipoactividad = {Ponencias en congresos},
  internacional = {no},
  revisores = {yes},
  author = {Guillem Marpons and Julio Mariño and Manuel Carro and {Ángel}
                  Herranz and Lars-{\AA}ke Fredlund and Juan José
                  {Moreno-Navarro} and {Álvaro} Polo},
  title = {A Coding Rule Conformance Checker Integrated into {GCC}},
  abstract = { Coding rules are often used in industry for codifying
                  software best practices and avoiding the many hazardous
                  constructions present in languages such as C or
                  C++. Predictable and customisable tools are needed to
                  automatically measure adherence to these practices.  Many of
                  the properties about software needed for rule conformance
                  analysis are calculated by modern compilers.  We present an
                  extension of the GNU Compiler Collection (GCC) that flags
                  those code fragments that do not conform to a given set of
                  rules. The user can define coding rules using a high-level
                  declarative language based on logic programming.  },
  booktitle = {VIII Jornadas sobre Programación y Lenguajes, {PROLE} 2008},
  pages = {245--249},
  address = {Gijón, Spain},
  editor = {Jesús M. {Almendros Jiménez} and María José {Suárez-Cabal}},
  month = {October 7--10},
  year = 2008,
  isbn = {978-84-612-5819-2},
  pdf = {http://babel.ls.fi.upm.es/~gmarpons/pubs/PROLE08Codingrules.pdf}
}
@inproceedings{marpons08:_addin_codin_rule_check_capab,
  tipoactividad = {Ponencias en congresos},
  internacional = {yes},
  revisores = {yes},
  author = {Guillem Marpons and Julio Mariño and {Álvaro} Polo},
  title = {Adding Coding Rule Checking Capabilities to the {GCC}
                  Toolchain},
  abstract = {Coding rules, which codify software best practices by
                  constraining the set of ``admissible'' programs, are often
                  used in industry to increase program reliability and
                  maintainability. We present a tool that seamlessly
                  integrates coding rule checking capabilities into the main
                  development work-flow. In the proposed framework, the
                  necessary source code features are extracted from the GCC
                  compilation process. In this way, both compiler
                  infrastructure and compilation stages can be reused. The
                  coding rules themselves are defined using a high-level
                  declarative language.  },
  booktitle = {Proceedings of the {GCC} Developers' Summit 2008},
  address = {Ottawa, Canada},
  month = {June 17--19},
  year = 2008,
  editor = {Andrew J. Hutton and C. Craig Ross and John W. Lockhart},
  pages = {43--54},
  pdf = {http://ols.fedoraproject.org/GCC/Reprints-2008/marpons-reprint.pdf}
}
@inproceedings{marpons08:_autom_codin_rule_confor_check,
  tipoactividad = {Ponencias en congresos},
  internacional = {yes},
  revisores = {yes},
  title = {Automatic Coding Rule Conformance Checking Using Logic
                  Programming},
  author = {Guillem Marpons and Julio {Mari{\~n}o-Carballo} and Manuel
                  Carro and {Ángel} Herranz and Juan Jos{\'e} {Moreno-Navarro}
                  and Lars-{\AA}ke Fredlund},
  abstract = {An extended practice in the realm of Software Engineering
                  and programming in industry is the application of
                  \emph{coding rules}. Coding rules are customarily used to
                  constrain the use (or abuse) of certain programming language
                  constructions.  However, these rules are usually written
                  using natural language, which is intrinsically ambiguous and
                  which may complicate their use and hinder their automatic
                  enforcement.  This paper presents some early work aiming at
                  defining a framework to formalise and check for coding rule
                  conformance using logic programming.  We show how a certain
                  class of rules -- \emph{structural} rules -- can be
                  reformulated as logic programs, which provides both a
                  framework for formal specification and also for automatic
                  conformance checking using a Prolog engine.  Some examples
                  of rules belonging to actual, third-party coding rule sets
                  are discussed, along with the corresponding Prolog code.
                  Experimental data regarding the practicality and impact of
                  their application to real-life software projects is
                  presented and discussed.  },
  booktitle = {Practical Aspects of Declarative Languages, 10th
                  International Symposium, {PADL} 2008},
  publisher = {Springer},
  year = 2008,
  month = {January 7--8},
  address = {San Francisco {CA}, {USA}},
  volume = 4902,
  editor = {Paul Hudak and David Scott Warren},
  isbn = {978-3-540-77441-9},
  pages = {18--34},
  series = {Lecture Notes in Computer Science},
  url = {http://dx.doi.org/10.1007/978-3-540-77442-6_3}
}
@techreport{xmc:2007:_study_of_exist_codin_rule,
  tipoactividad = {Otras publicaciones},
  internacional = {yes},
  author = {Julio Mariño and {Ángel} Herranz and Lars-{\AA}ke Fredlund and
                  Manuel Carro and V{\'i}ctor {Pablos-Ceruelo} and Guillem Marpons and Juan
                  José {Moreno-Navarro}},
  title = {Study of existing coding rule formalisms and compendium of
                  common hazards.  {U}se of Coding Rules in Software Industry},
  descripcion = {Estudio de los formalismos existentes para reglas de
                  codificación, relación de riesgos de software más comunes y
                  resultados de encuesta a socios del proyecto {GlobalGCC}.},
  institution = {Facultad de Informática, Universidad Politécnica de Madrid},
  year = 2007,
  address = {Boadilla del Monte, Madrid, Spain},
  month = nov,
  annote = {Deliverable for the {GlobalGCC} Project}
}
@inproceedings{marpons:2007:wlpe,
  tipoactividad = {Ponencias en congresos},
  internacional = {yes},
  author = {Guillem Marpons and Julio Mari{\~n}o and {Ángel}
                  Herranz and Lars-{\AA}ke Fredlund and Manuel Carro and Juan
                  Jos{\'e} {Moreno-Navarro}},
  title = {Automatic Coding Rule Conformance Checking Using Logic
                  Programs},
  abstract = { Coding rules are customarily used to constrain the use (or
                  abuse) of certain constructions in a programming language.
                  Standard coding rule sets exist that target different
                  languages and application domains.  However, these rules are
                  usually written using a natural language, which is
                  intrinsically ambiguous, and which may hinder their
                  automatic application.  This short paper presents some early
                  work aiming at defining a framework to formalise and check
                  for coding rule conformance using logic programming.  We
                  show how a certain class of rules -- \emph{structural} rules
                  -- can be reformulated as logic programs.  Some real
                  examples, including Prolog code formalising them, are shown
                  and discussed.  },
  revisores = {yes},
  booktitle = {17th Workshop on Logic-based methods in Programming
                  Environments, {WLPE} 2007},
  pages = 47,
  url = {http://arxiv.org/abs/0711.0344},
  year = 2007,
  editor = {Patricia Hill and Vim Vanhoof},
  address = {Porto, Portugal},
  month = sep
}
@article{marpons:2007:corr,
  author = {Guillem Marpons and Julio Mari{\~n}o and {Ángel}
                  Herranz and Lars-{\AA}ke Fredlund and Manuel Carro and Juan
                  Jos{\'e} {Moreno-Navarro}},
  abstract = { Coding rules are customarily used to constrain the use (or
                  abuse) of certain constructions in a programming language.
                  Standard coding rule sets exist that target different
                  languages and application domains.  However, these rules are
                  usually written using a natural language, which is
                  intrinsically ambiguous, and which may hinder their
                  automatic application.  This short paper presents some early
                  work aiming at defining a framework to formalise and check
                  for coding rule conformance using logic programming.  We
                  show how a certain class of rules -- \emph{structural} rules
                  -- can be reformulated as logic programs.  Some real
                  examples, including Prolog code formalising them, are shown
                  and discussed.  },
  title = {Automatic Coding Rule Conformance Checking Using Logic
                  Programs},
  journal = {CoRR},
  volume = {abs/0711.0344},
  year = 2007,
  month = nov,
  url = {http://arxiv.org/abs/0711.0344},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}
@misc{marpons:2007:sas,
  tipoactividad = {Otras publicaciones},
  internacional = {yes},
  abstract = { This short paper presents some early work in the context of
                  an European project aiming at defining a framework to
                  formalise and check for coding rule conformance using logic
                  programming.  We show how a certain class of rules --
                  \emph{structural} rules -- can be reformulated as logic
                  programs. This provides both a framework for formal
                  specification and also for automatic conformance checking
                  using a Prolog engine.  },
  revisores = {yes},
  author = {Guillem Marpons and Julio Mariño and {Ángel} Herranz and
                  Lars-{\AA}ke Fredlund and Manuel Carro and Juan José
                  {Moreno-Navarro}},
  title = {Towards Checking Coding Rule Conformance Using Logic
                  Programming},
  month = aug,
  year = 2007,
  note = {Poster at the 14th International Static Analysis
                  Symposium, SAS 2007},
  address = {Kongens Lyngby, Denmark},
  pdf = {http://babel.ls.fi.upm.es/~gmarpons/pubs/SAS07CodingrulesPoster.pdf}
}
@inproceedings{DBLP:conf_icsr_ColnetMM06,
  author = {Dominique Colnet and Guillem Marpons and
                  Frederic Merizen},
  title = {Reconciling Subtyping and Code Reuse in
                  Object-Oriented Languages: Using {\tt inherit} and
                  {\tt insert} in {S}mart{E}iffel, the {GNU} {E}iffel
                  Compiler},
  abstract = {SmartEiffel has been enjoying two different
                  mechanisms to express subtyping and implementation
                  inheritance for one year. After large scale
                  practical tests and thanks to user feedback, this
                  paper finalises the new typing policy of
                  SmartEiffel, which combines two forms of multiple
                  inheritance with genericity in one
                  statically-checked, object-oriented language. Having
                  two forms of inheritance allows the designer to
                  capture more design decisions in the source code. It
                  is now straightforward to share reusable code
                  between otherwise unrelated types. The new mechanism
                  allows to reuse code from an existing class without
                  polluting the reuser's interface. It also enables an
                  elegant implementation of some design patterns.
                  Furthermore, this mechanism helps compilers to
                  statically remove more dynamic dispatch code. It can
                  also be used to add a no-penalty and no-risk
                  multiple-inheritance-like construct to a
                  single-inheritance language such as Java.},
  pages = {203-216},
  url = {http://dx.doi.org/10.1007/11763864_15},
  editor = {Maurizio Morisio},
  booktitle = {Reuse of Off-the-Shelf Components, Proceedings of
                  the 9th International Conference on Software Reuse,
                  ICSR 2006},
  publisher = {Springer},
  series = {Lecture Notes in Computer Science},
  volume = 4039,
  year = 2006,
  month = {June 12--15},
  address = {Torino, Italy},
  isbn = {3-540-34606-6}
}

This file was generated by bibtex2html 1.95.