[MHF+07]
Julio Mariño, Ángel Herranz, Lars-Åke Fredlund, Manuel Carro, Víctor Pablos-Ceruelo, Guillem Marpons, and Juan José Moreno-Navarro. Study of existing coding rule formalisms and compendium of common hazards. Use of coding rules in software industry. Technical report, Facultad de Informática, Universidad Politécnica de Madrid, Boadilla del Monte, Madrid, Spain, November 2007. [ bib ]
[MMH+07a]
Guillem Marpons, Julio Mariño, Ángel Herranz, Lars-Åke Fredlund, Manuel Carro, and Juan José Moreno-Navarro. Automatic coding rule conformance checking using logic programs. CoRR, abs/0711.0344, November 2007. [ bib | http ]
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 -- structural rules -- can be reformulated as logic programs. Some real examples, including Prolog code formalising them, are shown and discussed.

[GM07b]
Álvaro García-Pérez and Nelson Medinilla Martínez. The ambiguity criterion in software design. International Workshop on Living with Uncertainties 2007 (IWLU'07), Co-located with the 22nd International conference on Automated Software engineering (ASE'07), November 2007. [ bib | .html ]
[Gal07]
Emilio Jesús Gallego Arias. Relational unification. Master's thesis, Facultad de Informática, Universidad Politécnica de Madrid, October 2007. Advisor: James Lipton. [ bib ]
[FS07b]
Lars-Åke Fredlund and H. Svensson. McErlang: a model checker for a distributed functional programming language. In Proceedings of the 12th ACM SIGPLAN International conference on functional programming (ICFP 2007), October 2007. [ bib ]
We present a model checker for verifying distributed programs written in the Erlang programming language. Providing a model checker for Erlang is especially rewarding since the language is by now being seen as a very capable platform for developing industrial strength distributed applications with excellent failure tolerance characteristics. In contrast to most other Erlang verification attempts, we provide support for a very substantial part of the language. The model checker has full Erlang data type support, support for general process communication, node semantics (inter-process behave subtly different from intra-process communication), fault detection and fault tolerance through process linking, and can verify programs written using the OTP Erlang component library (used by most modern Erlang programs). As the model checking tool is itself implemented in Erlang we benefit from the advantages that a (dynamically typed) functional programming language offers: easy prototyping and experimentation with new verification algorithms, rich executable models that use complex data structures directly programmed in Erlang, the ability to treat executable models interchangeably as programs (to be executed directly by the Erlang interpreter) and data, and not least the possibility to cleanly structure and to cleanly combine various verification sub-tasks. In the paper we discuss the design of the tool and provide early indications on its performance.

[SF07a]
H. Svensson and Lars-Åke Fredlund. A more accurate semantics for distributed Erlang. In Proceedings of the 2007 ACM SIGPLAN Erlang Workshop, October 2007. [ bib ]
In order to formally reason about distributed Erlang systems, it is necessary to have a formal semantics. In a previous paper we have proposed such a semantics for distributed Erlang. However, recent work with a model checker for Erlang revealed that the previous attempt was not good enough. In this paper we present a more accurate semantics includes several modifications and additions to the semantics for distributed Erlang proposed by Claesson and Svensson in 2005, which in turn is an extension to Fredlund's formal single-node semantics for Erlang. The most distinct addition to the previous semantics is the possibility to correctly model disconnected nodes.

[SF07b]
H. Svensson and Lars-Åke Fredlund. Programming distributed Erlang applications: pitfalls and recipes. In Proceedings of the 2007 ACM SIGPLAN Erlang Workshop, October 2007. [ bib ]
We investigate the distributed part of the Erlang programming language, with an aim to develop robust distributed systems and algorithms running on top of Erlang runtime systems. Although the step to convert an application running on a single node to a fully distributed (multi-node) application is deceptively simple (changing calls to spawn so that processes are spawned on different nodes), there are some corner cases in the Erlang language and API where the introduction of distribution can cause problems. In this paper we discuss a number of such pitfalls, where the semantics of communicating processes differs significantly depending if the processes reside on the same node or not, we also provide some guidelines for safe programming of distributed systems.

