1-2hit |
Keehang KWON Jeongyoon SEO Daeseong KANG
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.
One of the long-standing research problems on logic programming is to treat the cut predicate in a logical, high-level way. We argue that this problem can be solved by adopting linear logic and choice-disjunctive goal formulas of the form G0 ⊕ G1 where G0, G1 are goals. These goals have the following intended semantics: choose the true disjunct Gi and execute Gi where i (= 0 or 1), while discarding the unchosen disjunct. Note that only one goal can remain alive during execution. These goals thus allow us to specify mutually exclusive tasks in a high-level way. Note that there is another use of cut which is for breaking out of failure-driven loops and efficient heap management. Unfortunately, it is not possible to replace cut of this kind with use of choice-disjunctive goals.