Computing Atlas

How Computing Was Built
Fields

Formal Methods

Also Known As Formal Verification
Field of Study

Citation Formats

General Reference

APA Style

BibTeX

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.

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
Cross-Tradition Connections

Associated With

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.

Includes

Sources
1. Wikipedia: Formal Methods
Wikimedia FoundationVerification section
Quote, 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.
View the Source
1. Wikipedia: Formal Methods
Wikimedia FoundationHistory section
Quote, 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).
View the Source
1. Wikipedia: Formal Methods
Wikimedia FoundationIntroduction
Quote, Introduction
In computer science, formal methods are mathematically rigorous techniques for the specification, development, analysis, and verification of software and hardware systems.
View the Source
1. Wikipedia: Formal Methods
Wikimedia FoundationAssociated With: Programming Language Theory, Fundamentals section
Quote, 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.
View the Source
1. Wikipedia: Formal Methods
Wikimedia FoundationAssociated With: John Backus, Specification section
Quote, 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 open reader challenges)
No disputes yet. Spotted an error or a better source? Open the first one.

View At A Past Year

The atlas records no dated fact of its own for this entry, so there is no other year to choose.