ABSTRACT
The paper investigates the impact of high level distributed programming language constructs on the engineering of realistic software components. Based on reengineering two non-trivial telecoms components, we compare two high-level distributed functional languages, Erlang and GdH, with conventional distributed technologies C++/CORBA and C++/UDP.
We investigate several aspects of high-level distributed languages including the impact on code size of high-level constructs. We identify three language constructs that primarily contribute to the reduction in application size and quantify their impact. We provide the first evidence based on analysis of a substantial system to support the widely-held supposition that high-level constructs reduce programming effort associated with specifying distributed coordination. We investigate whether a language with sophisticated high-level fault tolerance can produce suitably robust components, and both measure and analyse the additional programming effort needed to introduce robustness. Finally, we investigate some implications of a range of type systems for engineering distributed software.
- J. Armstrong. Making reliable distributed systems in the presence of software errors. PhD thesis, Department of Microelectronics and Information Technology, Royal Institute of Technology, Stockholm, Sweden, December 2003.Google Scholar
- J. Armstrong, R. Virding, C. Wikström, and M. Williams. Concurrent Programming in Erlang. Prentice Hall, 2nd edition, 1996. Google Scholar
Digital Library
- S. Blau, J. Rooth, J. Axell, F. Hellstrand, M. Buhrgard, T. Westin, and G. Wicklund. AXD 301: A new generation ATM switching system. Computer Networks, 31 (6): 559--582, 1999. Google Scholar
Digital Library
- H. Cejtin, S. Jagganathan, and R. Kelsey. Higher-order distributed objects. ACM Trans. On Programming Languages and Systems (TOPLAS), 17 (1), September 1995. Google Scholar
Digital Library
- N. E. Fenton and S. L Pfleeger. Software Metrics: A Rigorous and Practical Approach. PWS, 1998. ISBN 0534-95429-1. Google Scholar
Digital Library
- P. Giacalone, P. Mishra, and S. Prasad. Facile: a symmetric integration of concurrent and functional programming. In Tapsoft89, LNCS 352, pages 181--209. Springer-Verlag, 1989. Google Scholar
- S. Gorlatch. Send-receive considered harmful: Myths and realities of message passing. ACM Transactions on Programming Languages and Systems, 26 (1): 47--56, 2004. ISSN 0164-0925. doi: http://doi.acm.org/10.1145/963778.963780. Google Scholar
Digital Library
- H. Granbohm and J. Wiklund. GPRS - General Packet Radio Service. Ericsson Review, (2), 1999.Google Scholar
- S. Haridi, P. Van Roy, and G. Smolka. An overview of the design of Distributed Oz. In Proceedings of the Second International Symposium on Parallel Symbolic Computation (PASCO '97), pages 176--187, Maui, Hawaii, USA, July 1997. ACM Press. Google Scholar
Digital Library
- S. Hinde. Use of Erlang/OTP as a Service Creation Tool for IN Services. In Proceedings of the 6th International Erlang/OTP Users Conference (EUC'00). Ericsson Utvecklings AB, 2000.Google Scholar
- E. Johansson, M. Pettersson, K. Sagonas, and T. Lindgren. The development of the HiPE system: Design and experience report. Software Tools for Technology Transfer, 4 (4): 421--436, August 2003.Google Scholar
Digital Library
- C. Jones. Programming Productivity. McGraw-Hill, 1986.Google Scholar
- N. I. Kamenoff and N. H. Weiderman. Hartstone distributed benchmark: Requirements and definitions. In Proceedings of the 12th Real Time Systems Symposium, pages 199--208, San Antonio, Texas, USA, 1999. IEEE.Google Scholar
- Language Shootout. The Computer Language Shootout Benchmarks. WWW page, July 2006. http://shootout.alioth.debian.org/.Google Scholar
- R. Lillie. Implementing dynamic scalability in a distributed processing environment. Technical report, Motorola Labs, Shaumburg, Illinois, 1999.Google Scholar
- McCabe. A complexity measure. IEEE Transactions on Software Engineering, 2: 308--320, 1976. Google Scholar
Digital Library
- J. H. Nyström, P. W. Trinder, and D. J. King. High-level Distribution for the Rapid Production of Robust Telecoms Software: Comparing C++ and erlang. Concurrency and Computation: Practice and Experience. To Appear.Google Scholar
- J. H. Nyström, P. W. Trinder, and D. J. King. Are High-level Languages suitable for Robust Telecoms Software? In Proceedings of the 24th International Conference, SAFECOMP 2005, volume LNCS 3688, pages 275--288. Springer-Verlag, 2005. Google Scholar
Digital Library
- Object Management Group (OMG). CORBA 3: The Common Object Request Broker Architecture: Core Specification. Standard, 2004. www.omg.org/docs/formal/04-03-12.pdf.Google Scholar
- A. Olsen, O. Rærgemand, B. Møller-Pedersen, R. Reed, and J. R. W. Smith. Systems Engineering Using SDL-92. Elsevier, 1997. Google Scholar
Digital Library
- OO Language Comparison. Object-Oriented Languages: A Comparison. WWW page, July 2006. archive.eiffel.com/doc/manuals/technology/oo_comparison/page.html.Google Scholar
- J. Peterson, K. Hammond, et al. Report on the Programming Language Haskell (Version 1.4), April 1997.Google Scholar
- R. F. Pointon, P. W. Trinder, and H.-W. Loidl. The Design and Implementation of Glasgow distributed Haskell. In Proceedings of the International Workshop on Implementing Functional Languages (IFL'00), LNCS 2011, pages 101--116, Aachen, Germany, September 2000. Google Scholar
Digital Library
- R. F. Pointon, S. Priebe, H.-W. Loidl, R. Loogen, and P. W. Trinder. Functional vs Object-Oriented Distributed Languages. In Eurocast'01, LNCS 2178, pages 642--656, Canary Islands, Spain, February 2001. Springer-Verlag LNCS 2178. Google Scholar
- J. Postel. User Datagram Protocol. Technical report, Internet Engineering Task Force (IETF), RFC 768, 1980. Google Scholar
Digital Library
- L. Prechelt. An empirical comparison of seven programming languages. Computer, 33 (10): 23--29, 2000. Google Scholar
Digital Library
- L. Rittle. Distributed Dispatch Architecture Project (Functional Requirements). Technical report, Land Mobile Products Sector Research, Shaumburg, Illinois, 1998.Google Scholar
- S. Torstendahl. Open Telecom Platform. Ericsson Review, 75 (1): 14-23, 1997.Google Scholar
- P. W. Trinder, K. Hammond, H.-W. Loidl, and S. L. Peyton Jones. Algorithm + Strategy = Parallelism. Journal of Functional Programming, 8 (1): 23--60, January 1998. Google Scholar
Digital Library
- U. Wiger. Industrial-Strength Functional Programming: Experiences with the Ericsson AXD301 Project. In Proceedings of the International Workshop on Implementing Functional Languages (IFL'00), Aachen, Germany, September 2000. Presentation Only.Google Scholar
- U. Wiger. Four-Fold Increase in Productivity and Quality. In Proceedings of the International Workshop Formal Design of Safety Critical Embedded Systems (FemSYS'01), 2001.Google Scholar
Index Terms
Evaluating high-level distributed language constructs
Recommendations
Evaluating high-level distributed language constructs
Proceedings of the ICFP '07 conferenceThe paper investigates the impact of high level distributed programming language constructs on the engineering of realistic software components. Based on reengineering two non-trivial telecoms components, we compare two high-level distributed functional ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12: Proceedings of the 2012 Haskell SymposiumProgrammers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12Programmers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...







Comments