Van Chan Ngo Computer Scientist and Software Engineer Research interests are in formal methods, programming languages, compilers, and language-based security. I am a member of the Principles of Programming Group, School of Computer Science, Carnegie Mellon University.

Tesla is not handling the well-known limitations of AI

Tesla is not handling the well-known limitations of AI.

(External) Review Committee at PLDI 2019

Serve as a member of the external review committee at PLDI 2019.

Paper at PLDI 2018

Paper about automatically deriving bound on the expected value of resource usage for probabilistic programs at PLDI 2018.

An Example of Probabilistic Programming

A recursive implementation of a problem in foundation of computer science (trapped miner) as a probabilistic program in OCaml.

A Biased Random Walk in OCaml

A recursive implementation of a biased random walk in OCaml.

The Smallest Free Number

Pearls of Functional Algorithm Design - The Smallest Free Number

Expected Bounds - Resource Analysis for Probabilistic Programs

Expected Bounds - Resource Analysis for Probabilistic Programs.

Trie Data Structure

Trie data structure and implementation in OCaml.

Schloss Dagstuhl - NSF Support Grant 2017

Schloss Dagstuhl - NSF Support Grant.

Paper at S&P Oakland 2017

Paper about language-based security at Oakland 2017.

Constant-time List Truncation Implementation in OCaml

An example of constant-time implementation for truncating a list in OCaml.

Probabilistic Functional Programs

An example of probabilistic functional program.

Variable-length Arguments in OCaml

Variable-length arguments in OCaml with the concept of folding.


B-tree implementation in OCaml.

Red-Black Tree

Red-black tree implementation in OCaml.

Heap-Sort Algorithm

Heap-sort algorithm implementation in OCaml.

Binary Heap

Heap implementation in OCaml.

Dynamic Permutation

Dynamic permutation implementation in OCaml.


Permutation implementation in OCaml.

Dutch Partition

Dutch partition problem implementation in OCaml.

Paper at ESLsyn Conference

Paper at ESLsyn 2014.

IMO 2016

International mathematic Olympic 2016.

Synchronous Programming

Synchronous programming.

Reactive and Synchronous Reactive Programming

Reactive and synchronous reactive programming.

Paper about PSCV

Paper about PSCV at CAV 2016.

Additional Functions for Lists

Additional functions for lists in the standard library.

Shortest Substring Contains a List of Strings

Given a string s and a list of strings ls. Find a shortest substring of s that contains all strings in a list of strings ls.

Writing Notes on Github with Jekyll

I decided to write my notes (aka blogs) on GitHub cooperating with Jekyll instead of WordPress.