Michael Hicks

Orcid: 0000-0002-2759-9223

Affiliations:
  • Amazon Web Services, USA
  • University of Maryland, College Park, MD, USA


According to our database1, Michael Hicks authored at least 152 papers between 1997 and 2024.

Collaborative distances:

Timeline

Legend:

Book 
In proceedings 
Article 
PhD thesis 
Dataset
Other 

Links

Online presence:

On csauthors.net:

Bibliography

2024
Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization.
Proc. ACM Program. Lang., 2024

Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization (Extended Version).
CoRR, 2024

How We Built Cedar: A Verification-Guided Approach.
Proceedings of the Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering, 2024

2023
A Verified Optimizer for Quantum Circuits.
ACM Trans. Program. Lang. Syst., September, 2023

Fuzzing Configurations of Program Options - RCR Report.
ACM Trans. Softw. Eng. Methodol., April, 2023

Fuzzing Configurations of Program Options.
ACM Trans. Softw. Eng. Methodol., April, 2023

Fat Pointers for Temporal Memory Safety of C.
Proc. ACM Program. Lang., April, 2023

Symphony: Expressive Secure Multiparty Computation with Coordination.
Art Sci. Eng. Program., February, 2023

Qunity: A Unified Language for Quantum and Classical Computing.
Proc. ACM Program. Lang., January, 2023

A formal model of Checked C.
J. Comput. Secur., 2023

2022
C to checked C by 3c.
Proc. ACM Program. Lang., 2022

Verified compilation of Quantum oracles.
Proc. ACM Program. Lang., 2022

Qunity: A Unified Language for Quantum and Classical Computing.
CoRR, 2022

A Formally Certified End-to-End Implementation of Shor's Factorization Algorithm.
CoRR, 2022

FIXREVERTER: A Realistic Bug Injection Methodology for Benchmarking Fuzz Testing.
Proceedings of the 31st USENIX Security Symposium, 2022

Garbage Collection Makes Rust Easier to Use: A Randomized Controlled Trial of the Bronze Garbage Collector.
Proceedings of the 44th IEEE/ACM 44th International Conference on Software Engineering, 2022

Understanding the How and the Why: Exploring Secure Development Practices through a Course Competition.
Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security, 2022

2021
A verified optimizer for Quantum circuits.
Proc. ACM Program. Lang., 2021

Does the Bronze Garbage Collector Make Rust Easier to Use? A Controlled Experiment.
CoRR, 2021

Benefits and Drawbacks of Adopting a Secure Programming Language: Rust as a Case Study.
Proceedings of the Seventeenth Symposium on Usable Privacy and Security, 2021

BullFrog: Online Schema Evolution via Lazy Evaluation.
Proceedings of the SIGMOD '21: International Conference on Management of Data, 2021

Tutorial: Making C Programs Safer with Checked C.
Proceedings of the IEEE Secure Development Conference, 2021

Proving Quantum Programs Correct.
Proceedings of the 12th International Conference on Interactive Theorem Proving, 2021

2020
Build It, Break It, Fix It Contests: Motivated Developers Still Make Security Mistakes.
login Usenix Mag., 2020

Build It, Break It, Fix It: Contesting Secure Development.
ACM Trans. Priv. Secur., 2020

Verifying replicated data types with typeclass refinements in Liquid Haskell.
Proc. ACM Program. Lang., 2020

A language for probabilistically oblivious computation.
Proc. ACM Program. Lang., 2020

Conferences in an era of expensive carbon.
Commun. ACM, 2020

Understanding security mistakes developers make: Qualitative analysis from Build It, Break It, Fix It.
Proceedings of the 29th USENIX Security Symposium, 2020

Short Paper: Probabilistically Almost-Oblivious Computation.
Proceedings of the PLAS'20: Proceedings of the 15th Workshop on Programming Languages and Analysis for Security, 2020

2019
LWeb: information flow security for multi-tier web applications.
Proc. ACM Program. Lang., 2019

Coverage guided, property based testing.
Proc. ACM Program. Lang., 2019

Quantitative robustness analysis of quantum programs.
Proc. ACM Program. Lang., 2019

Verified Optimization in a Quantum Intermediate Representation.
CoRR, 2019

Formal Verification vs. Quantum Uncertainty.
Proceedings of the 3rd Summit on Advances in Programming Languages, 2019

Achieving Safety Incrementally with Checked C.
Proceedings of the Principles of Security and Trust - 8th International Conference, 2019

Wys*: A DSL for Verified Secure Multi-party Computations.
Proceedings of the Principles of Security and Trust - 8th International Conference, 2019

MVEDSUA: Higher Availability Dynamic Software Updates via Multi-Version Execution.
Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, 2019

2018
Quantitative Robustness Analysis of Quantum Programs (Extended Version).
CoRR, 2018

Checked C: Making C Safe by Extension.
Proceedings of the 2018 IEEE Cybersecurity Development, SecDev 2018, Cambridge, MA, USA, 2018

What's the Over/Under? Probabilistic Bounds on Information Leakage.
Proceedings of the Principles of Security and Trust - 7th International Conference, 2018

Evaluating Design Tradeoffs in Numeric Static Analysis for Java.
Proceedings of the Programming Languages and Systems, 2018

Evaluating Fuzz Testing.
Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, 2018

2017
WYS*: A Verified Language Extension for Secure Multi-party Computations.
CoRR, 2017

Summoning Demons: The Pursuit of Exploitable Bugs in Machine Learning.
CoRR, 2017

Quantifying vulnerability of secret generation using hyper-distributions (extended version).
CoRR, 2017

Counterexample-guided approach to finding numerical invariants.
Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, 2017

Quantifying Vulnerability of Secret Generation Using Hyper-Distributions.
Proceedings of the Principles of Security and Trust - 6th International Conference, 2017

Decomposition instead of self-composition for proving the absence of timing channels.
Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2017

Languages for Oblivious Computation.
Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security, 2017

2016
C-strider: type-aware heap traversal for C.
Softw. Pract. Exp., 2016

IEEE SecDev 2016: Prioritizing Secure Development.
IEEE Secur. Priv., 2016

Safe and Flexible Controller Upgrades for SDNs.
Proceedings of the Symposium on SDN Research, 2016

Tedsuto: A General Framework for Testing Dynamic Software Updates.
Proceedings of the 2016 IEEE International Conference on Software Testing, 2016

Evolving NoSQL Databases without Downtime.
Proceedings of the 2016 IEEE International Conference on Software Maintenance and Evolution, 2016

Build It, Break It, Fix It: Contesting Secure Development.
Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, 2016

2015
How to Authenticate any Data Structure.
Adv. Math. Commun., 2015

Morpheus: Safe and Flexible Dynamic Updates for SDNs.
CoRR, 2015

Incremental computation with names.
Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, 2015

GhostRider: A Hardware-Software System for Memory Trace Oblivious Computation.
Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems, 2015

2014
Kitsune: Efficient, General-Purpose Dynamic Software Updating for C.
ACM Trans. Program. Lang. Syst., 2014

The Synergy Between Programming Languages and Cryptography (Dagstuhl Seminar 14492).
Dagstuhl Reports, 2014

Polymonadic Programming.
Proceedings of the Proceedings 5th Workshop on Mathematically Structured Functional Programming, 2014

Wysteria: A Programming Language for Generic, Mixed-Mode Multiparty Computations.
Proceedings of the 2014 IEEE Symposium on Security and Privacy, 2014

Quantifying Information Flow for Dynamic Secrets.
Proceedings of the 2014 IEEE Symposium on Security and Privacy, 2014

Automating Efficient RAM-Model Secure Computation.
Proceedings of the 2014 IEEE Symposium on Security and Privacy, 2014

Authenticated data structures, generically.
Proceedings of the 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2014

Adapton: composable, demand-driven incremental computation.
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, 2014

Rubah: DSU for Java on a stock JVM.
Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications, 2014

2013
Principles of POPL.
ACM SIGPLAN Notices, 2013

Dynamic enforcement of knowledge-based security policies using probabilistic abstract interpretation.
J. Comput. Secur., 2013

Knowledge inference for optimizing secure multi-party computation.
Proceedings of the 2013 ACM SIGPLAN Workshop on Programming Languages and Analysis for Security, 2013

Expositor: scriptable time-travel debugging with first-class traces.
Proceedings of the 35th International Conference on Software Engineering, 2013

Rubah: Efficient, General-purpose Dynamic Software Updating for Java.
Proceedings of the 5th Workshop on Hot Topics in Software Upgrades, 2013