[TF07]
S. Thompson and Lars-Åke Fredlund, editors. Proceedings of the 2007 ACM SIGPLAN Erlang Workshop, October 2007. [ bib ]
Proceedings of the 2007 ACM SIGPLAN Erlang Workshop.

[Nog07a]
Pablo Nogueira. When is an abstract data type a functor? In Henrik Nilsson, editor, Trends in Functional Programming, volume 7, chapter 13, pages 217--231. Intellect, September 30 2007. Winner of Best Student Paper Award. [ bib | .pdf ]
A parametric algebraic data type is a functor when we can apply a function to its data components while satisfying certain equations. We investigate whether parametric abstract data types can be functors. We provide a general definition for their map operation that needs only satisfy one equation. The definability of this map depends on properties of interfaces and is a sufficient condition for functoriality. Instances of the definition for particular abstract types can then be constructed using their axiomatic semantics. The definition and the equation can be adapted to determine, necessarily and sufficiently, whether an ADT is a functor for a given implementation

[FC07]
Cristóbal Pareja Flores and Julio Mariño Carballo. Papiroflexia. Novática, 1(189):73--75, September 2007. [ bib ]
[MMH+07b]
Guillem Marpons, Julio Mariño, Ángel Herranz, Lars-Åke Fredlund, Manuel Carro, and Juan José Moreno-Navarro. Automatic coding rule conformance checking using logic programs. In Patricia Hill and Vim Vanhoof, editors, 17th Workshop on Logic-based methods in Programming Environments, WLPE 2007, page 47, Porto, Portugal, September 2007. [ bib | http ]
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 -- structural rules -- can be reformulated as logic programs. Some real examples, including Prolog code formalising them, are shown and discussed.

[MMH+07c]
Guillem Marpons, Julio Mariño, Ángel Herranz, Lars-Åke Fredlund, Manuel Carro, and Juan José Moreno-Navarro. Towards checking coding rule conformance using logic programming, August 2007. Poster at the 14th International Static Analysis Symposium, SAS 2007. [ bib | .pdf ]
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 -- 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.

[LN07]
James Lipton and Susana Nieva. Higher-order logic programming languages with constraints: A semantics. In Typed Lambda Calculi and Applications, volume 4583 of Lecture Notes in Computer Science, pages 272--289, Paris, France, June 26--28 2007. Springer. [ bib ]
[GMR07a]
Emilio Jesús Gallego Arias, Julio Mariño-Carballo, and José María Rey Poza. A generic semantics for constraint functional logic programming. In Proc. of the 16th Int'l Workshop on Functional and (Constraint) Logic Programming (WFLP 2007), Paris, France, June 25 2007. [ bib ]
[MHW07a]
Susana Muñoz-Hernández and Wiratna Sari Wiguna. Fuzzy cognitive layer in robocupsoccer. In 12th International Fuzzy Systems Association World Congress (IFSA 2007). Foundations of Fuzzy Logic and Soft Computing, pages 635--645, Cancún, México, June 2007. Springer. [ bib ]
[Nog07b]
Pablo Nogueira. When is an abstract data type a functor? In Henrik Nilsson, editor, Proceedings of the 7th Symposium on Trends in Functional Programming - TFP'06, pages 217--231, Nottingham, UK, April 19-21 2007. Winner of Best Student Paper Award. [ bib | .pdf ]
A parametric algebraic data type is a functor when we can apply a function to its data components while satisfying certain equations. We investigate whether parametric abstract data types can be functors. We provide a general definition for their map operation that needs only satisfy one equation. The definability of this map depends on properties of interfaces and is a sufficient condition for functoriality. Instances of the definition for particular abstract types can then be constructed using their axiomatic semantics. The definition and the equation can be adapted to determine, necessarily and sufficiently, whether an ADT is a functor for a given implementation

