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.

Sergio Antoy

dblp:15/4904 · DBLP profile ↗
← Back
35ranked-venue papers
33as first author
0since 2021 · last 2017
0000-0003-4522-7658ORCID · corroborated

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

Software engineering, systems software and programming languages · 24 · 23 first-authorTheory of computation · 19 · 19 first-authorArtificial intelligence and machine learning · 3 · 2 first-authorSystems, architecture and hardware · 1 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 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.

Software engineering, system software, and programming languages
4 papers
Programming languages and type systems · 56% Software testing · 30% Program verification · 15%
Theoretical computer science
2 papers
Combinatorics and discrete mathematics · 56% Logic in computer science · 44%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › logic programming › functional logic programming
narrowing
0.022000
A needed narrowing strategy · J. ACM 2000
A Needed Narrowing Strategy · POPL 1994
Program verification › dynamic verification
runtime assertion checking
0.012000
Automatically Checking an Implementation against Its Formal Specification · IEEE Trans. Software Eng. 2000
Software testing
specification-based testing
0.012000
Automatically Checking an Implementation against Its Formal Specification · IEEE Trans. Software Eng. 2000
Programming languages and type systems
term rewriting
0.012000
A needed narrowing strategy · J. ACM 2000
Software testing
unit testing
0.012000
Automatically Checking an Implementation against Its Formal Specification · IEEE Trans. Software Eng. 2000
Programming languages and type systems
abstract data types
0.011994
Using Term Rewriting to Verify Software · IEEE Trans. Software Eng. 1994
Programming languages and type systems › specification language
algebraic specification
0.011994
Using Term Rewriting to Verify Software · IEEE Trans. Software Eng. 1994
Programming languages and type systems › logic programming
functional logic programming
0.011994
A Needed Narrowing Strategy · POPL 1994
Knowledge, reasoning and agents › Planning, search and constraint satisfaction
game playing
0.011987
Modeling and Isomorphisms of Positional Board Games · IEEE Trans. Pattern Anal. Mach. Intell. 1987
Logic in computer science
term rewriting
0.011994
A Needed Narrowing Strategy · POPL 1994

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

