Ankush Das

I am a fifth year PhD student at Carnegie Mellon University advised by Prof. Jan Hoffmann. I am broadly interested in programming languages with a specific focus on resource analysis, session types and language design for smart contracts on the blockchain.

I am the lead designer and developer of Nomos, a domain-specific language for implementing smart contracts. This language provides 4 key features, i) a session type based mechanism for expressing the contract protocol, ii) a resource type system for expressing and automatically verifying the gas bound of a transaction, iii) a linear type system to handle assets, and iv) a design guarantee of no re-entrancy attacks.

I have also designed Rast along with Prof. Frank Pfenning, a language implementing resource-aware session types with arithmetic refinements. This implementation complements my work on designing temporal and ergometric session types for parallel and sequential complexity analysis of concurrent session-typed programs.

Before joining CMU, I worked as a Research Fellow at Microsoft Research, India with Akash Lal where I developed an efficient method to perform precise alias analysis for C and C++ programs for Windows driver modules to automatically infer safe null pointer dereferences.

I completed my undergraduate at IIT Bombay, India in 2015 where I worked with Prof. Supratik Chakraborty and Prof. Akshay S on deciding termination of linear loop programs.

News

Jul 2020 Our submission Exact and Linear-Time Gas-Cost Analysis has been accepted to SAS 2020.
Jul 2020 Finally, our submission Resource-Aware Session Types for Digital Contracts has been accepted to CSF 2021!
Jul 2020 Our submission Verified Linear Session-Typed Concurrent Programming has been accepted to PPDP 2020.
Jun 2020 Our submission Session Types with Arithmetic Refinements has been accepted to CONCUR 2020.
Jun 2020 Our paper Rast: Resource-Aware Session Types with Arithmetic Refinements has been awarded the best system decription paper by a junior researcher of FSCD 2020!
Apr 2020 Our latest submission Rast: Resource-Aware Session Types with Arithmetic Refinements has been accepted to FSCD 2020.
2019 — 2020 Invited talk titled Resource-Aware Session Types for Digital Contracts at Purdue University, University of Illinois, Urbana-Champaign, Facebook, Seattle, University of Washington, IIT Bombay, IIT Delhi and Microsoft Research, Bangalore.
Aug 2019 I just finished an amazing internship with Shaz Qadeer at Facebook. My goal was to design static gas analysis techniques for the Move language.
Feb 2019 I successfully proposed my thesis: Resource-Aware Session Types for Digital Contracts.

Publications

15. Exact and Linear-Time Gas-Cost Analysis
SAS 2020

Ankush Das and Shaz Qadeer.
In Proceedings of the 27th International Static Analysis Symposium.

14. Resource-Aware Session Types for Digital Contracts
CSF 2021

Ankush Das, Stephanie Balzer, Jan Hoffmann, Frank Pfenning and Ishani Santurkar.
In Proceedings of the 34th IEEE Computer Security Foundations Symposium.

13. Verified Linear Session-Typed Concurrent Programming
PPDP 2020

Ankush Das and Frank Pfenning.
In Proceedings of the 22nd International Symposium on Principles and Practice of Declarative Programming.

12. Session Types with Arithmetic Refinements
CONCUR 2020

Ankush Das and Frank Pfenning.
In Proceedings of the 31st International Conference on Concurrency Theory.

11. Rast: Resource-Aware Session Types with Arithmetic Refinements
FSCD 2020

Ankush Das and Frank Pfenning.
In Proceedings of the 5th International Conference on Formal Structures for Computation and Deduction.
Best system decription paper award by a junior researcher

10. Session Types with Arithmetic Refinements and Their Application to Work Analysis
arXiv Preprint: 2001.04439 [cs.PL]

Ankush Das and Frank Pfenning.

9. Parallel Complexity Analysis with Temporal Session Types
ICFP 2018

Ankush Das, Jan Hoffmann and Frank Pfenning.
In 23rd International Conference on Functional Programming.

8. Work Analysis with Resource-Aware Session Types
LICS 2018

Ankush Das, Jan Hoffmann and Frank Pfenning.
In Proceedings of the 33rd Annual ACM/IEEE Symposium on Logic in Computer Science.

7. On Petri Nets with Hierarchical Special Arcs
CONCUR 2017

S. Akshay, Supratik Chakraborty, Ankush Das, Vishal Jagannath and Sai Sandeep.
In Proceedings of the 28th International Conference on Concurrency Theory.

6. Precise Null Pointer Analysis Through Global Value Numbering
ATVA 2017

Ankush Das and Akash Lal.
In Proceedings of the 15th International Symposium on Automated Technology for Verification and Analysis.

5. ML for ML: Learning Cost Semantics by Experiment
TACAS 2017

Ankush Das and Jan Hoffmann.
In Proceedings of the 23rd International Conference on Tools and Algorithms for the Construction and Analysis of Systems.

4. Towards Automatic Resource Bound Analysis for OCaml
POPL 2017

Jan Hoffmann, Ankush Das and Shu-Chun Weng.
In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages.

3. Learning Cost Semantics for Modeling Running Time of OCaml Programs
LOLA 2016

Ankush Das and Jan Hoffmann.
Workshop on Syntax and Semantics of Low-Level Languages

2. Angelic Verification: Precise Verification Modulo Unknowns
CAV 2015

Ankush Das, Shuvendu K. Lahiri, Akash Lal, Yi Li.
In Proceedings of the 27th International Conference on Computer Aided Verification.

1. On Pure Nash Equilibria in Stochastic Games
TAMC 2015

Ankush Das, Shankara Narayanan Krishna, Lakshmi Manasa, Ashutosh Trivedi, Dominik Wojtczak.
In Proceedings of the 12th Annual Conference on Theory and Applications of Models of Computation.

Mentored Students

Subtyping in Nomos

Ishani Santurkar

Ishani is a second year BS student in the Computer Science department in Carnegie Mellon University.

Project: The base language of session types supports no functional programming or data structures, thus not practical for real-world programming. Nomos integrates session-based programming into a functional core using a linear contextual monad. Ishani was responsible for developing the theory and implementation for this integration. In a second project, Ishani has been adding subtyping to Nomos, again both in theory and implementation.

Integrating Nomos with a Blockchain

Stephen McIntosh

Stephen is a third year BS student in the Computer Science department in Carnegie Mellon University.

Project: Nomos is a general-purpose programming language integrating session types with functional programming with support for resource analysis. To support smart contract programming with Nomos, we need to also introduce blockchain-specific syntax and create blockchain-related data structures. Stephen is responsible for maintaining smart contracts in a session-type configuration to create the blockchain state, and the log of transactions to create the blockchain.

Teaching

Teaching Assistant

Types and Programming Languages

CS 15-814, Carnegie Mellon University, Fall 2016.
Instructor: Karl Crary

Constructive Logic

CS 15-317, Carnegie Mellon University, Fall 2018.
Instructor: Karl Crary