Measuring the Effectiveness of Partial Evaluation in Functional Logic Languages

Author(s):  
Elvira Albert ◽  
Germán Vidal ◽  
Sergio Antoy
2005 ◽  
Vol 5 (3) ◽  
pp. 273-303 ◽  
Author(s):  
MARÍA ALPUENTE ◽  
SALVADOR LUCAS ◽  
GERMÁN VIDAL ◽  
MICHAEL HANUS

Many functional logic languages are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction mechanism of functional languages and the resolution principle of logic languages. Needed narrowing is an optimal evaluation strategy which constitutes the basis of modern (narrowing-based) lazy functional logic languages. In this work, we present the fundamentals of partial evaluation in such languages. We provide correctness results for partial evaluation based on needed narrowing and show that the nice properties of this strategy are essential for the specialization process. In particular, the structure of the original program is preserved by partial evaluation and, thus, the same evaluation strategy can be applied for the execution of specialized programs. This is in contrast to other partial evaluation schemes for lazy functional logic programs which may change the program structure in a negative way. Recent proposals for the partial evaluation of declarative multi-paradigm programs use (some form of) needed narrowing to perform computations at partial evaluation time. Therefore, our results constitute the basis for the correctness of such partial evaluators.


2007 ◽  
Vol 7 (1-2) ◽  
pp. 215-247 ◽  
Author(s):  
JOSEP SILVA ◽  
GERMÁN VIDAL

AbstractProgram slicing has been mainly studied in the context of imperative languages, where it has been applied to a wide variety of software engineering tasks, like program understanding, maintenance, debugging, testing, code reuse, etc. This work introduces the first forward slicing technique for declarative multi-paradigm programs which integrate features from functional and logic programming. Basically, given a program and aslicing criterion(a function call in our setting), the computed forward slice contains those parts of the original program which arereachablefrom the slicing criterion. Our approach to program slicing is based on an extension of (online) partial evaluation. Therefore, it provides a simple way to develop program slicing tools from existing partial evaluators and helps to clarify the relation between both methodologies. A slicing tool for the multi-paradigm language Curry, which demonstrates the usefulness of our approach, has been implemented in Curry itself.


1998 ◽  
Vol 20 (4) ◽  
pp. 768-844 ◽  
Author(s):  
María Alpuente ◽  
Moreno Falaschi ◽  
Germán Vidal

2003 ◽  
Vol 85 (1) ◽  
pp. 19-25 ◽  
Author(s):  
Elvira Albert ◽  
Michael Hanus ◽  
Germán Vidal

1988 ◽  
Vol 27 (4II) ◽  
pp. 501-507 ◽  
Author(s):  
Soofia Mumtaz

This paper discusses some issues currently preoccupying social scientists with respect to the process of development and its implications for Third World countries. These issues have become highly significant considering the momentum and nature of the development process being launched in the so-called "underdeveloped" world, within the context of modern nation-states. Therefore, in this paper, we seek to identify: (a) What is meant by development; (b) How the encounter between this process and traditional social structures (with their own functional logic, based on earlier forms of production and social existence) takes place; (c) What the implications of this encounter are; and (d) What lessons we can learn in this regard from history and anthropology. Development as a planned and organized process, the prime issue concerning both local and Western experts in Third World countries, is a recent phenomenon in comparison to the exposure of Third World countries to the Western Industrial system. The former gained momentum subsequent to the decolonization of the bulk of the Third World in the last half of this century, whereas the latter dates to at least the beginning of this century, if not earlier, when the repercussions of colonization, and later the two World Wars, became manifest in these countries.


Author(s):  
Yu Huang ◽  
Wu-Tung Cheng ◽  
Ting-Pu Tai ◽  
Liyang Lai ◽  
Ruifeng Guo ◽  
...  

Abstract If a signal on clock tree is slower than expected due to either a design error or a manufacturing defect, it may cause complicated fault behaviors during scan-based testing. It makes the diagnosis of such defect especially difficult if the defective clock signal is used for both shift and capture operations during the scan testing, because (1) the defect induces hold time faults on scan chains during shift cycles, and (2) hold-time faults may also be introduced during capture cycles in the functional logic paths. In this paper we illustrate the failure behaviors of such clock defects and propose an algorithm to diagnose it.


Sign in / Sign up

Export Citation Format

Share Document