{'fraction_non_alphanumeric': 0.02359249329758713, 'fraction_numerical': 0.0, 'mean_word_length': 5.078175895765472, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Software Communication Mechanisms: Procedure Calls versus Messages

Procedure calls and messages are two software communication techniques in wide use today. Whereas the semantics of the procedure call are well-known, the newness and variety of message communication make it less understood. Furthermore, the terms "procedure calls" and "messages" are often used in a general and imprecise manner, and therefore the differences between them tend to blur. This happens, for example, when the claim is made that messages can be programmed using procedure calls-a claim that is both true and, in fact, reflects what is often done in practice. However, this line of reasoning suggests that there is no difference between procedure calls and messages, simply because both can be programmed with a Turing Machine. This is not the point. If precise syntax and semantics are attributed to both procedure calls and messages, then a reasonable comparison can be made and significant differences between these software communications mechanisms do arise. In other words, if both procedure calls and messages are available, how does a user perceive their differences and similarities? The syntax and semantics of the procedure call are a function of the language being used. In this article, the precise semantics of the PL/I procedure call are used because PL/I is typical of many other languages, such as Algol, Fortran, and Ada. Also, in PL/I additional variations of the procedure call are available (coroutines, tasks, and interrupts), and discussions of these contribute to the understanding of the comparison between procedure calls and messages. Choosing precise syntax and semantics for message communication is a more difficult task than it is for a procedure call because there are no standards for messages and the terminology of the subject is not as widely known.