The system for business automation (SBA): programming language
Communications of the ACM
A session with Tinker: Interleaving program testing with program design
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Principles of Program Design
Visual programming, programming by example, and program visualization: a taxonomy
CHI '86 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Cooperating knowledge-based assistants for the office
ACM Transactions on Information Systems (TOIS)
A spreadsheet interface for logic programming
CHI '89 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
A Daemon-based programming system for office procedures.
COCS '84 Proceedings of the second ACM-SIGOA conference on Office information systems
Hi-index | 0.00 |
Programming by Examples is one of the methodologies that has been proposed for supporting the development of office applications by non computer specialists. Programs are built by performing direct manipulations on objects visually represented on a display, simulating the execution of the program on exemplary data items. We distinguish two major approaches: a declarative approach (SBA by DeJong and Zloof) and a procedural approach (Tinker by Lieberman and Hewitt). We examine the computational power and the expressive convenience of the two systems. The procedural approach achieves full generality by allowing the user to explicitly introduce iterative or recursive control structures. The SBA system has built in control mechanisms, which avoids explicit use of such constructs, but it is correspondingly less powerful. We present an algebraic model of SBA programs which allows us to determine the expressive power of the SBA language. We discuss a more general control mechanism then the one embedded in SBA, based on homomorphic transformations, which allows to compute all primitive recursive functions. Further flexibility is obtained by coupling the PBE methodology with the knowledge representation language Omega.