2016 Volume E99.D Issue 3 Pages 751-755
Adding versatile interactions to imperative programming - C, Java and Android - is an essential task. Unfortunately, existing languages provide only limited constructs for user interaction. These constructs are usually in the form of unbounded quantification. For example, existing languages can take the keyboard input from the user only via the read(x)/scan(x) statement. Note that the value of x is unbounded in the sense that x can have any value. This statement is thus not useful for applications with bounded inputs. To support bounded choices, we propose new bounded-choice statements for user interation. Each input device (keyboard, mouse, touchpad, ...) naturally requires a new bounded-choice statement. To make things simple, however, we focus on a bounded-choice statement for keyboard - kchoose - to allow for more controlled and more guided participation from the user. We illustrate our idea via CBI, an extension of the core C with a new bounded-choice statement for the keyboard.