Architectural considerations for a new generation of protocols
SIGCOMM '90 Proceedings of the ACM symposium on Communications architectures & protocols
Active messages: a mechanism for integrated communication and computation
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
The Concert signature representation: IDL as intermediate language
IDL '94 Proceedings of the workshop on Interface definition languages
Experiences with a high-speed network adaptor: a software perspective
SIGCOMM '94 Proceedings of the conference on Communications architectures, protocols and applications
USC: a universal stub compiler
SIGCOMM '94 Proceedings of the conference on Communications architectures, protocols and applications
A type-based compiler for standard ML
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Using annotated interface definitions to optimize RPC
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Microkernels meet recursive virtual machines
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Measuring the performance of communication middleware on high-speed networks
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
Automatic Generation of Optimized Code for Marshalling Routines
Proceedings of the IFIP TC6/WG6.5 International Conference on Upper Layer Protocols, Architectures and Applications
Object-oriented components for high-speed network programming
COOTS'95 Proceedings of the USENIX Conference on Object-Oriented Technologies on USENIX Conference on Object-Oriented Technologies (COOTS)
lmbench: portable tools for performance analysis
ATEC '96 Proceedings of the 1996 annual conference on USENIX Annual Technical Conference
Measuring and Optimizing CORBA Latency and Scalability Over High-Speed Networks
IEEE Transactions on Computers
An overview of the CORBA portable object adapter
StandardView
Teapot: A Domain-Specific Language for Writing Cache Coherence Protocols
IEEE Transactions on Software Engineering
Towards partially evaluating reflection in Java
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
The design and performance of a scable ORB architecture for COBRA asynchronous messaging
IFIP/ACM International Conference on Distributed systems platforms
Customizing IDL mappings and ORB protocols
IFIP/ACM International Conference on Distributed systems platforms
Packet types: abstract specification of network protocol messages
Proceedings of the conference on Applications, Technologies, Architectures, and Protocols for Computer Communication
Generating wrappers for command line programs: the Cal-Aggie Wrap-O-Matic project
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Applying a pattern language to develop extensible ORB middleware
Design patterns in communications software
Towards robust OSes for appliances: a new approach based on domain-specific languages
EW 9 Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system
The SawMill multiserver approach
EW 9 Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system
Efficient Implementations of Software Architectures via Partial Evaluation
Automated Software Engineering
Supporting high-performance I/O in QoS-enabled ORB middleware
Cluster Computing
Evolving RPC for active storage
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Using Principle Patterns to Optimize Real-Time ORBs
IEEE Concurrency
A Framework for Exploiting Object Parallelism in Distributed Systems
HPCN Europe 2000 Proceedings of the 8th International Conference on High-Performance Computing and Networking
Flexible and Optimized IDL Compilation for Distributed Applications
LCR '98 Selected Papers from the 4th International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers
Transport layer abstraction in event channels for embedded systems
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Clearwater: extensible, flexible, modular code generation
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Language support for interoperable messaging in sensor networks
SCOPES '05 Proceedings of the 2005 workshop on Software and compilers for embedded systems
An improved IDL compiler for optimizing CORBA applications
Proceedings of the 2006 annual ACM SIGAda international conference on Ada
Flexible IDL compilation for complex communication patterns[1]
Scientific Programming
Design And Implementation Of A Componentised Idl Compiler
Journal of Integrated Design & Process Science
Devil: an IDL for hardware programming
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Stub-code performance is becoming important
WIESS'00 Proceedings of the 1st conference on Industrial Experiences with Systems Software - Volume 1
Experience with a domain specific language for form-based services
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
Experience with a language for writing coherence protocols
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
Performance patterns: automated scenario based ORB performance evaluation
COOTS'99 Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
The design and performance of meta-programming mechanisms for object request broker middleware
COOTS'01 Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
High-performance distributed objects over system area networks
WINSYM'99 Proceedings of the 3rd conference on USENIX Windows NT Symposium - Volume 3
Design And Implementation Of A Static Bridge Between Com And Corba Distributed Objects
Journal of Integrated Design & Process Science
A case study on the cost and benefit of dynamic RPC marshalling for low-level system components
ACM SIGOPS Operating Systems Review
The design of the TAO real-time object request broker
Computer Communications
Hi-index | 0.00 |
An interface definition language (IDL) is a nontraditional language for describing interfaces between software components. IDL compilers generate "stubs" that provide separate communicating processes with the abstraction of local object invocation or procedure call. High-quality stub generation is essential for applications to benefit from component-based designs, whether the components reside on a single computer or on multiple networked hosts. Typical IDL compilers, however, do little code optimization, incorrectly assuming that interprocess communication is always the primary bottleneck. More generally, typical IDL compilers are "rigid" and limited to supporting only a single IDL, a fixed mapping onto a target language, and a narrow range of data encodings and transport mechanisms.Flick, our new IDL compiler, is based on the insight that IDLs are true languages amenable to modern compilation techniques. Flick exploits concepts from traditional programming language compilers to bring both flexibility and optimization to the domain of IDL compilation. Through the use of carefully chosen intermediate representations, Flick supports multiple IDLs, diverse data encodings, multiple transport mechanisms, and applies numerous optimizations to all of the code it generates. Our experiments show that Flick-generated stubs marshal data between 2 and 17 times faster than stubs produced by traditional IDL compilers, and on today's generic operating systems, increase end-to-end throughput by factors between 1.2 and 3.7.