The Sparse Abstract Machine