Résumé
Entering repetitive sequences of commands (or repetitive tasks) is a well-known characteristic of human–computer interaction. To deal with this problem, early works have associated macro or script languages with interactive environments for example, macros in Excel or Lisp scripts in Emacs. They allow the user to write a program that can be invoked later to perform a sequence of commands automatically. The limitation of this approach is that, generally, users do not want to or cannot spend too much effort on programming. Adaptive programming environment (APE), a software assistant embedded into the VisualWorks Smalltalk interactive programming environment, watches what the user is doing, draws on machine learning to learn the user's habits, and offers to complete repetitive tasks on his or her behalf. The goal of the APE project is threefold: (1) to design an assistant that is able to automate repetitive tasks with a minimal amount of user intervention, (2) to design an assistant to replay and automate complex repetitive tasks, and (3) to design an assistant that disrupts the user's work as little as possible that is, that makes the right suggestion at the right moment. As a consequence, APE employs a machine-learning algorithm that is specifically designed to learn efficiently and rapidly not only what to suggest to the user but also when to make a suggestion.