Massimo Carro

Learn More
Let p 2 (0; 1), let v be a weight on (0; 1) and let p (v) be the classical Lorentz space, determined by the norm kfk p (v) := (R 1 0 (f (t)) p v(t) dt) 1=p. When p 2 (1; 1), this space is known to be a Banach space if and only if v is non-increasing, while it is only equivalent to a Banach space if and only if p (v) = ? p (v), where kfk ? p (v) := (R 1 0 (f(More)
Visualization of program executions has been used in applications which include education and debugging. However, traditional visualization techniques often fall short of expectations or are altogether inadequate for new programming paradigms, such as Constraint Logic Programming (CLP), whose declarative and operational semantics differ in some crucial ways(More)
The environment in which much software needs to be developed nowadays (decoupled software development, use of components and services, increased interoperability constraints, need for dynamic update or self-reconfiguration, mash-up development, etc.) is posing requirements which align with the classical arguments for dynamic languages and which in fact go(More)
This paper describes a model of persistence in (C)LP languages and two different ways to implement it in current systems. The fundamental idea is that persistence is a characteristic of certain dynamic predicates which encapsulate state. The main effect of declaring a predicate persistent is that the dynamic changes made to such predicates survive from one(More)
In this paper we present the design and implementation of a wearable application in Prolog. The application program is a “sound spatializer.” Given an audio signal and real time data from a head-mounted compass, a signal is generated for stereo headphones that will appear to come from a position in space. We describe high-level and low-level optimizations(More)
We describe the current status of and provide preliminary performance results for a compiler of Prolog to C. The compiler is novel in that it is designed to accept different kinds of high-level information (typically obtained via an analysis of the initial Prolog program and expressed in a standardized language of assertions) and use this information to(More)
This paper addresses the design of visual paradigms for studying the parallel execution of logic programs. First, an intuitive method is proposed for arriving at the design of a paradigm and its implementation as a tool for a given model of paral-lelism. This method is based on stepwise reenement starting from the deenition of basic notions such as events(More)
We describe the current status and preliminary results of a compiler of Prolog to C. This compiler can use high-level information on the initial Prolog program in order to optimize the resulting C code, which is then fed into a off-the-shelf C compiler. The basic translation process basically mimics the unfolding of a C-coded bytecode emulator with respect(More)
3.3 Showing Constraints Imagine a C(L)P program composed of one single rule, to which is associated a huge and /or complex set of constraints. When the resulting answer is "unexpected" (in any sense) it is obvious that no analysis of the program structure, execution, etc. will help at all. We will call constraint debugging the process of debugging programs(More)