data constraints at run time
play

Data constraints at run time Or: a whirlwind tour of some crazy - PowerPoint PPT Presentation

Data constraints at run time Or: a whirlwind tour of some crazy ideas. Stephen Kell Stephen.Kell@cl.cam.ac.uk Computer Laboratory University of Cambridge Data constraints at run time. . . p.1/8 Why run time? Type systems, static analysis


  1. Data constraints at run time Or: a whirlwind tour of some crazy ideas. Stephen Kell Stephen.Kell@cl.cam.ac.uk Computer Laboratory University of Cambridge Data constraints at run time. . . – p.1/8

  2. Why run time? Type systems, static analysis etc. are great, but � need to cope with heterogeneity � run-time is a great unifier � run-time is a necessary “last station” (for checking, ...) � dynamic analysis is cheaper than ever (multicore) Data constraints at run time. . . – p.2/8

  3. Crazy idea 1: consistency in transactional memory try { tx.BeginTransaction(); // txnl code done = tx.CommitTransaction(); } catch (AbortException e) { /* ... */} Transactional code + data constraints = ? � current TMs are not ACID (just A I ) � problem: performance! � rejoinder 1: treat it like assert() —can turn off � rejoinder 2: manycore might make this irrelevant � worth investigating added actual performance costs Data constraints at run time. . . – p.3/8

  4. Idea 2: using data constraints in debuggers Known data constraints are gold when debugging. � programmer knows where consistency is expected � debuggers can automate search for violations (if...) Requires debugging information which records data constraints � either programmer-provided (in-band, of out-of-)... � ... or perhaps derived (from analysis, ...) � we will see more reasons why this is a good fit... Data constraints at run time. . . – p.4/8

  5. Crazy idea 3a: mining disk ↔ memory lenses Lots of software uses ad-hoc data formats. � config files, logs, undocumented file formats, ... � some too complex to be learnable from data alone Use the programs themselves to mine the file formats. � might use static analysis sensitive to filesystem calls � but: lots of source languages (incl. Perl, sed, ...) � might simply analyse traces (harder) � of file accesses, branch instructions � of primitive translations (e.g. atoi() , sscanf() , et al) � structure is latent in trace—can use PADS-like algorithm? Data constraints at run time. . . – p.5/8

  6. Crazy idea 3b: sharing the constraints around Suppose we know constraints for file format, but not the corresponding in-memory data—or vice-versa. � i.e. one or other documented, but not both � want to share these around � idea: propagate constraints through lenses Useful: debug info can describe both disk and mem formats � (with some minor extensions) � (bonus: already have tools for writing such lenses manually) Data constraints at run time. . . – p.6/8

  7. (Slightly off-topic) idea 4: using lenses to save memory Memory remains scarce (unlike CPU time...). � Consider a program reading in some large files. � Given disk ↔ mem lenses... � can discard replicas, even non-verbatim (transformed) � ... when computational distance is small Generalises from existing memory-saving approaches � web cache design: explicit disk ↔ mem transfer is bad � also avoids bad interaction with demand paging � only works when disk/mem reps are verbatim • cf. small computational distance � page-sharing work (Satori, Difference Engine, ...) Data constraints at run time. . . – p.7/8

  8. Conclusions We’ve seen a few runtime-centric ideas about data. � mostly easily added to existing tools � mostly under-thought! Message: extending runtimes is good � static analysis innovations need dynamic complement � propagate innovations into shared infrastructure... � ... establishing commonality in the process Subliminal message: debug info is a good place to innovate � mediates language and runtime views � can capture persistent and in-memory representations Data constraints at run time. . . – p.8/8

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend