Skip to main content
Home

Main navigation

  • Home
  • Series
  • People
  • Depts & Colleges
  • Open Education

Main navigation

  • Home
  • Series
  • People
  • Depts & Colleges
  • Open Education

Visitors Unchained

Series
International Conference on Functional Programming 2017
Embed
Francois Pottier (Inria, France), gives the second talk in the fourth panel, Program Construction, on the 2nd day of the ICFP conference.
Traversing and transforming abstract syntax trees that involve name binding is notoriously difficult to do in a correct, concise, modular, customisable manner. We address this problem in the setting of OCaml, a functional programming language equipped with powerful object-oriented features. We use visitor classes as partial, composable descriptions of the operations that we wish to perform on abstract syntax trees. We introduce "visitors", a simple type-directed facility for generating visitor classes that have no knowledge of binding. Separately, we present "alphaLib", a library of small hand-written visitor classes, each of which knows about a specific binding construct, a specific representation of names, and-or a specific operation on abstract syntax trees. By combining these components, a wide range of operations can be defined. Multiple representations of names can be supported, as well as conversions between representations. Binding structure can be described either in a programmatic style, by writing visitor methods, or in a declarative style, via preprogrammed binding combinators.
Creative Commons Licence
Creative Commons Attribution-Non-Commercial-Share Alike 2.0 UK (BY-NC-SA): England & Wales; https://creativecommons.org/licenses/by-nc-sa/2.0/uk/

Episode Information

Series
International Conference on Functional Programming 2017
People
François Pottier
Keywords
technology
computing
programming
Department: Department of Computer Science
Date Added: 17/01/2018
Duration: 00:17:59

Subscribe

Download

Teach us how we may pray

Series
Designing English: Graphics on the medieval page
Embed
AElfric of Eynsham teaches the congregation to recite the Lord’s Prayer in English, 'Thu ure faeder'. MS. Hatton 115, fol. 10r. Composed 990-995, copied in the second half of the 1000s. Read by Andy Orchard.

Episode Information

Series
Designing English: Graphics on the medieval page
People
Andy Orchard
Keywords
literature
english
designing english
Department: Bodleian Libraries
Date Added: 16/01/2018
Duration: 00:01:16

Subscribe

Download

Come and dance with me in Ireland

Series
Designing English: Graphics on the medieval page
Embed
The lyrics of dance songs about love and longing, jotted down without music. MS. Rawl. D. 913, fol. 1r-v. Copied in the early 1300s. Read by Helen Appleton, Daniel Wakelin.

Episode Information

Series
Designing English: Graphics on the medieval page
People
Helen Appleton
Daniel Wakelin
Keywords
literature
designing english
mediieval
english
Department: Bodleian Libraries
Date Added: 16/01/2018
Duration: 00:01:04

Subscribe

Download

If it be played

Series
Designing English: Graphics on the medieval page
Embed
In the play The Burial of Christ, Joseph, Mary Magdalen and three other women cry out when they see Jesus on the Cross. MS. e Musaeo 160, fol. 141r. Copied c. 1518–1520. Read by Helen Appleton, Angela O'Brien, Daniel Sawyer, Wing Tan Lai.

Episode Information

Series
Designing English: Graphics on the medieval page
People
Helen Appleton
Angela O'Brien
Daniel Sawyer
Wing Tan Lai
Keywords
engliag
literature
designing english
medieval
Department: Bodleian Libraries
Date Added: 16/01/2018
Duration: 00:01:31

Subscribe

Download

First entereth Wisdom

Series
Designing English: Graphics on the medieval page
Embed
In the play Wisdom, the devil tempts three godly people into sins – lust and other ‘French fashions’. MS. Digby 133, fol. 158r. Copied in the late 1400s. Read by Arka Chakraborty, Matthew Day, Ben Sims, Daniel Sawyer.

Episode Information

Series
Designing English: Graphics on the medieval page
People
Arka Chakraborty
Matthew Day
Ben Sims
Daniel Sawyer
Keywords
designing english
english
medieval
Department: Bodleian Libraries
Date Added: 16/01/2018
Duration: 00:01:29

Subscribe

Download

Listeneth now and beth not deaf!

