Hermes (programming language)

Uses your system voice; voice and rate in settings.

Snapshot

≈ 3 min read

Names in other languages

No names in other languages are held for this entry yet.

Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.

Hermes is a language for distributed programming that was developed at IBM's Thomas J. Watson Research Center from 1986 through 1992, with an open-source compiler and run-time system. Hermes' primary features included: * Language support of processes and interprocess communication. * Compile-time verification that operations use initialized data. * Representation-independent data aggregates called tables. * Lack of pointers. It used typestate analysis to check variables transitions errors, to rule out some semantically non meaningful transitions from one state to another (i.e. starting from a value, some sequences of operations on a variable are nonsensical), of which reading an uninitialized variable is a special case. In this role of compile-time checking of data initialization is similar to 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. Typestate was actually used more extensively, to generate compiler-inserted "delete" operations.

Hermes is a language for distributed programming that was developed at IBM's Thomas J. Watson Research Center from 1986 through 1992, with an open-source compiler and run-time system. Hermes' primary features included: Language support of processes and interprocess communication. Compile-time verification that operations use initialized data. Representation-independent data aggregates called tables. Lack of pointers. It used typestate analysis to check variables transitions errors, to rule out some semantically non meaningful transitions from one state to another (i.e. starting from a value, some sequences of operations on a variable are nonsensical), of which reading an uninitialized variable is a special case. In this role of compile-time checking of data initialization is similar to 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. Typestate was actually used more extensively, to generate compiler-inserted "delete" operations.

References

Text derived from https://en.wikipedia.org/w/index.php?oldid=1354513383 under CC BY-SA 4.0; modifications have been made.

Sources cited in this revision

Extracted from the cited revision's reference blocks; absent citations are not invented.