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.

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.