cake a tool for adaptation of object code
play

Cake: a tool for adaptation of object code Stephen Kell - PowerPoint PPT Presentation

Cake: a tool for adaptation of object code Stephen Kell Stephen.Kell@cl.cam.ac.uk Computer Laboratory Cake. . . p.1/6 Starting point: Cakes big picture foo.o foo.o xyzzy.o bar.o plugh.o new programming languages mismatch


  1. Cake: a tool for adaptation of object code Stephen Kell Stephen.Kell@cl.cam.ac.uk Computer Laboratory Cake. . . – p.1/6

  2. Starting point: Cake’s big picture foo.o foo.o xyzzy.o bar.o plugh.o � new programming languages → mismatch � decentralised development → mismatch � unanticipated composition → mismatch Cake. . . – p.2/6

  3. Cake in one slide Cake is � a language expressing compositions of software � a productive tool for overcoming mismatch � operating on binaries � a black-box approach � designed around practical experience � ongoing work Cake. . . – p.3/6

  4. Wanted: a tool for helping with tasks like... Unanticipated composition: port feature P from app X to Y Case study: Konqueror + ROX-Filer Evolution: link client version 1 against library version 2 Case study: gtk-theme-switch Cake. . . – p.4/6

  5. A taste of the Cake language Two mismatched structures... struct struct GtkWindow { GtkWindow { GtkBin bin; gchar ∗ title ; // ... GtkBin bin; gchar ∗ title ; // ... gchar ∗ wm role; GtkWindowType type; guint type :4; / ∗ GtkWindowType ∗ / guint window has focus:1; } ; guint has focus :1; } ; Cake. . . – p.5/6

  6. A taste of the Cake language Two mismatched structures... struct struct GtkWindow { GtkWindow { GtkBin bin; gchar ∗ title ; // ... GtkBin bin; gchar ∗ title ; // ... gchar ∗ wm role; GtkWindowType type; guint type :4; / ∗ GtkWindowType ∗ / guint window has focus:1; } ; guint has focus :1; } ; switch12 ↔ libgtk20 { values GtkWindow ↔ GtkWindow { Cake. . . – p.5/6

  7. A taste of the Cake language Two mismatched structures... struct struct GtkWindow { GtkWindow { GtkBin bin; gchar ∗ title ; // ... GtkBin bin; gchar ∗ title ; // ... gchar ∗ wm role; GtkWindowType type; guint type :4; / ∗ GtkWindowType ∗ / guint window has focus:1; } ; guint has focus :1; } ; switch12 ↔ libgtk20 { values GtkWindow ↔ GtkWindow { void → .wm role; Cake. . . – p.5/6

  8. A taste of the Cake language Two mismatched structures... struct struct GtkWindow { GtkWindow { GtkBin bin; gchar ∗ title ; // ... GtkBin bin; gchar ∗ title ; // ... gchar ∗ wm role; GtkWindowType type; guint type :4; / ∗ GtkWindowType ∗ / guint window has focus:1; } ; guint has focus :1; } ; switch12 ↔ libgtk20 { values GtkWindow ↔ GtkWindow { void → .wm role; .type as .GtkWindowType < −− > .type as .GtkWindowType; Cake. . . – p.5/6

  9. A taste of the Cake language Two mismatched structures... struct struct GtkWindow { GtkWindow { GtkBin bin; gchar ∗ title ; // ... GtkBin bin; gchar ∗ title ; // ... gchar ∗ wm role; GtkWindowType type; guint type :4; / ∗ GtkWindowType ∗ / guint window has focus:1; } ; guint has focus :1; } ; switch12 ↔ libgtk20 { values GtkWindow ↔ GtkWindow { void → .wm role; .type as .GtkWindowType < −− > .type as .GtkWindowType; .window has focus ↔ . has focus ; } } Cake. . . – p.5/6

  10. Status and questions Status: � case-studies: done, hand-written glue code � Gtk+ glue generation is partly automated � compiler: current work � ... � runtime library: most developed piece � used in the Gtk+ case study Thanks for your attention. Any questions? Cake. . . – p.6/6

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