Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by CRACS

2003

Linearization by program transformation

Authors
Alves, S; Florido, M;

Publication
LOGIC BASED PROGRAM SYNTHESIS AND TRNSFORMATION

Abstract
We identify a restricted class of terms of the lambda calculus, here called weak linear, that includes the linear lambda-terms keeping their good properties of strong normalization, non-duplicating reductions and typability in polynomial time. The advantage of this class over the linear lambda-calculus is the possibility of transforming general terms into weak linear terms with the same normal form. We present such transformation and prove its correctness by showing that it preserves normal forms.

2002

P-3: Parallel peer to peer an - Internet parallel programming environment

Authors
Oliveira, L; Lopes, L; Silva, F;

Publication
WEB ENGINEERING AND PEER TO PEER COMPUTING

Abstract
P-3 is a next-generation Internet computing platform, building upon other experiments and implementing new ideas for high-performance parallel computing in the Internet environment. This paper describes its run-time system, programming model and how it compares to current state-of-the-art systems.

2002

Achieving Scalability in Parallel Tabled Logic Programs

Authors
Rocha, R; Silva, FMA; Costa, VS;

Publication
16th International Parallel and Distributed Processing Symposium (IPDPS 2002), 15-19 April 2002, Fort Lauderdale, FL, USA, CD-ROM/Abstracts Proceedings

Abstract
Tabling or memoing is a technique where one stores intermediate answers to a problem so that they can be reused in further calls. Tabling is of interest to logic programming because it addresses some of the most significant weaknesses of Prolog. Namely, it can guarantee termination for programs with the bounded term-size property. Tabled programs exhibit a more complex execution mechanism than traditional Prolog's left-to-right search with backtracking. The reason is that Prolog programs are highly recursive and generate multiple answers. This rather involved execution mechanism requires a more complex implementation than traditional Prolog. The declarative nature of tabled logic programming suggests that it might be amenable to parallel execution. On the other hand, the complexity of the tabling mechanism, and the existence of a shared resource, the table, argues that parallelism might be limited, and that performance for real applications might never scale. In this work we prove that parallel tabling is indeed scalable for real applications by experimenting the OPTYap parallel tabled system on a scalable shared-memory machine. © 2002 IEEE.

2002

Using Constraint Logic Programming to Generate Drills in Mathematics

Authors
Tomás, AP; Leal, JP; Vasconcelos, P;

Publication
AGP 2002: Proceedings of the Joint Conference on Declarative Programming, APPIA-GULP-PRODE, Madrid, Spain, September 16-18, 2002.

Abstract

2002

From simulation to practice

Authors
Lopes, R; Castro, LF; Costa, VS;

Publication
Proceedings of the workshop on Memory system performance - MSP '02

Abstract

2002

From simulation to practice: Cache performance study of a Prolog system

Authors
Lopes, R; Castro, LF; Costa, VS;

Publication
Proceedings of the 2002 Workshop on Memory System Performance, MSP 2002

Abstract
Progress in Prolog applications requires ever better performance and scalability from Prolog implementation technology. Most modern Prolog systems are emulator-based. Best performance thus requires both good emulator design and good memory performance. Indeed, Prolog applications can often spend hundreds of megabytes of data, but there is little work on understanding and quantifying the interactions between Prolog programs and the memory architecture of modern computers. In a previous study of Prolog systems we have shown through simulation that Prolog applications usually, but not always, have good locality, both for deterministic and non-deterministic applications. We also showed that performance may strongly depend on garbage collection and on database operations. Our analysis left two questions unanswered: how well do our simulated results holds on actual hardware, and how much did our results depend on a specific configuration? In this work we use several simulation parameters and profiling counters to improve understanding of Prolog applications. We believe that our analysis is of interest to any system implementor who wants to understand his or her own system's memory performance. Copyright 2002 ACM.

  • 179
  • 192