Jump to content

Hermes (programming language)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Dfbacon (talk | contribs) at 20:57, 31 December 2016 (Add citation of NIL language paper on typestate; cross-reference to typestate article.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Hermes[1] [2] is a language for distributed programming[3] that was developed at IBM's Thomas J. Watson Research Center from 1986 through 1992. Hermes' primary features included:[4]

The compile-time checking of data initialization, called "typestate analysis", is an early precedent for the definite assignment analysis performed by Java, Cyclone and C#.

Hermes and its predecessor, NIL (Network Implementation Language), were the earliest programming languages supporting this form of initialization checking.[5] Typestate was actually used more extensively, to generate compiler-inserted "delete" operations.

References

  1. ^ Strom, Robert E.; Bacon, David F; Goldberg, Arthur P.; Lowry, Andy; Yellin, Daniel M.; Yemini, Shaula (1991). Hermes - A Language for Distributed Computing. Englewood Cliffs, NJ, USA: Prentice-Hall. ISBN 978-0-13-389537-7.
  2. ^ Lowry, Andy (1992). "The Hermes language in outline form". ACM SIGPLAN Notices. 27 (8): 51–70. doi:10.1145/142137.142148. ISSN 0362-1340.
  3. ^ Strom, R.E. (1990). "Hermes: an integrated language and system for distributed programming": 75–82. doi:10.1109/EDS.1990.138054. {{cite journal}}: Cite journal requires |journal= (help)
  4. ^ Korfhage, Willard; Goldberg, Arthur P. (1995). "Hermes language experiences" (PDF). Software: Practice and Experience. 25 (4): 389–402. doi:10.1002/spe.4380250404. ISSN 0038-0644.
  5. ^ Strom, Robert E. (1983). "Mechanisms for compile-time enforcement of security": 276–284. doi:10.1145/567067.567093. {{cite journal}}: Cite journal requires |journal= (help)