Tech talk by Philip Wadler

abstract: We present four calculi for gradual typing: λB, based on the blame calculus of Wadler and Findler (2009); λC, based on the coercion calculus of Henglein (1994); and λT and λW, based on the three- some calculi with and without blame of Siek and Wadler (2010). We define translations from λB to λC, from […]

Read More

Tech Talk: Functional programming in Swift

Galois is pleased to host the following tech talk. These talks are open to the interested public–please join us! (There is no need to pre-register for the talk.) abstract: At this year’s WWDC, Apple announced Swift, a new programming language for iOS and OS X development. In this talk, I’d like to give a brief […]

Read More

2014 Bike Commute Challenge

Every September since 2007, Galois has participated in the annual Bike Commute Challenge. For the first time ever, Galois earned a top-ten finish among the 200-plus similarly sized companies that participated this year. This year’s 36.2% commute rate set a company record: Year Riders Trips Miles CommuteRate (%) Rank 2009 8 105 1115 15.2 50 […]

Read More

Why Xen?

Over the last few months, Galois has published or spoken about a variety of technologies based on the open source Xen hypervisor: our port of FreeRTOS on Xen, our MAC-enhanced version of the XenStore, and, of course, our continuing work on the Haskell Lightweight Virtual Machine (a.k.a., the HaLVM). Based on all this activity, I […]

Read More

Tech talk: Automatic Device Driver Synthesis

abstract: Automatic device driver synthesis is a radical approach to creating drivers faster and with fewer defects by generating them automatically based on hardware device specifications. I will present the design and implementation of a new driver synthesis toolkit, called Termite-2. Termite-2 is the first tool to combine the power of automation with the flexibility […]

Read More

Tech Talk: Verified Cryptographic Implementations

Abstract EasyCrypt is a computer-assisted framework for proving the security of cryptographic constructions. However, there is a significant gap between security proofs done in the usual provable security style and cryptographic implementations used in practice; as a consequence, real-world cryptography is sometimes considered as “one of the many ongoing disaster areas in security. We have […]

Read More

Tech Talk: SmartCheck – Automatic and Efficient Counterexample Reduction and Generalization

Abstract QuickCheck is a powerful library for automatic test-case generation. Because QuickCheck performs random testing, some of the counterexamples discovered are very large. QuickCheck provides an interface for the user to write shrink functions to attempt to reduce the size of counterexamples. Hand-written implementations of shrink can be complex, inefficient, and consist of significant boilerplate […]

Read More

Tech Talk: Verifying C programs in Coq using VST

Abstract C programs are notoriously difficult to reason about, either for safety or full functional correctness. Even with a program logic powerful enough to prove the necessary properties, the proof has the assumption that the compiler behaves exactly the way it is expected to. Verified Software Toolchain (VST) answers this problem by providing a logic […]

Read More

Tech Talk: Vinyl: Records in Haskell & Type Theory

abstract: Records in Haskell are notoriously difficult to compose; many solutions have been proposed. Vinyl lies in the space of library-level approaches, and addresses polymorphism, extensibility, effects and strictness. I describe how Vinyl approaches record families over arbitrary key spaces using a Tarski universe construction, as well as a method for immersing each field of […]

Read More

Tech Talk: Sunroof and a Blank Canvas: A Tale of Two DSLs

Abstract Sunroof is an embedded Haskell Domain Specific Language (DSL) that compiles to JavaScript. Blank Canvas is an embedded Haskell DSL that provides direct access to the HTML5 JavaScript Canvas. Both DSLs superficially provide the same capabilities, but make different trade-offs in the DSL design space. Sunroof uses monadic reification to enable bindings in the […]

Read More