Semantics (computer science)

« Back to Glossary Index

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)

« Back to Glossary Index Download Tooltip Pro
Photo-of-Casey-Keith-Holistic-SEO-mentor.

About Casey Keith

I own Master Course Reviews, am a holistic SEO mentor, and am an entrepreneur. I’ve been doing SEO and small business development through mentorship since 2009.

Follow Casey Keith

Reccomended SEO Tools

Casey Keith
Semantics (computer science)