Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. MIT Open Access Articles
  3. MIT Open Access Articles
  4. Unifying Execution of Imperative and Declarative Code

Unifying Execution of Imperative and Declarative Code

Thumbnail Image
Download
Name

Jackson_Unifying execution.pdf

Size

470.27 KB

Format

Adobe PDF

Checksum (MD5)

d1e979a3f67d15a8ba0c6b20e8ab2797

Author(s)
Milicevic, Aleksandar
•
Rayside, Derek
•
Yessenov, Kuat T.
•
Jackson, Daniel
Date Issued
May 2011
Journal
Proceedings of the 33rd International Conference on Software Engineering (ICSE '11)
Publisher
Association for Computing Machinery
Citation
Milicevic, Aleksandar et al. “Unifying Execution of Imperative and Declarative Code.” Proceedings of the 33rd International Conference on Software Engineering, ICSE ’11, May 21–28, 2011, Honolulu, Hawaii, USA, ACM Press, 2011. 511. Web.
Version
Author's final manuscript
Abstract
We present a unified environment for running declarative specifications in the context of an imperative object-Oriented programming language. Specifications are Alloy-like, written in first-order relational logic with transitive closure, and the imperative language is Java. By being able to mix imperative code with executable declarative specifications, the user can easily express constraint problems in place, i.e., in terms of the existing data structures and objects on the heap. After a solution is found, the heap is updated to reflect the solution, so the user can continue to manipulate the program heap in the usual imperative way. We show that this approach is not only convenient, but, for certain problems can also outperform a standard imperative implementation. We also present an optimization technique that allowed us to run our tool on heaps with almost 2000 objects.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike 3.0
http://creativecommons.org/licenses/by-nc-sa/3.0/
Persistent DSpace Link
http://hdl.handle.net/1721.1/72084
DOI of Published Version
https://doi.org/10.1145/1985793.1985863
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.