[MHW07b]
Susana Muñoz-Hernández and Wiratna Sari Wiguna. Fuzzy prolog as cognitive layer in robocupsoccer. In IEEE Symposium on Computational Intelligence and Games (2007 IEEE Symposia Series in Computational Intelligence), IEEE, pages 340--345, Honolulu, Hawaii, April 2007. [ bib ]
[HM07]
Ángel Herranz and Juan José Moreno-Navarro. Design Pattern Formalization Techniques, chapter Modeling and Reasoning about Design Patterns in SLAM-SL. IGI Publishing, March 2007. Other ISBN: 978-1-59904-221-3. [ bib | .pdf ]
The main main subject of the chapter is how design patterns can be described as class operations. Additionally, we describe two possible applications: how to reason about design patterns, and how a design can be automatically refactored using design patterns.

[FS07a]
Lars-Åke Fredlund and J. Sánchez Penas. Model checking a video-on-demand server using mcErlang. In Proceedings of the 11th International Conference on Computer Aided Systems Theory (Eurocast 2007), volume 4739 of LNCS. Springer, February 2007. [ bib ]
The article describes a method to obtain performance measurements from complex distributed systems using a model checking approach. We illustrate the approach by applying it to a video-on-demand application developed in Erlang. To obtain performance measurements concerning e.g. streaming capacity, and identify system bottlenecks, we used the McErlang model checker which implements a large part of the Erlang API. Answers to capacity queries are computed as measures over paths in the system state graph, and the combination of an on-the-fly model checker (not requiring the generation of the complete state graph) with a powerful language (Erlang itself) for expressing correctness claims, made it possible to analyse substantially sized systems.

[Gab07a]
Murdoch J. Gabbay. Fresh logic: proof-theory and semantics for fm and nominal techniques. Journal of Applied Logic, 5(2):356--387, 2007. [ bib | .pdf ]
In this paper we introduce Fresh Logic, a natural deduction style first-order logic extended with term-formers and quantifiers derived from the FM-sets model of names and binding in abstract syntax. Fresh Logic can be classical or intuitionistic depending on whether we include a law of excluded middle; we present a proof-normalisation procedure for the intuitionistic case and a semantics based on Kripke models in FM-sets for which it is sound and complete.

[Gab07b]
Murdoch J. Gabbay. A general mathematics of names. Information and Computation, 205(7):982--1011, 2007. [ bib | .pdf ]
We introduce FMG (Fraenkel-Mostowski Generalised) set theory, a generalisation of FM set theory which allows binding of infinitely many names instead of just finitely many names. We apply this generalisation to show how three presentations of syntax--de Bruijn indices, FM sets, and name-carrying syntax--have a relation generalising to all sets and not only sets of syntax trees. We also give syntax-free accounts of Barendregt representatives, scope extrusion, and other phenomena associated to α-equivalence. Our presentation uses a novel presentation based not on a theory but on a concrete model U.

[FG07]
Maribel Fernández and Murdoch J. Gabbay. Nominal rewriting (journal version). Information and Computation, 205(6):917--965, 2007. [ bib | .pdf ]
Nominal rewriting is based on the observation that if we add support for α-equivalence to first-order syntax using the nominal-set approach, then systems with binding, including higher-order reduction schemes such as λ-calculus beta-reduction, can be smoothly represented. Nominal rewriting maintains a strict distinction between variables of the object-language (atoms) and of the meta-language (variables or unknowns). Atoms may be bound by a special abstraction operation, but variables cannot be bound, giving the framework a pronounced first-order character, since substitution of terms for variables is not capture-avoiding. We show how good properties of first-order rewriting survive the extension, by giving an efficient rewriting algorithm, a critical pair lemma, and a confluence theorem for orthogonal systems.

