Marius Nita

I am a third-year Ph.D. student at University of Washington. I am very broadly interested in making the writing and maintenance of complex software systems more productive and fun. My advisors are David Notkin and Dan Grossman.

My current focus is on issues associated with building, analyzing, and testing software that can be deployed in many heterogeneous environments and/or can be configured to run in many different modes (e.g., via command-line flags). I have done work related to this general topic in the context of portable C programs — see below and the CLAMP project.

research:

Coping With Layout Dependencies in C

With Dan Grossman and Craig Chambers.

Presented at POPL'08: [Paper] [Extended Version] [Talk Slides]
My Qualification Exam: [Paper] [Talk Slides]
Presented at Affiliates Day 2007: [Poster]

The layouts of C types are platform-dependent: compiler implementers are free to pick the sizes and alignments of most types, and the padding strategy for struct types. I worked on a formal model that explains these dependencies, and tools that discover them in C code. The qualification exam report above discusses a tool based on a dynamic analysis. The POPL paper explains the formal model and a static analysis.

C Programming With Multiple Data Layouts Made Easy

With Dan Grossman.

Presented at CC'08: [Paper] [Talk Slides]
Presented at Affiliates Day 2007: [Poster]

C code that makes assumptions about data layout often contains multiple highly similar pieces of code, each designed to handle a different data layout, e.g., little- vs. big-endian byte, bit, or bit-field orders. Because the differences among data layouts are subtle and implicit, it is difficult to understand or change the highly similar pieces of code consistently. I built a tool that allows programmers to specify multiple layouts of the same data in a declarative language, and then write only one version of the code. The other versions are automatically generated from the layout specifications.

Implementing Functional Logic Languages

With Andrew Tolmach and Sergio Antoy.

Presented at ICFP'04: [Paper]
My Honors Thesis: [Paper] [Talk Slides]

Functional logic programming (FLP) languages combine functional language features (lazy evaluation, higher-order functions, pattern-matching) and logic language features (logic variables, search) into one unified model. We designed a novel FLP execution model in which the search is fair — a solution will be found if one exists — using threads and thread-local stores to handle search alternatives and their corresponding variable bindings. I did research in discovering an efficient representation of thread-local stores and built a novel copying garbage collector that collects these structures properly and efficiently.

Related:

My books page.
My PL conferences page.
My old research group.
Andrew Tolmach, my undergrad advisor.

Contact:

Ship me stuff: UW CSE Box 352350, Seattle, WA 98195-2350
Drop by: Paul G. Allen Center, Office 418
Send me email: first name at cs.washington.edu