SearcharxivSearch

arXiv subjects

Luca Paolini

Publications and source records attributed to Luca Paolini.

8 recordsLinked to original sources

Learning Foundations Beneath the Stars

Foundations of computer science are a key area in theoretical research, one to which Stefano has made significant contributions, particularly from a logical and proof-theoretic perspective. Recently, we have been involved, with him, in teaching an introductory course on this topic, guided by the idea that understanding and writing ordinary, discursive proofs is a valuable skill for future programmers. This shared experience has inspired the pedagogical approach at the basis of this paper. Behind specific foundational topics in computer science lie core techniques that are best taught through examples. However, standard textbooks often do not place enough emphasis on these ubiquitous techniques and frequently lack examples that are directly relevant to informatics. We believe that highlighting fundamental techniques, rather than focusing solely on specific foundational topics, would offer significant pedagogical benefits for an introductory course. In this paper we propose transitive closure of relations as a case study supporting our approach. While all proofs are elementary, we claim that this is a suitable topic for putting to work paradigmatic notions -- intrinsically tied to computational thinking -- that can serve as structural anchors for a course in the foundations of computer science. In particular, we highlight the techniques employed in proofs, that constitute a comprehensive summary of those that are normally taught in an introductory logic course, and the abstract structures, that allow to connect transitive closure with Kleene star (via quantales) and closure operators (on complete lattices). We then outline a series of further examples that may be used, as in our case study on stars, as a hands-on approach to basic analytic skills to be learned in a course on the foundations of computing. -- To Stefano Berardi on the occasion of his birthday.

cs.LO

A Core Calculus for Type-safe Product Lines of C Programs

In this paper we: (1) propose Lightweight C (LC), namely a core calculus that formalizes a proper subset of the ANSI C without preprocessor directives; (2) define Colored LC (CLC), namely LC endowed with ANSI C preprocessor directives; and (3) define a type system for CLC that guarantees that all programs to be generated by the C preprocessor are well-typed C programs. We believe that the simple formalization provided by CLC could be useful also for teaching purposes. Stefano Berardi spent most of his academic career at the Department of Computer Science of the University of Turin, where he conducts outstanding research on the logical foundations of computer science and on type-based program analyses. Over the years, he taught many courses, from BSc courses on programming with C to PhD courses on program analysis. Therefore, this paper fully falls within Stefano Berardi's research and teaching activities.

cs.PL

Splitting recursion schemes into reversible and classical interacting threads

Given a simple recursive function, we show how to extract from it a reversible and an classical iterative part. Those parts can synchronously cooperate under a Producer/Consumer pattern in order to implement the original recursive function. The reversible producer is meant to run on reversible hardware. We also discuss how to extend the extraction to a more general compilation scheme.

cs.PL

Interleaving classical and reversible

Given a simple recursive function, we show how to extract two interacting processes from it. The two processes can be described by means of iterative programs, one of which is intrinsically reversible, in a language that, up to minor details, belongs to the core of widely used imperative programming languages. We implement the two processes as interleaving synchronous JAVA threads whose interaction is equivalent to the recursive function they are extracted from.

cs.PL

Quantum Programming Made Easy

We present IQu, namely a quantum programming language that extends Reynold's Idealized Algol, the paradigmatic core of Algol-like languages. IQu combines imperative programming with high-order features, mediated by a simple type theory. IQu mildly merges its quantum features with the classical programming style that we can experiment through Idealized Algol, the aim being to ease a transition towards the quantum programming world. The proposed extension is done along two main directions. First, IQu makes the access to quantum co-processors by means of quantum stores. Second, IQu includes some support for the direct manipulation of quantum circuits, in accordance with recent trends in the development of quantum programming languages. Finally, we show that IQu is quite effective in expressing well-known quantum algorithms.

cs.LO

QPCF: higher order languages and quantum circuits

qPCF is a paradigmatic quantum programming language that ex- tends PCF with quantum circuits and a quantum co-processor. Quantum circuits are treated as classical data that can be duplicated and manipulated in flexible ways by means of a dependent type system. The co-processor is essentially a standard QRAM device, albeit we avoid to store permanently quantum states in between two co-processor's calls. Despite its quantum features, qPCF retains the classic programming approach of PCF. We introduce qPCF syntax, typing rules, and its operational semantics. We prove fundamental properties of the system, such as Preservation and Progress Theorems. Moreover, we provide some higher-order examples of circuit encoding.

cs.LO

Standardization and Conservativity of a Refined Call-by-Value lambda-Calculus

We study an extension of Plotkin's call-by-value lambda-calculus via two commutation rules (sigma-reductions). These commutation rules are sufficient to remove harmful call-by-value normal forms from the calculus, so that it enjoys elegant characterizations of many semantic properties. We prove that this extended calculus is a conservative refinement of Plotkin's one. In particular, the notions of solvability and potential valuability for this calculus coincide with those for Plotkin's call-by-value lambda-calculus. The proof rests on a standardization theorem proved by generalizing Takahashi's approach of parallel reductions to our set of reduction rules. The standardization is weak (i.e. redexes are not fully sequentialized) because of overlapping interferences between reductions.

cs.LO

Proceedings Sixth Workshop on Intersection Types and Related Systems

This volume contains the proceedings of the Sixth Workshop on Intersection Types and Related Systems (ITRS 2012). The workshop was held in Dubrovnik (Croatia) on June 29th, 2012, affiliated to Twenty-Seventh Annual ACM/IEEE Symposium on Logic in Computer Science (LICS 2012). The ITRS workshop aims to bring together researchers working on both the theory and practical applications of systems based on intersection types and related approaches (e.g., union types, refinement types, behavioural types, recursive types, and so on).

cs.PL