University of Cambridge > > Computer Laboratory Programming Research Group Seminar > Cake: a language for adapting and linking mismatched binary components

Cake: a language for adapting and linking mismatched binary components

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Dominic Orchard.

Conventional programming languages provide a notion of partial program (such as compilation unit, module, class, etc.) where, invariably, each partial program implicitly assumes that its linkage environment is plug-compatible and homogeneous. In practice, developers often want to relax these assumptions: to enable decentralised development or unanticipated re-use, we must deal with plug-incompatible interfaces, while to choose the most appropriate languages and libraries for building each part of a large system, we must tolerate heterogeneity. With current tools and languages, achieving these is at best inefficient and at worst impractical.

Cake is a special-purpose linking language which complements conventional programming languages. It describes compositions of mismatched, possibly heterogeneous binary components. Rather than defining programmatic objects, such as functions or values, Cake describes correspondences (or relations) between such objects as found in preexisting components, and from these the Cake compiler generates adaptation logic. Components may be any relocatable object code, and Cake’s descriptive model is based on the DWARF debugging standard. Work is still at the implementation stage; I’ll talk about the language design, motivating case-studies and one or two interesting implementation issues. Time permitting, I’ll describe plans for evaluation and future work, and will of course solicit copious feedback.

This talk is part of the Computer Laboratory Programming Research Group Seminar series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.


© 2006-2022, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity