Northeastern University
College of Computer and Information Science

Contact Us

  • Contact Us

Search

  • Explore CCIS
    • About the College
      • Dean’s Message
    • Undergraduate Programs
      • Advising
      • Degree Programs
      • Minor in Computer Science
      • Minor in Information Science
      • Tutoring
      • Scholarships
      • Student Awards
    • Graduate Programs
      • Degree Programs
      • Current Students
    • Co-op
    • People and Organizations
      • Faculty
      • Administrative Staff
      • Student Organizations
    • Contact Us
    • Research
      • Research Groups
      • Centers and Institutes
    • Technical Help
  • Prospective Students
  • Current Students
  • Alumni
  • Employers
Layout Image
  • About the College
    • Dean’s Message
    • CCIS Videos
  • Undergraduate Programs
    • Advising
    • Degree Programs
    • Minor in Computer Science
    • Minor in Information Science
    • Scholarships
      • Bradley E. Bailey Scholarship
      • Darwin Scholarship
      • Jane K. Wenzinger Scholarship Fund
      • Department of Defense Information Assurance Scholarship Program
      • NSF Federal Cyber Service: Scholarship for Service
    • Student Awards and Research
    • Tutoring
  • Graduate Programs
    • Degree Programs
      • Ph.D. in Computer Science
        • Admission Requirements
        • Academic Requirements
        • Time and Time Limitation
        • Transfer Credit
        • Approved Courses
        • Electives Outside the College
        • Specimen Curriculum
        • Academic Review Process
      • Ph.D. in Information Assurance
        • Admissions Requirements
        • Academic Requirements
        • Time and Time Limitation
        • Transfer Credit
        • Specimen Curriculum
        • Program Faculty
        • Contact Us
      • Ph.D. in Personal Health Informatics
      • M.S. in Computer Science
        • Admissions Requirements
        • Academic Requirements
        • Academic Probation
        • Time and Time Limitation
        • Transfer Credit
        • Approved Courses
        • Specimen Academic Schedule
        • Reading and Project Courses
        • Master’s Thesis
        • Request More Information
      • M.S. in Information Assurance
        • Admissions Requirements
        • Academic Requirements
        • Specimen Academic Schedule
        • Financial Aid and Scholarships
        • Faculty
        • Request More Information- MSIA
      • M.S. in Health Informatics
        • Program Overview
        • Master’s Degree
        • Certificates
        • Course Descriptions
        • Testimonials
        • Faculty
        • Careers
        • Student Profiles
        • Apply
        • Request More Information- MSHI
      • ALIGN
    • Apply
    • Scholarships
    • FAQ
    • Current Students
      • Course Descriptions
      • Course Schedules
      • Graduate Guidebook
      • Commencement
      • Forms
      • Travel Support
      • Wiki
      • Jobs
      • New Student Page
        • MyNeu Account
        • Course Registration
        • Health Insurance Requirements
        • ISSI Orientation
        • CCIS Orientation
        • CCIS Email Account
        • Paying Your Bill
        • Husky ID Cards
        • Online Learning
        • Housing
        • Parking
        • Public Transportation
  • Research
    • Research Groups
      • Algorithms and Theory
      • Artificial Intelligence
      • Data
      • Educational Research
      • Formal Methods
      • Game Design
      • Network Science
      • Personal Health Informatics
      • Programming Languages
      • Security
      • Software Engineering
      • Systems
    • Centers and Institutes
  • Co-op
    • Information for Students
      • FAQ
      • Information for New Students
      • Information for Upperclass Students
      • Information for Graduate Students
      • Prospective
      • Forms
    • Information for Employers
    • Co-op Manual
      • Steps to Finding A Job
      • Taking a Course
      • Academic Standards
    • Research & Data
      • Assessment
    • Calendar
    • Surveys & Evaluations
      • Student Evaluation
      • Employer Evaluation
  • People and Organizations
    • Faculty
    • Administrative Staff
    • Student Organizations
  • News & Events
    • News Archive
    • Events
    • Distinguished Speakers Series
Events Archive

Growing Solver-Aided Languages with Rosette

  • Speaker:
    Emina Torlak
  • Event Date:
    Monday April 8th, 2013
  • Time:
    11:45 am
  • Location:
    366 WVH

Abstract

Decision procedures have helped automate key aspects of programming: coming up with a code fragment that implements a desired behavior (synthesis); establishing that an implementation satisfies a desired property (code checking); locating code fragments that cause an undesirable behavior (fault localization); and running a partially implemented program to test its existing behaviors (angelic execution). Each of these aspects is supported, at least in part, by a family of formal tools. Most such tools are built on infrastructures that are tailored for a particular language or purpose, e.g., Boogie for verification and Sketch for synthesis of C-like languages. But so far, no single infrastructure provides a platform for automating the full spectrum of programming activities, or for making such automation easily available in new languages and programming models.

This talk introduces Rosette, a new shared infrastructure for designing and growing solver-aided languages. The Rosette system is itself a solver-aided EDSL (embedded domain-specific language), which inherits and exposes extensive support for meta programming from its host language, Racket. The system works through a combination of program transformation (enabled by Racket’s meta-programming facilities) and symbolic execution, in which programming constructs and operators accept both concrete and symbolic values. With our framework, a designer defines a new solver-aided language by simply writing an interpreter for it in Rosette. Such a language will allow some constructs to be underspecified---that is, to produce symbolic "holes" rather than just concrete values. When a program with holes and the language interpreter are compiled with Rosette, the result is a custom symbolic execution engine for the given program and language. Executing this engine yields an encoding of the program’s semantics as a set of constraints, which are then solved by an off-the-shelf decision procedure to discharge synthesis, verification, and other queries about the program. We show how to use Rosette to prototype a tiny DSL with a program checker, a fault localizer, an angelic oracle, and
an inductive synthesizer.

Northeastern University
  • My NEU
  • Find Faculty & Staff
  • Find A – Z
  • Emergency Information
  • Search

360 Huntington Ave. Boston, Massachusetts 02115 • 1 (617) 373-2000

© 2013 Northeastern University

  • twitter
  • facebook
  • youtube