Series
Designing English: Graphics on the medieval page
Embed
A travelling preacher recites a poem, warning about the horrors of death. MS. Add. E. 6 (R). Copied in the late 1200s. Read by Daniel Wakelin.

Episode Information

Series
Designing English: Graphics on the medieval page
People
Daniel Wakelin
Keywords
Medieval English
english
literature
religion
Department: Bodleian Libraries
Date Added: 16/01/2018
Duration: 00:01:21

Subscribe

Download

Compiling to Categories

Series
International Conference on Functional Programming 2017
Embed
Conal Elliott, Target, USA, gives the first talk in the fourth panel, Program Construction, on the 2nd day of the ICFP conference.
It is well-known that the simply typed lambda-calculus is modeled by any cartesian closed category (CCC). This correspondence suggests giving typed functional programs a variety of interpretations, each corresponding to a different category. A convenient way to realize this idea is as a collection of meaning-preserving transformations added to an existing compiler, such as GHC for Haskell. This paper describes such an implementation and demonstrates its use for a variety of interpretations including hardware circuits, automatic differentiation, incremental computation, and interval analysis. Each such interpretation is a category easily defined in Haskell (outside of the compiler). The general technique appears to provide a compelling alternative to deeply embedded domain-specific languages.
Creative Commons Licence
Creative Commons Attribution-Non-Commercial-Share Alike 2.0 UK (BY-NC-SA): England & Wales; https://creativecommons.org/licenses/by-nc-sa/2.0/uk/

Episode Information

Series
International Conference on Functional Programming 2017
People
Conal Elliott
Keywords
technology
computing
programming
Department: Department of Computer Science
Date Added: 16/01/2018
Duration: 00:18:14

Subscribe

Download

Local Refinement Typing

Series
International Conference on Functional Programming 2017
Embed
Benjamin Cosman, University of California at San Diego, USA, gives the third talk in the second panel, Tools for Verification, on the 2nd day of the ICFP conference.
Co-written by Ranjit Jhala, University of California at San Diego, USA.

We introduce the FUSION algorithm for local refinement type inference, yielding a new SMT-based method for verifying programs with polymorphic data types and higher-order functions. FUSION is concise as the programmer need only write signatures for (externally exported) top-level functions and places with cyclic (recursive) dependencies, after which FUSION can predictably synthesize the most precise refinement types for all intermediate terms (expressible in the decidable refinement logic), thereby checking the program without false alarms. We have implemented FUSION and evaluated it on the benchmarks from the LiquidHaskell suite totalling about 12KLOC. FUSION checks an existing safety benchmark suite using about half as many templates as previously required and nearly 2x faster. In a new set of theorem proving benchmarks FUSION is both 10 - 50x faster and, by synthesizing the most precise types, avoids false alarms to make verification possible.
Creative Commons Licence
Creative Commons Attribution-Non-Commercial-Share Alike 2.0 UK (BY-NC-SA): England & Wales; https://creativecommons.org/licenses/by-nc-sa/2.0/uk/

Episode Information

Series
International Conference on Functional Programming 2017
People
Benjamin Cosman
Keywords
computing
programming
technology
Department: Department of Computer Science
Date Added: 16/01/2018
Duration: 00:14:17

Subscribe

Download

SpaceSearch: A Library for Building and Verifying Solver-Aided Tools

Series
International Conference on Functional Programming 2017
Embed
Konstantin Weitz (University of Washington, USA) gives the second talk in the second panel, Tools for Verification, on the 2nd day of the ICFP conference.
Co-written by Steven Lyubomirsky, University of Washington, USA, Stefan Heule, Stanford University, USA, Emina Torlak, University of Washington, USA, Michael D. Ernst, University of Washington, USA, Zachary Matlock, University of Washington, USA.

Many verification tools build on automated solvers. These tools reduce problems in a specific application domain (e.g., compiler optimization validation) to queries that can be discharged with a highly optimized solver. But the correctness of the reductions themselves is rarely verified in practice, limiting the confidence that the solver's output establishes the desired domain-level property.

This paper presents SpaceSearch, a new library for developing solver-aided tools within a proof assistant. A user builds their solver-aided tool in Coq against the SpaceSearch interface, and the user then verifies that the results provided by the interface are sufficient to establish the tool's desired high-level properties. Once verified, the tool can be extracted to an implementation in a solver-aided language (e.g., Rosette), where SpaceSearch provides an efficient instantiation of the SpaceSearch interface with calls to an underlying SMT solver. This combines the strong correctness guarantees of developing a tool in a proof assistant with the high performance of modern SMT solvers. This paper also introduces new optimizations for such verified solver-aided tools, including parallelization and incrementalization.

