Standard Object Out: Streaming Objects with Polymorphic Write StreamsExperience Paper
We propose standard object out, an object-oriented analog to the output part of the Unix standard input output library (stdio).
Polymorphic Write Streams (PWS) act as architectural adapters between the object-oriented architectural style and the pipes and filters architectural style in the same way that stdio acts as an architectural adapter between the call/return architectural style and the pipes and filters architectural style.
Current object-oriented interfaces to the Unix I/O system mimic their procedural counterparts so closely that they manage to be neither polymorphic nor streaming, at least not for objects. Specifically the object is first converted to a fixed byte-representation by sending it a specific message and the result is then output on the underlying byte stream.
With this approach, these APIs do not allow for streaming behaviour: the entire result has to be constructed in-memory before it can be output. In addition, output of nested structures can require large multiples of time and space compared to the final output size, and fails completely if there are cycles in the object graph. It also does not allow for polymorphic behaviour.
PWSs represent a hierarchy of classes that decouple encoding from specific streaming destinations. Using triple dispatch they provide streaming behaviour and allow each stream to react specifically to each kind of object and vice versa: sharing of common functionality is enabled by chaining messages along the streams’ inheritance chain.
This program is tentative and subject to change.
Sun 20 Oct
|16:00 - 16:30|
|16:30 - 17:00|
Thomas DupriezUniversité Lille, CNRS, Centrale Lille, Inria, UMR 9189 - CRIStAL, Guillermo PolitoUniv. Lille, CNRS, Centrale Lille, Inria, UMR 9189 - CRIStAL - Centre de Recherche en Informatique Signal et Automatique de Lille, Steven CostiouUniversity of Brest, Vincent AranegaUniversité Lille, CNRS, Centrale Lille, Inria, UMR 9189 - CRIStAL, Stéphane Ducasse INRIA Lille
|17:00 - 17:30|
Marcel WeiherHasso-Plattner-Institut (HPI), Germany, Robert HirschfeldHasso-Plattner-Institut (HPI), GermanyPre-print