Symbolic Representations of Programming Languages