[Gab07c]
Murdoch J. Gabbay. Hierarchical nominal terms and their theory of rewriting. Electronic Notes in Theoretical Computer Science, 174(5):37--52, 2007. [ bib | .pdf ]
Nominal rewriting introduced a novel method of specifying rewriting on syntax-with-binding. We extend this treatment of rewriting with hierarchy of variables representing increasingly 'meta-level' variables, e.g. in hierarchical nominal term rewriting the meta-level unknowns (representing unknown terms) in a rewrite rule can be 'folded into' the syntax itself (and rewritten). To the extent that rewriting is a mathematical meta-framework for logic and computation, and nominal rewriting is a framework with native support for binders, hierarchical nominal term rewriting is a meta-to-the-omega level framework for logic and computation with binders.

[GM07a]
Murdoch J. Gabbay and Aad Mathijssen. A formal calculus for informal equality with binding. In Proceedings of WOLLIC'07, volume 4576 of Lecture Notes in Computer Science, pages 162--176, 2007. [ bib | .pdf ]
In informal mathematical usage we often reason using languages with binding. We usually find ourselves placing capture-avoidance constraints on where variables can and cannot occur free. We describe a logical derivation system which allows a direct formalisation of such assertions, along with a direct formalisation of their constraints. We base our logic on equality, probably the simplest available judgement form. In spite of this, we can axiomatise systems of logic and computation such as first-order logic or the lambda-calculus in a very direct and natural way. We investigate the theory of derivations, prove a suitable semantics sound and complete, and discuss existing and future research.

[MHM07]
Julio Mariño, Ángel Herranz, and Juan José Moreno-Navarro. Demand analysis with partial predicates. Theory and Practice of Logic Programming, 7(1-2):153--182, January 2007. [ bib ]
[GMR07b]
Emilio Jesús Gallego Arias, Julio Mariño-Carballo, and José María Rey Poza. A proposal for disequality constraints in curry. Electr. Notes Theor. Comput. Sci., 177:269--285, 2007. [ bib ]
We describe the introduction of disequality constraints over algebraic data terms in the functional logic language Curry, and their implementation in Sloth, our Curry compiler. This addition extends the standard definition of Curry in several ways. On one hand, we provide a disequality counterpart to the constraint equality operator (=:=). Secondly, boolean equality operators are also redefined to cope with constructive disequality information, which leads to a more symmetric design w.r.t. the existing one. Semantically speaking, our implementation is very similar to previous proposals, although there are some novel aspects. One of them is that the implementation is partly based on an existing finite domain (FD) constraint solver, which provides a more efficient execution in some examples and, more important, the first complete implementation of disequality constraints over finite types. A detailed description of the finite type case is provided, including: (i) the use of the FD solver; (ii) an algorithm for analysing cardinality of types, and (iii) how to deal with cardinality information at run time. Some benchmarks, an operational semantics minimally extending the one in the Curry draft, and a moderately detailed description of the implementation complete the paper.

[FS07c]
Lars-Åke Fredlund and H. Svensson. McErlang: a model checker for a distributed functional programming language. ACM SIGPLAN Notices, 42(9):125--136, 2007. [ bib ]
We present a model checker for verifying distributed programs written in the Erlang programming language. Providing a model checker for Erlang is especially rewarding since the language is by now being seen as a very capable platform for developing industrial strength distributed applications with excellent failure tolerance characteristics. In contrast to most other Erlang verification attempts, we provide support for a very substantial part of the language. The model checker has full Erlang data type support, support for general process communication, node semantics (inter-process behave subtly different from intra-process communication), fault detection and fault tolerance through process linking, and can verify programs written using the OTP Erlang component library (used by most modern Erlang programs). As the model checking tool is itself implemented in Erlang we benefit from the advantages that a (dynamically typed) functional programming language offers: easy prototyping and experimentation with new verification algorithms, rich executable models that use complex data structures directly programmed in Erlang, the ability to treat executable models interchangeably as programs (to be executed directly by the Erlang interpreter) and data, and not least the possibility to cleanly structure and to cleanly combine various verification sub-tasks. In the paper we discuss the design of the tool and provide early indications on its performance.


This file was generated by bibtex2html 1.98.