Bidirectional Object-Oriented Programming: Towards Programmatic and Direct Manipulation of Objects | AMiner