Skip to main content
Research Interests:
Research Interests:
Research Interests:
In this paper, an algorithmic study of how to compare object-oriented conceptual schemas in a data migration context is carried out. An algorithm is presented based on the tree-comparison technique that compares conceptual schemas. The... more
In this paper, an algorithmic study of how to compare object-oriented conceptual schemas in a data migration context is carried out. An algorithm is presented based on the tree-comparison technique that compares conceptual schemas. The algorithm uses semantic information in order to optimize efficiency. A template of the equivalences and differences between two schemas is generated in an automatic way.
... Available at: http://www.dsic.upv.es/ jsilva/papers/TechReport-IF.pdf [12] W3C Consortium, Document Object Model (DOM). www.w3.org/DOM [13] CJ Castillo, H. Valero, J. Silva. Web Information Retrieval Based on Syntax Distances. ...
Research Interests:
Algorithmic debugging is a debugging technique which relies on the program- mer having an intended interpretation of the program. In other words, some computations of the program are correct and others are wrong with respect to the... more
Algorithmic debugging is a debugging technique which relies on the program- mer having an intended interpretation of the program. In other words, some computations of the program are correct and others are wrong with respect to the programmer's intended semantics. Therefore, algorithmic debuggers com- pare the results of sub-computations with what the programmer intended. By asking the programmer questions or using a formal speciflcation the system can identify precisely the location of a program's bug. Essentially, algorithmic debugging is a two-phase process: An execution tree (see, e.g., (13)), ET for short, is built during the flrst phase. Each node in this ET corresponds to an equation which consists of a function call with completely evaluated arguments and results 1 . Roughly speaking, the ET is constructed as follows: The root node is the main function of the program; for each node n with associated function f, and for each function call in the right-hand side of t...
ABSTRACT
Research Interests:
ABSTRACT
Research Interests:
Research Interests:
Research Interests:
Research Interests:
Research Interests:
The development process of software systems has become extremely complicated due to the complexity of the structures and the continuous evolution of the requirements. Software architectures are backbones for developing complex, dynamic... more
The development process of software systems has become extremely complicated due to the complexity of the structures and the continuous evolution of the requirements. Software architectures are backbones for developing complex, dynamic and distributed software systems. Recently, two approaches have emerged to construct architectural models: the Component-Based and the Aspect-Oriented Software Development. In this work, we present distribution patterns for software architectures. These patterns describe cases in which elements should react to issues and adapt to changes in requirements to optimize the architecture by relocating or replicating. These patterns are applied to an aspect-oriented and component-based software architecture called PRISMA to specify its distribution aspect using its ADL (Architecture Descriptive Language).
Research Interests:
In this work, we introduce a profiling scheme for modern functional logic languages covering notions like laziness, sharing, and non-determinism. Firstly, we instrument a natural (big-step) semantics in order to associate a symbolic cost... more
In this work, we introduce a profiling scheme for modern functional logic languages covering notions like laziness, sharing, and non-determinism. Firstly, we instrument a natural (big-step) semantics in order to associate a symbolic cost to each basic operation (e.g., variable updates, function unfoldings, case evaluations). While this cost semantics provides a formal basis to analyze the cost of a computation, the implementation of a cost-augmented interpreter based on it would introduce a huge overhead. Therefore, we also introduce a sound transformation that instruments a program such that its execution---under the standard semantics---yields not only the corresponding results but also the associated costs. Finally, we describe a prototype implementation of a profiler based on the developments in this paper.
ABSTRACT Declarative debugging is a semi-automatic debugging technique that allows the programer to debug a program without the need to see the source code. The debugger generates questions about the results obtained in different... more
ABSTRACT Declarative debugging is a semi-automatic debugging technique that allows the programer to debug a program without the need to see the source code. The debugger generates questions about the results obtained in different computations and the programmer only has to answer them to find the bug. Declarative debugging uses an internal representation of programs called execution tree, whose structure highly influences its performance. In this work we introduce two techniques that optimize the execution trees structure. In particular, we expand and collapse the representation of loops allowing the debugger to find bugs with a reduced number of questions.

And 78 more