Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Field

Formal Methods

Also Known As Formal Verification
Software And Its Engineering

Formal methods are mathematically rigorous techniques for the specification, development, analysis and verification of software and hardware systems. They apply theoretical computer science foundations to improve system reliability and robustness, comparable to the mathematical analysis used in other engineering disciplines. This description is adapted from Wikipedia contributors under CC BY-SA 4.0; changes were made. https://creativecommons.org/licenses/by-sa/4.0/

Facts
Origin Year
1969 1
Tony Hoare's 1969 paper An Axiomatic Basis for Computer Programming, building on Robert Floyd's 1967 work on program semantics, is the field's conventionally cited formal starting point.
Core Concern
Mathematically specifying and, often with automated tool support, verifying that a software or hardware system meets its intended specification; gained recognition in the 1950s and 1960s through work such as John Backus's formal notation for ALGOL 58 syntax, later formalized as Backus-Naur form. 1
Connections

Associated With

John Backus, Pioneers
Source Wikipedia: Formal Methods
Source Wikipedia: Formal Methods
Tony Hoare, Pioneers

Tony Hoare's 1969 paper An Axiomatic Basis for Computer Programming introduced Hoare logic, a foundational formal system for reasoning about program correctness, already cited on this field's own origin-year fact.

Source Wikipedia: Tony Hoare

Includes

Robin Milner, Pioneers
Source Wikipedia: Robin Milner
Sources
1. Wikipedia: Formal Methods
Wikimedia Foundation
  • Verification section
    Formal verification is the use of software tools to prove properties of a formal specification, or to prove that a formal model of a system implementation satisfies its specification.
  • History section
    In the ALGOL 58 report, John Backus presented a formal notation for describing programming language syntax, later named Backus normal form then renamed Backus-Naur form (BNF).
  • Introduction
    In computer science, formal methods are mathematically rigorous techniques for the specification, development, analysis, and verification of software and hardware systems.
  • Associated With: Programming Language Theory, Fundamentals section
    Formal methods employ a variety of theoretical computer science fundamentals, including logic calculi, formal languages, automata theory, control theory, program semantics, type systems, and type theory.
  • Associated With: John Backus, Specification section
    In the ALGOL 58 report, John Backus presented a formal notation for describing programming language syntax, later named Backus normal form then renamed Backus-Naur form (BNF).
View the Source
Wikipedia: Tony Hoare
Wikimedia FoundationAssociated With: Tony HoareView the Source
Wikipedia: Robin Milner
Wikimedia FoundationIncludes: Robin Milner, Contributions section
Quote, Includes: Robin Milner, Contributions section
He developed Logic for Computable Functions (LCF), one of the first tools for automated theorem proving. Milner also developed two theoretical frameworks for analyzing concurrent systems, the calculus of communicating systems (CCS), and its successor, the pi-calculus.
View the Source
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.