Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Hermes: a language for distributed computingAugust 1991
Publisher:
  • Prentice-Hall, Inc.
  • Division of Simon and Schuster One Lake Street Upper Saddle River, NJ
  • United States
ISBN:978-0-13-389537-7
Published:01 August 1991
Pages:
288
Skip Bibliometrics Section
Reflects downloads up to 13 Sep 2024Bibliometrics
Abstract

No abstract available.

Cited By

  1. ACM
    Grogono P and Shearing B Concurrent software engineering Proceedings of the 2008 C3S2E conference, (99-108)
  2. ACM
    Black A, Hutchinson N, Jul E and Levy H The development of the Emerald programming language Proceedings of the third ACM SIGPLAN conference on History of programming languages, (11-1-11-51)
  3. ACM
    Bacon D, Konuru R, Murthy C and Serrano M (2004). Thin locks, ACM SIGPLAN Notices, 39:4, (583-595), Online publication date: 1-Apr-2004.
  4. A Hierarchical Cluster Algorithm for Dynamic, Centralized Timestamps Proceedings of the The 21st International Conference on Distributed Computing Systems
  5. ACM
    Bacon D, Strom R and Tarafdar A (2019). Guava, ACM SIGPLAN Notices, 35:10, (382-400), Online publication date: 1-Oct-2000.
  6. ACM
    Bacon D, Strom R and Tarafdar A Guava Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (382-400)
  7. ACM
    Odersky M (2019). Programming with variable functions, ACM SIGPLAN Notices, 34:1, (105-116), Online publication date: 1-Jan-1999.
  8. ACM
    Simons A (2019). Borrow, copy or steal?, ACM SIGPLAN Notices, 33:10, (65-83), Online publication date: 1-Oct-1998.
  9. ACM
    Simons A Borrow, copy or steal? Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (65-83)
  10. ACM
    Odersky M Programming with variable functions Proceedings of the third ACM SIGPLAN international conference on Functional programming, (105-116)
  11. Kunz T (1997). High-Level Views of Distributed Executions, Automated Software Engineering, 4:2, (179-197), Online publication date: 1-Apr-1997.
  12. Taylor D, Kunz T and Black J A Tool for Debugging OSF DCE Applications Proceedings of the 20th Conference on Computer Software and Applications
  13. Lutfiyya H and Bauer M An Experience Report on Architecture Development Proceedings of the 20th Conference on Computer Software and Applications
  14. ACM
    Strom R (1996). Point, ACM SIGPLAN Notices, 31:3, (6-7), Online publication date: 1-Mar-1996.
  15. ACM
    Yellin D (1996). Point/counterpoint, ACM SIGPLAN Notices, 31:3, (5), Online publication date: 1-Mar-1996.
  16. Taylor D, Kunz T and Black J Achieving target-system independence in event visualisation Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
  17. Goldman K, Swaminathan B, McCartney T, Anderson M and Sethuraman R (1995). The Programmers' Playground, IEEE Transactions on Software Engineering, 21:9, (735-746), Online publication date: 1-Sep-1995.
  18. Kunz T and Black J (1995). Using Automatic Process Clustering for Design Recovery and Distributed Debugging, IEEE Transactions on Software Engineering, 21:6, (515-527), Online publication date: 1-Jun-1995.
  19. Cowan D and Lucena C (1995). Abstract Data Views, IEEE Transactions on Software Engineering, 21:3, (229-243), Online publication date: 1-Mar-1995.
  20. Taylor D and Coffin M Integrating real-time and partial-order information in event-data displays Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
  21. Marshall A Supporting communications infrastructure evolution Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
  22. ACM
    Yellin D and Strom R (1994). Interfaces, protocols, and the semi-automatic construction of software adaptors, ACM SIGPLAN Notices, 29:10, (176-190), Online publication date: 1-Oct-1994.
  23. ACM
    Yellin D and Strom R Interfaces, protocols, and the semi-automatic construction of software adaptors Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, (176-190)
  24. ACM
    Russell J, Strom R and Yellin D (1994). A checkable interface language for pointer-based structures, ACM SIGPLAN Notices, 29:8, (59-73), Online publication date: 1-Aug-1994.
  25. ACM
    Russell J, Strom R and Yellin D A checkable interface language for pointer-based structures Proceedings of the Workshop on Interface Definition Languages, (59-73)
  26. Auerbach J, Goldberg A, Goldszmidt G, Gopal A, Kennedy M, Rao J and Russell J Concert/C Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference, (8-8)
  27. ACM
    Kunz T (2019). Process clustering for distributed debugging, ACM SIGPLAN Notices, 28:12, (75-84), Online publication date: 1-Dec-1993.
  28. ACM
    Kunz T Process clustering for distributed debugging Proceedings of the 1993 ACM/ONR workshop on Parallel and distributed debugging, (75-84)
  29. Soares P and Karben A Implementing a delegation model design of an HPCC application using concert/C Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: distributed computing - Volume 2, (729-738)
  30. Attaluri G, Bradshaw D, Finnigant P, Hinds N, Kalantar M, Lyons K, Marshall A, Pachl J and Tran H Operation jump start Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: distributed computing - Volume 2, (621-636)
  31. Taylor D The use of process clustering in distributed-system event displays Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1, (505-512)
  32. Consens M, Hasan M and Mendelzon A Using Hy+ for network management and distributed debugging Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1, (450-471)
  33. ACM
    Strom R and Yellin D (1992). A visual environment for distributed object-oriented multi-applications, ACM SIGPLAN OOPS Messenger, 4:2, (205-206), Online publication date: 1-Apr-1993.
  34. ACM
    Strom R and Yellin D A visual environment for distributed object-oriented multi-applications Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum), (205-206)
  35. Khendek F and v. Bochmann G A formalization of the CORDS Process Model using Mondel Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2, (351-360)
  36. Martin P, Bauer M, Coburn N, Larson P, Neufeld G, Pach J and Slonim J Directory requirements for a multidatabase service Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2, (339-350)
  37. Taylor D A prototype debugger for Hermes Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2, (313-326)
  38. Cowan C Optimistic replication in HOPE Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2, (269-282)
  39. Soares P On remote procedure call Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2, (215-267)
  40. Slonim J, Bauer M and Larson P CORDS Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2, (1-21)
  41. Taylor D A prototype debugger for Hermes Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 1, (29-42)
  42. ACM
    Lowry A (1992). The Hermes language in outline form, ACM SIGPLAN Notices, 27:8, (51-70), Online publication date: 1-Aug-1992.
  43. ACM
    Thomas L A generic object-oriented concurrency mechanism for extensibility and reuse of synchronization components Proceedings of the 1992 ACM/SIGAPP symposium on Applied computing: technological challenges of the 1990's, (1091-1097)
  44. Finnigan P and Lyons K Narratives of space and time Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research, (363-391)
  45. Bradshaw D, Sunday R and Larson P Transaction management in Hermes Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research, (223-238)
  46. Larsont P, Zhut Q and Pellow F Supporting database access in the Hermes programming language Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research, (205-222)
  47. McBride R and Slonim J Control and responsiveness in Hermes Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research, (197-203)
  48. Auerbach J, Bacon D, Goldberg A, Goldszmidt G, Kennedy M, Lowry A, Russell J, Silverman W, Strom R, Yellin D and Yemini S High-level language support for programming distributed systems Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research, (173-196)
  49. Slonim J, Finnigan P, Mendelson A, Teorey T, Bauer M, Larson P, McBride R, Yemini Y and Yemini S Towards a new distributed programming environment (CORDS) Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research, (155-172)
  50. ACM
    Bacon D and Strom R (2019). Optimistic parallelization of communicating sequential processes, ACM SIGPLAN Notices, 26:7, (155-166), Online publication date: 1-Jul-1991.
  51. ACM
    Bacon D and Strom R Optimistic parallelization of communicating sequential processes Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming, (155-166)
  52. ACM
    Yellin D and Strom R (1991). INC, ACM Transactions on Programming Languages and Systems, 13:2, (211-236), Online publication date: 1-Apr-1991.
