Bidirectional programming is somewhat related.
http://www.cis.upenn.edu/~bcpierce/papers/lenses-etapsslides...
e.g. read a file, parse it into an AST, modify AST (i.e. rename a variable), unparse the new AST, close the file.
http://www.cis.upenn.edu/~bcpierce/papers/lenses-etapsslides...
e.g. read a file, parse it into an AST, modify AST (i.e. rename a variable), unparse the new AST, close the file.