Imperative programming has great merits. As the ubiquitous style, it is familiar and its linear, step by step nature is favored by the human mind. Expert programmers, however, are aware of its major flaw: it is easy for meanings to get lost in piles of code, making software hard to understand, extend, and debug. Constraint-based programming as an alternative has been observed to suffer much less from these flaws, where the “what” (the intention) is expressed rather than the “how” (the algorithm) in performing a computation. It is the job of the system to automatically achieve the intention through constraint solving. Sadly, poor performance and expressiveness has prevented this style from seeing widespread adoption.
We propose a general programming model as a kind of a sweet spot between imperative and constraint-based programming. Our aim is to leverage many benefits of constraint-based programming such as understandability, behavioral modularity, extensibility, etc., in a practical way and without suffering the breakdown of the approach as with the traditional constraint-based paradigm. This model enforces a certain organization where at the top-level a program is simply composed of a set of constraints. However, the constraints aren’t necessarily solved by an external entity, and the programmer uses imperative code to specify (1) how each constraint should be solved in isolation, and (2) how to combine individual solutions.
We have implemented a tool called \tool that incorporates this model in JavaScript, and built a number of realistic applications in it. In this paper we demonstrate the merits of our approach by comparing it with traditional imperative as well as constraint-based approaches.
Wed 28 OctDisplayed time zone: Eastern Time (US & Canada) change
13:30 - 15:00 | |||
13:30 22mTalk | Towards Secure Integration of Cryptographic Software Onward! Papers Steven Arzt TU Darmstadt, Sarah Nadi Technische Universität Darmstadt, Karim Ali TU Darmstadt, Sebastian Erdweg TU Darmstadt, Germany, Eric Bodden Fraunhofer SIT and TU Darmstadt, Mira Mezini TU Darmstadt Link to publication DOI Media Attached | ||
13:52 22mTalk | Runtime Metric Meets Developer - Building Better Cloud Applications Using Feedback Onward! Papers Jürgen Cito University of Zurich, Philipp Leitner University of Zurich, Harald Gall University of Zurich, Aryan Dadashi SAP, Anne Keller SAP, Andreas Roth SAP Pre-print Media Attached | ||
14:15 22mTalk | Constraints as a Design Pattern Onward! Papers Hesam Samimi SAP Labs, Alessandro Warth SAP Labs, Mahdi Eslamimehr SAP Labs, Alan Borning University of Washington, USA | ||
14:37 22mTalk | The Moldable Inspector Onward! Papers Andrei Chiş University of Bern, Switzerland, Tudor Gîrba tudorgirba.com, Switzerland, Oscar Nierstrasz University of Bern, Switzerland, Aliaksei Syrel University of Bern, Switzerland DOI Pre-print Media Attached |