Tech Talk: Dependently typed functional programming in Idris, 1 of 3

Thursday, January 15, 2015

abstract: Idris is a pure functional language with full dependent types. In this series of tech talks, Idris contributor David Christiansen will provide an introduction to programming in Idris as well as using its development tools. Topics to be covered include the basics of dependent types, embedding DSLs in Idris, Idris’s notion of type providers, […]

Read More

Tech Talk: Overcoming Problems when Applying Machine Learning to Cybersecurity

Monday, January 12, 2015

abstract: The statistical and algorithmic methods of artificial intelligence have led to impressive breakthroughs that have significantly empowered the domains of finance, marketing, imaging, biology and many others. At the same time, cybersecurity has continued to be a field with more and more advantage going to attackers yet minimal lasting contributions are made from the […]

Read More

Tech Talk: Common crypto mistakes in Android – and how we can make it better

Tuesday, December 16, 2014

abstract: If you do a web search for “encrypting Strings in Android”, you’ll find a lot of example code, and they all look pretty similar. They definitely input a String and output gibberish that looks like encrypted text, but they are often incorrect. Crypto is tricky: it’s hard to tell that the gibberish that’s being […]

Read More

Tech Talk: Making GHC work for you

Friday, December 12, 2014

abstract: GHC is a state-of-the-art optimizing compiler that is constantly being improved. But despite all of the hard work by the developers, you occasionally find yourself in need of a feature that GHC does not (yet) support. Luckily for us, GHC does have multiple extension points built into the standard compilation pipeline, in addition to […]

Read More

Tech Talk: Read-copy update (RCU) validation and verification for Linux

Tuesday, November 11, 2014

abstract: Read-copy update (RCU) is a synchronization mechanism that is sometimes used as an alternative to reader-writer locking (among other things) that was added to the Linux kernel in 2002. A similar mechanism was added to Sequent’s DYNIX/ptx parallel UNIX kernel in 1993, and antecedents go back to at least 1980. Although a fully functional […]

Read More

Tech talk by Philip Wadler

Friday, October 24, 2014

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

Tuesday, October 21, 2014

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

Tech talk: Automatic Device Driver Synthesis

Tuesday, September 23, 2014

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

Friday, August 22, 2014

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

Thursday, August 28, 2014

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