Memory Trace Oblivious Program Execution.
Proceedings of the 2013 IEEE 26th Computer Security Foundations Symposium, 2013

2012
Evaluating Dynamic Software Update Safety Using Systematic Testing.
IEEE Trans. Software Eng., 2012

POPL'12 program chair's report: (or, how to run a medium-sized conference).
ACM SIGPLAN Notices, 2012

Specifying and Verifying the Correctness of Dynamic Software Updates.
Proceedings of the Verified Software: Theories, Tools, Experiments, 2012

Knowledge-oriented secure multiparty computation.
Proceedings of the 2012 Workshop on Programming Languages and Analysis for Security, 2012

Automating object transformations for dynamic software updating.
Proceedings of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2012

Kitsune: efficient, general-purpose dynamic software updating for C.
Proceedings of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2012

Towards standardized benchmarks for Dynamic Software Updating systems.
Proceedings of the 4th International Workshop on Hot Topics in Software Upgrades, 2012

A study of dynamic software update quiescence for multithreaded programs.
Proceedings of the 4th International Workshop on Hot Topics in Software Upgrades, 2012

Deanonymizing mobility traces: using social network as a side-channel.
Proceedings of the ACM Conference on Computer and Communications Security, 2012

2011
LOCKSMITH: Practical static race detection for C.
ACM Trans. Program. Lang. Syst., 2011

Directed Symbolic Execution.
Proceedings of the Static Analysis - 18th International Symposium, 2011

Dynamic inference of static types for ruby.
Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2011

Lightweight monadic programming in ML.
Proceedings of the Proceeding of the 16th ACM SIGPLAN international conference on Functional Programming, 2011

Foreword.
Proceedings of the Workshops Proceedings of the 27th International Conference on Data Engineering, 2011

State transfer for clear and efficient runtime updates.
Proceedings of the Workshops Proceedings of the 27th International Conference on Data Engineering, 2011

Dynamic Enforcement of Knowledge-Based Security Policies.
Proceedings of the 24th IEEE Computer Security Foundations Symposium, 2011

2010
Serializing C intermediate representations for efficient and portable parsing.
Softw. Pract. Exp., 2010

SCORE: agile research group management.
Commun. ACM, 2010

Dynamically checking ownership policies in concurrent c/c++ programs.
Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2010

2009
Cross-tier, label-based security enforcement for web applications.
Proceedings of the ACM SIGMOD International Conference on Management of Data, 2009

Passive aggressive measurement with MGRP.
Proceedings of the ACM SIGCOMM 2009 Conference on Applications, 2009

Static type inference for Ruby.
Proceedings of the 2009 ACM Symposium on Applied Computing (SAC), 2009

Dynamic software updates: a VM-centric approach.
Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, 2009

Safe and timely updates to multi-threaded programs.
Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, 2009

A theory of typed coercions and its applications.
Proceedings of the Proceeding of the 14th ACM SIGPLAN international conference on Functional programming, 2009

Efficient Systematic Testing for Dynamically Updatable Software.
Proceedings of the 2nd ACM Workshop on Hot Topics in Software Upgrades, 2009

Tests to the left of me, types to the right: how not to get stuck in the middle of a ruby execution.
Proceedings of the Proceedings for the 1st workshop on Script to Program Evolution, 2009

Directing JavaScript with arrows.
Proceedings of the 5th Symposium on Dynamic Languages, 2009

The ruby intermediate language.
Proceedings of the 5th Symposium on Dynamic Languages, 2009

2008
Modular Information Hiding and Type-Safe Linking for C.
IEEE Trans. Software Eng., 2008

Verified enforcement of stateful information release policies.
ACM SIGPLAN Notices, 2008

Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction.
J. Funct. Program., 2008

Formalizing Soundness of Contextual Effects.
Proceedings of the Theorem Proving in Higher Order Logics, 21st International Conference, 2008

Fable: A Language for Enforcing User-defined Security Policies.
Proceedings of the 2008 IEEE Symposium on Security and Privacy (SP 2008), 2008

Contextual effects for version-consistent dynamic software updatingalland safe concurrent programming.
Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2008

Path projection for user-centered static analysis tools.
Proceedings of the 8th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, 2008

Implicit Flows: Can't Live with 'Em, Can't Live without 'Em.
Proceedings of the Information Systems Security, 4th International Conference, 2008

