Toward A Molecular Programming Language For Algorithmic Self-Assembly