term rewriting · 0.0needed narrowing · 0.0multiversion programming · 0.0structural induction · 0.0boyer-moore prover · 0.0algebraic modeling · 0.0
YearPublicationVenuePosition
2017 Eliminating Irrelevant Non-determinism in Functional Logic Programs
Sergio Antoy, Michael Hanus
PADL1
2017 Transforming Boolean equalities into constraints
abstract
Abstract Although functional as well as logic languages use equality to discriminate between logically different cases, the operational meaning of equality is different in such languages. Functional languages reduce equational expressions to their Boolean values, True or False, logic languages use unification to check the validity only and fail otherwise. Consequently, the language Curry, which amalgamates functional and logic programming features, offers two kinds of equational expressions so that the programmer has to distinguish between these uses. We show that this distinction can be avoided by providing an analysis and transformation method that automatically selects the appropriate operation. Without this distinction in source programs, the language design can be simplified and the execution of programs can be optimized. As a consequence, we show that one kind of equational expressions is sufficient and unification is nothing else than an optimization of Boolean equality.
Sergio Antoy, Michael Hanus
Formal Aspects Comput.1
2017 Default rules for Curry
abstract
Abstract In functional logic programs, rules are applicable independently of textual order, i.e., any rule can potentially be used to evaluate an expression. This is similar to logic languages and contrary to functional languages, e.g., Haskell enforces a strict sequential interpretation of rules. However, in some situations it is convenient to express alternatives by means of compact default rules. Although default rules are often used in functional programs, the non-deterministic nature of functional logic programs does not allow to directly transfer this concept from functional to functional logic languages in a meaningful way. In this paper, we propose a new concept of default rules for Curry that supports a programming style similar to functional programming while preserving the core properties of functional logic programming, i.e., completeness, non-determinism, and logic-oriented use of functions. We discuss the basic concept and propose an implementation which exploits advanced features of functional logic languages.
Sergio Antoy, Michael Hanus
Theory Pract. Log. Program.1
2016 A New Functional-Logic Compiler for Curry: Sprite
Sergio Antoy, Andy Jost
LOPSTR1
2016 Default Rules for Curry
Sergio Antoy, Michael Hanus
PADL1
2015 From Boolean Equalities to Constraints
Sergio Antoy, Michael Hanus
LOPSTR1
2015 Compiling Collapsing Rules in Certain Constructor Systems
Sergio Antoy, Andy Jost
LOPSTR1
2013 Compiling a Functional Logic Language: The Fair Scheme
Sergio Antoy, Andy Jost
LOPSTR1
2013 Are needed redexes really needed?
abstract
We present an approach to rewriting in inductively sequential rewriting systems with a very distinctive feature. In the class of systems that we consider, any reducible term defines a needed step, a step that must be executed by any rewriting computation that produces the term's normal form. We show an implementation of rewriting computations that avoids executing some needed steps. We avoid executing these steps by defining functions that compute a reduct of a step without the explict construction or presence of the redex. Our approach improves the efficiency of many computations---in some cases by one or two orders of magnitude. Our work is motivated by and applicable to the implementation of functional logic programming languages.
Sergio Antoy, Andy Jost
PPDP1
2012 Contracts and Specifications for Functional Logic Programming
Sergio Antoy, Michael Hanus
PADL1
2011 On the correctness of pull-tabbing
abstract
Abstract Pull-tabbing is an evaluation approach for functional logic computations, based on a graph transformation recently proposed, which avoids making irrevocable nondeterministic choices that would jeopardize the completeness of computations. In contrast to other approaches with this property, it does not require an upfront cloning of a possibly large portion of the choice's context. We formally define the pull-tab transformation, characterize the class of programs for which the transformation is intended, extend the computations in these programs to include the transformation, and prove the correctness of the extended computations.
Sergio Antoy
Theory Pract. Log. Program.1
2010 Programming with narrowing: A tutorial
Sergio Antoy
J. Symb. Comput.1
2009 Set functions for functional logic programming
abstract
We propose a novel approach to encapsulate non-deterministic computations in functional logic programs. Our approach is based on set functions that return the set of all the results of a corresponding ordinary operation. A characteristic feature of our approach is the complete separation between a usually-non-deterministic operation and its possibly-non-deterministic arguments. This separation leads to the first provably order-independent approach to computing the set of values of non-deterministic expressions. The proof is provided within the framework of graph rewriting in constructor-based systems. We propose an abstract implementation of our approach and prove its independence of the order of evaluation. Our approach solves easily and naturally problems mishandled by current implementations of functional logic languages.
Sergio Antoy, Michael Hanus
PPDP1
2007 Computing with subspaces
abstract
We propose a new definition and use of a primitive getAllValues, for computing all the values of a non-deterministic expression in a functional logic program. Our proposal restricts the validity of the argument of getAllValues. This restriction ensures that essential language features like the call-time choice semantics, the independence of the order of evaluation, and the referential transparency of the language are preserved when getAllValues is executed. Up to now, conflicts between these language features and primitives like getAllValues have been seen as one of the main problems for employing such primitives in functional logic languages.
Sergio Antoy, Bernd Brassel
PPDP1
2006 Overlapping Rules and Logic Variables in Functional Logic Programs
Sergio Antoy, Michael Hanus
ICLP1
2006 On the Correctness of Bubbling
Sergio Antoy, Daniel W. Brown, Su-Hui Chiang
RTA1
2005 Declarative Programming with Function Patterns
Sergio Antoy, Michael Hanus
LOPSTR1
2005 Evaluation strategies for functional logic programming
Sergio Antoy
J. Symb. Comput.1
2004 Implementing functional logic languages using multiple threads and stores
Andrew P. Tolmach, Sergio Antoy, Marius Nita
ICFP2
2004 Formalization and abstract implementation of rewriting with nested rules
abstract
This paper formalizes term rewriting systems (TRSs), called scoped, in which a rewrite rule can be nested within another rewrite rule. The right-hand side and/or the condition of a nested rule can refer to any variable in the left-hand side of a nesting rule. Nesting of rewrite rules is intended to define a lexical scope with static binding. Our work is applicable to programming languages in which programs are modeled by TRSs and computations are executed by rewriting or narrowing. In particular, we consider a class of non-confluent and non-terminating TRSs well suited for modeling modern functional logic programs. We describe an abstract implementation of rewriting and narrowing for scoped TRSs to show that scopes can be easily handled irrespective of the evaluation strategy. The efficiency of rewriting within a scoped TRS, measured using a narrowing virtual machine, is comparable to the efficiency of rewriting for non-scoped TRSs.
Sergio Antoy
PPDP1
2004 Concurrent distinct choices
abstract
An injective finite mapping is an abstraction common to many programs. We describe the design of an injective finite mapping and its implementation in Curry, a functional logic language. Curry supports the concurrent asynchronous execution of distinct portions of a program. This condition prevents passing from one portion to another a structure containing a partially constructed mapping to ensure that a new choice does not violate the injectivity condition. We present some motivating problems and we show fragments of programs that solve these problems using our design and implementation.
Sergio Antoy, Michael Hanus
J. Funct. Program.1
2003 Conditional narrowing without conditions
abstract
We present a new evaluation strategy for functional logic programs described by weakly orthogonal conditional term rewriting systems. Our notion of weakly orthogonal conditional rewrite system extends a notion of Bergstra and Klop and covers a large part of programs defined by conditional equations. Our strategy combines the flexibility of logic programming (computation of solutions for logic variables) with efficient evaluation methods from functional programming. In particular, it is the first known narrowing strategy for this class of programs that evaluates ground terms deterministically. This is achieved by a transformation of conditional term rewriting systems (CTRS) into unconditional ones which is sound and complete w.r.t. the semantics of the original CTRS. We show that the transformation preserves weak orthogonality for the terms of interest. This property allows us to apply a relatively efficient evaluation strategy for weakly orthogonal unconditional term rewriting systems (parallel narrowing) on the transformed programs.
Sergio Antoy, Bernd Brassel, Michael Hanus
PPDP1
2001 Constructor-Based Conditional Narrowing
abstract
We define a transformation from a left-linear constructor-based conditional rewrite system into an overlapping inductively sequential rewrite system. This transformation is sound and complete for the computations in the source system. Since there exists a sound and complete narrowing strategy for the target system, the combination of these results offers the first procedure for provably sound and complete narrowing computations for the whole class of the leftlinear constructor-based conditional rewrite systems. We address the differences between demand driven and lazy strategies and between narrowing strategies and narrowing calculi. In this context, we analyze the efficiency and practicality of using our transformation for the implementation of functional logic programming languages. The results of this paper complement, extend, and occasionally rectify, previously published results in this area.
Sergio Antoy
PPDP1
2001 An Implementation of Narrowing Strategies
abstract
This paper describes an implementation of narrowing, an essential component of implementations of modern functional logic languages. These implementations rely on narrowing, in particular on some optimal narrowing strategies, to execute functional logic programs. We translate functional logic programs into imperative (Java) programs without an intermediate abstract machine. A central idea of our approach is the explicit representation and processing of narrowing computations as data objects. This enables the implementation of operationally complete strategies (i.e., without backtracking) or techniques for search control (e.g., encapsulated search). Thanks to the use of an intermediate and portable represen tation of programs, our implementation is general enough to be used as a common back end for a wide variety of functional logic languages.
Sergio Antoy, Michael Hanus, Bart Massey, Frank Steiner
PPDP1
2000 A needed narrowing strategy
Sergio Antoy, Rachid Echahed, Michael Hanus
J. ACM1
2000 Automatically Checking an Implementation against Its Formal Specification
abstract
We propose checking the execution of an abstract data type's imperative implementation against its algebraic specification. An explicit mapping from implementation states to abstract values is added to the imperative code. The form of specification allows mechanical checking of desirable properties such as consistency and completeness, particularly when operations are added incrementally to the data type. During unit testing, the specification serves as a test oracle. Any variance between computed and specified values is automatically detected. When the module is made part of some application, the checking can he removed, or may remain in place for further validating the implementation. The specification, executed by rewriting, can be thought of as itself an implementation with maximum design diversity, and the validation as a form of multiversion-programming comparison.
Sergio Antoy, Richard G. Hamlet
IEEE Trans. Software Eng.1
1997 Parallel Evaluation Strategies for Functional Logic Languages
Sergio Antoy, Rachid Echahed, Michael Hanus
ICLP1
1996 A Sequential Reduction Strategy
Sergio Antoy, Aart Middeldorp
Theor. Comput. Sci.1
1994 A Needed Narrowing Strategy
abstract
Narrowing is the operational principle of languages that integrate functional and logic programming. We propose a notion of a needed narrowing step that, for inductively sequential rewrite systems, extends the Huet and Le´vy notion of a needed reduction step. We define a strategy, based on this notion, that computes only needed narrowing steps. Our strategy is sound and complete for a large class of rewrite systems, is optimal w.r.t. the cost measure that counts the number of distinct steps of a derivation, computes only independent unifiers, and is efficiently implemented by pattern matching.
Sergio Antoy, Rachid Echahed, Michael Hanus
POPL1
1994 Using Term Rewriting to Verify Software
abstract
This paper describes a uniform approach to the automation of verification tasks associated with while statements, representation functions for abstract data types, generic program units, and abstract base classes. Program units are annotated with equations containing symbols defined by algebraic axioms. An operation's axioms are developed by using strategies that guarantee crucial properties such as convergence and sufficient completeness. Sets of axioms are developed by stepwise extensions that preserve these properties. Verifications are performed with the aid of a program that incorporates term rewriting, structural induction, and heuristics based on ideas used in the Boyer-Moore prover. The program provides valuable mechanical assistance: managing inductive arguments and providing hints for necessary lemmas, without which formal proofs would be impossible. The successes and limitations of our approaches are illustrated with examples from each domain.>
Sergio Antoy, John D. Gannon
IEEE Trans. Software Eng.1
1987 Modeling and Isomorphisms of Positional Board Games
abstract
A model is proposed for a class of two-person games based on the occupation of positions on a board. Well-known games that can be rephrased within or with the help of the model are, for example, tic-tac-toe, qubic, go-moku, hex, and connect-four. The model is formulated in terms of a composite algebraic structure called board. A notion of board isomorphism is defined, a few concepts fundamental for positional board game playing are identified, and necessary and sufficient conditions for establishing the isomorphism of two boards are proved. The formalism of the model provides criteria for the description and analysis of a board that are more abstract than its physical characteristics such as size and dimensionality. The application of the isomorphism results to the implementation of more general and efficient software modules for game playing is discussed. Related work is briefly outlined and compared.
Sergio Antoy
IEEE Trans. Pattern Anal. Mach. Intell.1
1987 Address location on envelopes
Pen-Shu Yeh, Sergio Antoy, Anne Litcher, Azriel Rosenfeld
Pattern Recognit.2
1984 A recursive algorithm for quick and efficient bit reversing
Sergio Antoy
Pattern Recognit. Lett.1
1983 Towards GKS Binding to PASCAL
abstract
When binding GKS to the Pascal programming language some problems arise which are not trivial, Problems related to the use of a library, to the passing of array parameters to procedures and to the definition of suitable types for GKS data must be carefully discussed, since each of these does not have a unique solution, A proposal for solving the above problems is presented in this paper.
Sergio Antoy, Giuliana Dettori
Eurographics1
1978 GPCA: a general purpose cross-assembler
Sergio Antoy, Franco Cordano, Franco Serio, Tullio Vernazza
Euromicro Newsletter1