We evaluate SpaceSearch by building and verifying two solver-aided tools. The first, SaltShaker, checks that RockSalt's x86 semantics for a given instruction agrees with STOKE's x86 semantics. SaltShaker identified 7 bugs in RockSalt and 1 bug in STOKE. After these systems were patched by their developers, SaltShaker verified the semantics' agreement on 15,255 instruction instantiations in under 2h. The second tool, BGProof, is a verified version of an existing Border Gateway Protocol (BGP) router configuration checker. Like the existing checker, BGProof scales to checking industrial configurations spanning over 240 KLOC, identifying 19 configuration inconsistencies with no false positives. However, the correctness of BGProof has been formally proven, and we found 2 bugs in the unverified implementation. These results demonstrate that SpaceSearch is a practical approach to developing efficient, verified solver-aided tools.

We present a logic, called Relational Higher Order Logic (RHOL), for proving relational properties of a simply typed lambda-calculus with inductive types and recursive definitions. RHOL retains the type-directed flavour of relational refinement type systems but achieves greater expressivity through rules which simultaneously reason about the two terms as well as rules which only contemplate one of the two terms. We show that RHOL has strong foundations, by proving an equivalence with higher-order logic (HOL), and leverage this equivalence to derive key meta-theoretical properties: subject reduction, admissibility of a transitivity rule and set-theoretical soundness.

Moreover, we define sound embeddings for several existing relational type systems such as relational refinement types and type systems for dependency analysis and relative cost, and we verify examples that were out of reach of prior work.
Creative Commons Licence
Creative Commons Attribution-Non-Commercial-Share Alike 2.0 UK (BY-NC-SA): England & Wales; https://creativecommons.org/licenses/by-nc-sa/2.0/uk/

Episode Information

Series
International Conference on Functional Programming 2017
People
Konstantin Weitz
Keywords
technology
computing
reprogramming
Department: Department of Computer Science
Date Added: 15/01/2018
Duration: 00:18:14

Subscribe

Download

Kami: A Platform for High-Level Parametric Hardware Specification and Its Modular Verification

Series
International Conference on Functional Programming 2017
Embed
Kami: A Platform for High-Level Parametric Hardware Specification and Its Modular Verification
Co-written by Joonwon Choi, Benjamin Sherman, Adam Chlipala, Arvind (Massachusetts Institute of Technology, USA).

It has become fairly standard in the programming-languages research world to verify functional programs in proof assistants using induction, algebraic simplification, and rewriting. In this paper, we introduce Kami, a Coq library that enables similar expressive and modular reasoning for hardware designs expressed in the style of the Bluespec language. We can specify, implement, and verify realistic designs entirely within Coq, ending with automatic extraction into a pipeline that bottoms out in FPGAs. Our methodology, using labeled transition systems, has been evaluated in a case study verifying an infinite family of multicore systems, with cache-coherent shared memory and pipelined cores implementing (the base integer subset of) the RISC-V instruction set.
Creative Commons Licence
Creative Commons Attribution-Non-Commercial-Share Alike 2.0 UK (BY-NC-SA): England & Wales; https://creativecommons.org/licenses/by-nc-sa/2.0/uk/

Episode Information

Series
International Conference on Functional Programming 2017
People
Muralidaran Vijayaraghavan
Keywords
technology
computing
programming
Department: Department of Computer Science
Date Added: 15/01/2018
Duration: 00:19:30

Subscribe

Download

Pagination

  • First page
  • Previous page
  • …
  • Page 1795
  • Page 1796
  • Page 1797
  • Page 1798
  • Page 1799
  • Page 1800
  • Page 1801
  • Page 1802
  • Page 1803
  • …
  • Next page
  • Last page

Footer

  • About
  • Accessibility
  • Contribute
  • Copyright
  • Contact
  • Privacy
  • Login
'Oxford Podcasts' X Account @oxfordpodcasts | Upcoming Talks in Oxford | © 2011-2026 The University of Oxford