This research investigates the utility of using demonstrational techniques in user interfaces for computer programs. Demonstrational user interfaces provide concrete examples on which the user operates, rather than requiring the user to deal with abstractions such as variables and control structures. In the demonstrational approach, the user provides examples and the system infers how the examples would be generalized to create something that is more general purpose. More successful approaches limit the inferences to a specific domain. Two applications are chosen in this research. One is text formatting and the other is a visual shell to the UNIX operating system. In the second case, a macro system is created without using a programming language by a rule-based inference system. The user interacts with simple commands. The system determines from the user's actions how to construct more complicated commands given also its knowledge about file and operating system details. The two applications are to be released to up to about 3000 subjects providing evaluation of potential advantages and issues. This research addresses issues relevant to broader programmatic goals including making computer systems adapt to end users.