2007
<i>Mutatis Mutandis</i>: Safe and predictable dynamic software updating.
ACM Trans. Program. Lang. Syst., 2007

Defeating script injection attacks with browser-enforced embedded policies.
Proceedings of the 16th International Conference on World Wide Web, 2007

Modular information hiding and type-safe linking for C.
Proceedings of TLDI'07: 2007 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation, 2007

Improving software quality with static analysis.
Proceedings of the 7th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, 2007

Automated detection of persistent kernel control-flow attacks.
Proceedings of the 2007 ACM Conference on Computer and Communications Security, 2007

2006
Safe manual memory management in Cyclone.
Sci. Comput. Program., 2006

Existential Label Flow Inference Via CFL Reachability.
Proceedings of the Static Analysis, 13th International Symposium, 2006

LOCKSMITH: context-sensitive correlation analysis for race detection.
Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, 2006

Practical dynamic software updating for C.
Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, 2006

Trusted declassification: : high-level policy for a security-typed language.
Proceedings of the 2006 Workshop on Programming Languages and Analysis for Security, 2006

Managing Policy Updates in Security-Typed Languages.
Proceedings of the 19th IEEE Computer Security Foundations Workshop, 2006

2005
Dynamic software updating.
ACM Trans. Program. Lang. Syst., 2005

Understanding source code evolution using abstract syntax tree matching.
ACM SIGSOFT Softw. Eng. Notes, 2005

Dynamic inference of polymorphic lock types.
Sci. Comput. Program., 2005

Mutatis mutandis: safe and predictable dynamic software updating.
Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2005

Merging Network Measurement with Data Transport.
Proceedings of the Passive and Active Network Measurement, 6th International Workshop, 2005

Tagged Sets: A Secure and Transparent Coordination Medium.
Proceedings of the Coordination Models and Languages, 7th International Conference, 2005

2004
Transparent proxies for java futures.
Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2004

Experience with safe manual memory-management in cyclone.
Proceedings of the 4th International Symposium on Memory Management, 2004

2003
A secure PLAN.
IEEE Trans. Syst. Man Cybern. Part C, 2003

Dynamic rebinding for marshalling and update, with destruct-time?
Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming, 2003

2002
Cyclone: A Safe Dialect of C.
Proceedings of the General Track: 2002 USENIX Annual Technical Conference, 2002

Region-Based Memory Management in Cyclone.
Proceedings of the 2002 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2002

Evolution in Action: Using Active Networking to Evolve Network Support for Mobility.
Proceedings of the Active Networks, IFIP-TC6 4th International Working Conference, 2002

Experiences with Capsule-Based Active Networking.
Proceedings of the 2002 DARPA Active Networks Conference and Exposition (DANCE 2002), 2002

2001
Dynamic Software Updating.
Proceedings of the 2001 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2001

Compiling PLAN to SNAP.
Proceedings of the Active Networks, IFIP-TC6 Third International Working Conference, 2001

Practical Programmable Packets.
Proceedings of the Proceedings IEEE INFOCOM 2001, 2001

2000
Safe and Flexible Dynamic Linking of Native Code.
Proceedings of the Types in Compilation, Third International Workshop, 2000

Active Networking Means Evolution (or Enhanced Extensibility Required).
Proceedings of the Active Networks, Second International Working Conference, 2000

Scalable Resource Control in Active Networks.
Proceedings of the Active Networks, Second International Working Conference, 2000

1999
Specifying the PLAN Network Programming Langauge.
Proceedings of the Third Workshop on Higher-Order Operational Techniques in Semantics, 1999

Transparent Communication for Distributed Objects in Java.
Proceedings of the ACM 1999 Conference on Java Grande, JAVA '99, San Francisco, CA, USA, 1999

A Secure Plan.
Proceedings of the Active Networks, First International Working Conference, 1999

PLANet: An Active Internetwork.
Proceedings of the Proceedings IEEE INFOCOM '99, 1999

1998
The SwitchWare active network architecture.
IEEE Netw., 1998

A Study of Large Object Spaces.
Proceedings of the International Symposium on Memory Management, 1998

PLAN: A Packet Language for Active Networks.
Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP '98), 1998

Network Programming Using PLAN.
Proceedings of the Internet Programming Languages, 1998

1997
The Measured Cost of Copying Garbage Collection Mechanisms.
Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming (ICFP '97), 1997


  Loading...