Introduction Part I: Programming Languages for End Users 1. The User Interface is the Language 2. A Component Architecture for Personal Computer Software 3. Design Support Environments for End Users 4. The Use-Mention Perspective on Programming for the Interface 5. Why the User Interface is Not the Programming Language-and How It Can Be Part II: Programming Languages for Programmers 6. How Programming Languages Might Better Support User Interface Tools 7. Requirements for User Interface Programming Languages 8. Languages for the Construction of Multi-User Multi-Media Synchronous (MUMMS) Applications 9. Ideas from Garnet for Future User Interface Programming Languages 10. Constraint Imperative Programming Languages for Building Interactive Systems 11. An Active-Value-Spreadsheet Model for Interactive Languages 12. Properties of User Interface Systems and the Siri Programming Language 13. A Foundation for User Interface Construction 14. User Interface Programming with Cooperative Processes 15. Constructing User Interfaces with Functions and Temporal Constraints 16. Different Languages for Different Development Activities: Behavioral Representation Techniques for User Interface Design 17. Hints on the Design of User Interface Language Features—Lessons from the Design of Thring Part III: Workshop Reports 18. Report of the "End-User Programming" Working Group 19. Report of the "User/Programmer Distinction" Working Group 20. Report of the "Linguistic Support" Working Group 21. Future Research Issues in Languages for Developing User Interfaces