[proxy] web.archive.org← back | site home | direct (HTTPS) ↗ | proxy home | ◑ dark◐ light

Semantics (computer science) - Wikipedia

In programming language theory, semantics is the field concerned with the rigorous mathematical study of the meaning of programming languages.[1] It does so by evaluating the meaning of syntactically valid strings defined by a specific programming language, showing the computation involved. In such a case that the evaluation would be of syntactically invalid strings, the result would be non-computation. Semantics describes the processes a computer follows when executing a program in that specific language. This can be shown by describing the relationship between the input and output of a program, or an explanation of how the program will be executed on a certain platform, hence creating a model of computation.

Overview[edit]

The field of formal semantics encompasses all of the following:

It has close links with other areas of computer science such as programming language design, type theory, compilers and interpreters, program verification and model checking.

Approaches[edit]

There are many approaches to formal semantics; these belong to three major classes:

Apart from the choice between denotational, operational, or axiomatic approaches, most variations in formal semantic systems arise from the choice of supporting mathematical formalism.

Variations[edit]

Some variations of formal semantics include the following:

Describing relationships[edit]

For a variety of reasons, one might wish to describe the relationships between different formal semantics. For example:

It is also possible to relate multiple semantics through abstractions via the theory of abstract interpretation.

History[edit]

This section needs expansion. You can help by adding to it. (August 2013)

Robert W. Floyd is credited with founding the field of programming language semantics in Floyd (1967).[12]

See also[edit]

References[edit]

  1. ^ Joseph A. Goguen (1975). "Semantics of computation". Category Theory Applied to Computation and Control. Lecture Notes in Computer Science. 25. Springer. pp. 151–163. doi:10.1007/3-540-07142-3_75. ISBN 978-3-540-07142-6.
  2. ^ David A. Schmidt (1986). Denotational Semantics: A Methodology for Language Development. William C. Brown Publishers. ISBN 9780205104505.
  3. ^ Gordon D. Plotkin (1981). "A structural approach to operational semantics". Technical Report DAIMI FN-19. Computer Science Department, Aarhus University.
  4. ^ a b Joseph A. Goguen; James W. Thatcher; Eric G. Wagner; Jesse B. Wright (1977). "Initial algebra semantics and continuous algebras". Journal of the ACM. 24 (1): 68–95. doi:10.1145/321992.321997. S2CID 11060837.
  5. ^ Peter D. Mosses (1996). "Theory and practice of action semantics". BRICS Report RS9653. Aarhus University.
  6. ^ Pierre Deransart; Martin Jourdan; Bernard Lorho (1988). "Attribute Grammars: Definitions, Systems and Bibliography. Lecture Notes in Computer Science 323. Springer-Verlag. ISBN 9780387500560.
  7. ^ F. William Lawvere (1963). "Functorial semantics of algebraic theories". Proceedings of the National Academy of Sciences of the United States of America. 50 (5): 869–872. doi:10.1073/pnas.50.5.869. PMC 221940. PMID 16591125.
  8. ^ Andrzej Tarlecki; Rod M. Burstall; Joseph A. Goguen (1991). "Some fundamental algebraic tools for the semantics of computation: Part 3. Indexed categories". Theoretical Computer Science. 91 (2): 239–264. doi:10.1016/0304-3975(91)90085-G.
  9. ^ Mark Batty; Kayvan Memarian; Kyndylan Nienhuis; Jean Pichon-Pharabod; Peter Sewell (2015). "The problem of programming language concurrency semantics". Proceedings of the European Symposium on Programming Languages and Systems. Springer. pp. 283–307. doi:10.1007/978-3-662-46669-8_12.
  10. ^ Samson Abramsky (2009). "Semantics of interaction: An introduction to game semantics". In Andrew M. Pitts; P. Dybjer (eds.). Semantics and Logics of Computation. Cambridge University Press. pp. 1–32. doi:10.1017/CBO9780511526619.002. ISBN 9780521580571.
  11. ^ Edsger W. Dijkstra (1975). "Guarded commands, nondeterminacy and formal derivation of programs". Communications of the ACM. 18 (8): 453–457. doi:10.1145/360933.360975. S2CID 1679242.
  12. ^ Donald E. Knuth. "Memorial Resolution: Robert W. Floyd (1936–2001)" (PDF). Stanford University Faculty Memorials. Stanford Historical Society.

Further reading[edit]

Textbooks
Lecture notes

External links[edit]