Aligning intent and behavior in software systems: how programs communicate & their distribution and organization
Dietz, William Barrett
Loading…
Permalink
https://hdl.handle.net/2142/107994
Description
Title
Aligning intent and behavior in software systems: how programs communicate & their distribution and organization
Author(s)
Dietz, William Barrett
Issue Date
2020-05-05
Director of Research (if dissertation) or Advisor (if thesis)
Adve, Vikram S
Doctoral Committee Chair(s)
Adve, Vikram S
Committee Member(s)
Regehr, John D
Xie, Tao
Misailovic, Sasa
Department of Study
Computer Science
Discipline
Computer Science
Degree Granting Institution
University of Illinois at Urbana-Champaign
Degree Name
Ph.D.
Degree Level
Dissertation
Date of Ingest
2020-08-26T21:54:54Z
Keyword(s)
Compilers
Link-Time Optimization
Slipstream
Software Multiplexing
ALLVM
LLVM
LLVM IR
Nix
Abstract
Managing the overwhelming complexity of software is a fundamental challenge because complexity is the root cause of problems regarding software performance, size, and security. Complexity is what makes software hard to understand, and our ability to understand software in whole or in part is essential to being able to address these problems effectively. Attacking this overwhelming complexity is the fundamental challenge I seek to address by simplifying how we write, organize, and think about programs. Within this dissertation I present a system of tools and a set of solutions for improving the nature of software by focusing on programmer’s desired outcome, i.e. their intent.
At the program level, the conventional focus, it is impossible to identify complexity that, at the system level, is unnecessary. This “accidental complexity” includes everything from unused features to independent implementations of common algorithmic tasks. Software techniques driving innovation simultaneously increase the distance between what is intended by humans – developers, designers, and especially the users – and what the executing code does in practice. By preserving the declarative intent of the programmer, which is lost in the traditional process of compiling and linking and building software, it is easier to abstract away unnecessary details. The Slipstream, ALLVM, and software multiplexing methods presented here automatically reduce complexity of programs while retaining intended function of the program. This results in improved performance at both startup and run-time, as well as reduced disk and memory usage.
Use this login method if you
don't
have an
@illinois.edu
email address.
(Oops, I do have one)
IDEALS migrated to a new platform on June 23, 2022. If you created
your account prior to this date, you will have to reset your password
using the forgot-password link below.