History and Overview of Semantics in Computer Science

– In 1967, Robert W. Floyd publishes a paper on assigning meanings to programs.

– Floyd aims to establish a rigorous standard for proofs about computer programs.

– The paper introduces concepts of correctness, equivalence, and termination.

– In 1969, Tony Hoare publishes a paper on Hoare logic, influenced by Floyd’s ideas.

– The terms ‘operational semantics’ and ‘denotational semantics’ emerge in the 1970s.

– Formal semantics encompasses the definition of semantic models.

– It explores the relations between different semantic models.

– It investigates the relations between different approaches to meaning.

– It examines the relation between computation and underlying mathematical structures.

– It has close links with programming language design, compilers, and program verification.

Approaches to Semantics in Computer Science

– Denotational semantics interprets each phrase as a denotation.

– Denotations can be mathematical objects or abstract conceptual meanings.

– Operational semantics describes the execution of a language directly.

– It may define an abstract machine or use syntactic transformations.

– Axiomatic semantics gives meaning to phrases through axioms and logical formulas.

Describing Relationships in Semantics

– Formal semantics can describe the relationship between operational and axiomatic semantics.

– It can prove the soundness of reasoning using a specific interpretation strategy and proof system.

– Relationships between high-level and low-level abstract machines can be established through operational semantics.

– Abstract interpretation theory allows for relating multiple semantics through abstractions.

– Different formal semantics can be compared and related using various techniques.

Textbooks on Semantics of Programming Languages

– Floyd, Robert W. (1967). ‘Assigning Meanings to Programs’ (PDF)

– Hennessy, M. (1990). ‘The semantics of programming languages: an elementary introduction using structural operational semantics’

– Tennent, Robert D. (1991). ‘Semantics of Programming Languages’

– Gunter, Carl (1992). ‘Semantics of Programming Languages’

– Nielson, H. R.; Nielson, Flemming (1992). ‘Semantics With Applications: A Formal Introduction’

Other Textbooks on Programming Languages

– Winskel, Glynn (1993). ‘The Formal Semantics of Programming Languages: An Introduction’

– Mitchell, John C. (1995). ‘Foundations for Programming Languages’

– Slonneger, Kenneth; Kurtz, Barry L. (1995). ‘Formal Syntax and Semantics of Programming Languages’

– Reynolds, John C. (1998). ‘Theories of Programming Languages’

– Harper, Robert (2006). ‘Practical Foundations for Programming Languages’ (PDF) References: https://en.wikipedia.org/wiki/Semantics_(computer_science)