Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Flávio Cruz

dblp:30/8486 · DBLP profile ↗
← Back
6ranked-venue papers
6as first author
0since 2021 · last 2016
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 4 · 4 first-authorTheory of computation · 2 · 2 first-authorArtificial intelligence and machine learning · 1 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 100%

Topics — the 3 heaviest of 3, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel programming models
declarative parallelism
0.212016
Declarative coordination of graph-based parallel programs · PPoPP 2016
Parallel and multicore computing › programming models
logic programming
0.212016
Declarative coordination of graph-based parallel programs · PPoPP 2016
Parallel and multicore computing
parallel programming models
0.212016
Declarative coordination of graph-based parallel programs · PPoPP 2016

Methods — techniques the papers use, named apart from their topics

linear logic programming · 0.2forward chaining · 0.2
YearPublicationVenuePosition
2016 Declarative coordination of graph-based parallel programs
abstract
Declarative programming has been hailed as a promising approach to parallel programming since it makes it easier to reason about programs while hiding the implementation details of parallelism from the programmer. However, its advantage is also its disadvantage as it leaves the programmer with no straightforward way to optimize programs for performance. In this paper, we introduce Coordinated Linear Meld (CLM), a concurrent forward-chaining linear logic programming language, with a declarative way to coordinate the execution of parallel programs allowing the programmer to specify arbitrary scheduling and data partitioning policies. Our approach allows the programmer to write graph-based declarative programs and then optionally to use coordination to fine-tune parallel performance. In this paper we specify the set of coordination facts, discuss their implementation in a parallel virtual machine, and show---through example---how they can be used to optimize parallel execution. We compare the performance of CLM programs against the original uncoordinated Linear Meld and several other frameworks.
Flávio Cruz, Ricardo Rocha 0001, Seth Copen Goldstein
PPoPP1
2015 On Compiling Linear Logic Programs with Comprehensions, Aggregates and Rule Priorities
Flávio Cruz, Ricardo Rocha 0001
PADL1
2014 Design and Implementation of a Multithreaded Virtual Machine for Executing Linear Logic Programs
abstract
Linear Meld is a concurrent forward-chaining linear logic programming language where logical facts can be asserted and retracted in a structured way. In Linear Meld, a program is seen as a database of logical facts and a set of derivation rules. The database of facts is partitioned by the nodes of a graph structure which leads to parallelism when nodes are executed simultaneously. Due to the foundations on linear logic, rules can retract facts in a declarative and structured fashion, leading to more expressive programs. We present the design and implementation of the virtual machine that we implemented to run Linear Meld on multicores, with particular focus on thread management, code organization, fact indexing, rule execution, and database organization for efficient fact insertion, lookup and deletion. Our results show that the virtual machine is capable of scaling programs with up to 16 threads and also exhibits interesting scalar performance results due to our indexing optimizations.
Flávio Cruz, Ricardo Rocha 0001, Seth Copen Goldstein
PPDP1
2014 A Linear Logic Programming Language for Concurrent Programming over Graph Structures
abstract
Abstract We have designed a new logic programming language called LM (Linear Meld) for programming graph-based algorithms in a declarative fashion. Our language is based on linear logic, an expressive logical system where logical facts can be consumed. Because LM integrates both classical and linear logic, LM tends to be more expressive than other logic programming languages. LM programs are naturally concurrent because facts are partitioned by nodes of a graph data structure. Computation is performed at the node level while communication happens between connected nodes. In this paper, we present the syntax and operational semantics of our language and illustrate its use through a number of examples.
Flávio Cruz, Ricardo Rocha 0001, Seth Copen Goldstein, Frank Pfenning
Theory Pract. Log. Program.1
2011 Efficient instance retrieval of subgoals for subsumptive tabled evaluation of logic programs
abstract
Abstract Tabled evaluation is an implementation technique that solves some problems of traditional Prolog systems in dealing with recursion and redundant computations. Most tabling engines determine if a tabled subgoal will produce or consume answers by using variant checks. A more refined method, named call subsumption, considers that a subgoal A will consume from a subgoal B if A is subsumed by (an instance of) B, thus allowing greater answer reuse. We recently developed an extension, called Retroactive Call Subsumption, that improves upon call subsumption by supporting bidirectional sharing of answers between subsumed/subsuming subgoals. In this paper, we present both an algorithm and an extension to the table space data structures to efficiently implement instance retrieval of subgoals for subsumptive tabled evaluation of logic programs. Experiments results using the YapTab tabling system show that our implementation performs quite well on some complex benchmarks and is robust enough to handle a large number of subgoals without performance degradation.
Flávio Cruz, Ricardo Rocha 0001
Theory Pract. Log. Program.1
2010 Retroactive Subsumption-Based Tabled Evaluation of Logic Programs
Flávio Cruz, Ricardo Rocha 0001
JELIA1