Contributors
  • IBM Thomas J. Watson Research Center
  • Google LLC
  • IBM Thomas J. Watson Research Center
  • IBM Thomas J. Watson Research Center
  • International Business Machines
  • IBM Thomas J. Watson Research Center

Reviews

James Russell McGraw

Hermes is a language developed by the authors for distributed computing. The features that distinguish Hermes include typestate checking, exception handling clauses, runtime binding of all names, and dynamic definition of processes and message channels. This tutorial and reference manual for Hermes includes numerous well-developed programming examples to convey the meaning of the language to readers. The authors feel that the book is well suited to a broad spectrum of computer scientists, including teachers and system designers and developers. A clear strength backing this book is the existence of a Hermes compiler for several Sun and IBM systems, which can be acquired from the authors. The tutorial section of this book (the first 90 pages) gives a smooth introduction to the Hermes language through a combination of examples and discussion of the guiding principles used in its design. The authors assume readers already have a working knowledge of conventional languages, which makes it easier to get to the key points of this language. The most important language principle seems to be the protection of each process from all others (including other users) via compiler understanding of all potential actions of each process. The authors are so confident of this protection that they do not use separate address spaces for different users. As a result, the Hermes language has well-defined process interfaces and a clear, simple semantics. The typestate checking goes beyond normal type checking in most languages to include concepts like uninitialized variables and other user-defined properties. This level of compile-time checking and the associated exception handling system provide most of the critical security for each process. One aspect of this tutorial that I particularly like is the use of a full chapter to develop a large example—that of a window manager. The tutorial made it easy for me to get a reasonable feel for this language. The reference manual section (180 pages) contains the standard type of precise information on the definition of Hermes. It includes syntax, naming, operations, typing and typesets, and an operational semantics. This part is also easily readable and appears to cover all of the important ideas. As with most reference manuals, the content is somewhat dry. The important point for any reference manual, however, is the ease with which you can find the answers to your questions. This reference section is better than average. My one major disappointment relates to things I would have liked to see in the book. The book contains no overview of the concepts of distributed computing (particularly as distinguished from parallel computing). It does not even reference any good texts on the subject. As a result, I was unsure what realm of applications was intended (for instance, signal processing, scientific computing, or finance). The features seemed insufficient for writing a distributed operating system, but I may be wrong on this point. My perception is that different application domains need different levels of support for efficient execution. Determining how efficient this approach could be was difficult in this case. The lack of initial discussion of distributed computing also means that this text would require supporting material in a classroom situation. I was generally pleased by the writing style and organization. The level of presentation seemed good for students trying to grasp and appreciate a new language. System designers and developers may find the pace a little slow. They may prefer to read some of the technical papers by the authors. On the other hand, most of the important language information is consolidated in this one text. I definitely like the frequent summary paragraphs and the clear writing style. My one criticism is of the list of references. Previous work of the authors makes up more than 40 percent of the references. They have omitted much valuable material. My guess is that this oversight was based on trying to merge information from several of their earlier papers. This book brings together some interesting language ideas for distributed computing and presents them in a cohesive fashion. These ideas have substantial merit for distributed computing, and I found this book an easy vehicle for learning the ideas. Unfortunately, I did not have the time to acquire the software to check it out, but given that the authors are from the IBM T. J. Watson Research Center, I would give them the benefit of the doubt. Probably the best context in which I can recommend this book would be for a class on distributed computing, as a support text for expressing ideas and testing them on a machine.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations