54 relations: Abstract interpretation, Abstract syntax, ACM Transactions on Programming Languages and Systems, Algorithm, Assertion (software development), Automated reasoning, Axiomatic semantics, B-Method, Concurrent computing, Continuation-passing style, Coq, Cryptography, Deductive reasoning, Denotational semantics, Distributed computing, Dynamic logic (modal logic), Edsger W. Dijkstra, ESC/Java, Evaluation strategy, First-order logic, Formal Aspects of Computing, Formal system, Frama-C, Free variables and bound variables, Gödel's completeness theorem, Guarded Command Language, Haskell (programming language), Hoare logic, Imperative programming, Kleene fixed-point theorem, Leslie Lamport, Loop invariant, Loop variant, Monad (functional programming), Monotonic function, Natural number, Niklaus Wirth, Operational semantics, Partial function, Postcondition, Precondition, Predicate (mathematical logic), Proof assistant, Ralph-Johan Back, Randomized algorithm, Refinement calculus, Satisfiability modulo theories, Semantics (computer science), Separation logic, Set theory, ..., Symbolic execution, Tuple, Type theory, Well-founded relation. Expand index (4 more) » « Shrink index
In computer science, abstract interpretation is a theory of sound approximation of the semantics of computer programs, based on monotonic functions over ordered sets, especially lattices.
In computer science, the abstract syntax of data is its structure described as a data type (possibly, but not necessarily, an abstract data type), independent of any particular representation or encoding.
The ACM Transactions on Programming Languages and Systems (TOPLAS) is a bimonthly peer-reviewed scientific journal on programming languages published by the Association for Computing Machinery since 1979.
In mathematics and computer science, an algorithm is an unambiguous specification of how to solve a class of problems.
In computer programming, an assertion is a statement that a predicate (Boolean-valued function, i.e. a true–false expression) is always true at that point in code execution.
Automated reasoning is an area of computer science and mathematical logic dedicated to understanding different aspects of reasoning.
Axiomatic semantics is an approach based on mathematical logic for proving the correctness of computer programs.
The B method is a method of software development based on B, a tool-supported formal method based on an abstract machine notation, used in the development of computer software.
Concurrent computing is a form of computing in which several computations are executed during overlapping time periods—concurrently—instead of sequentially (one completing before the next starts).
In functional programming, continuation-passing style (CPS) is a style of programming in which control is passed explicitly in the form of a continuation.
In computer science, Coq is an interactive theorem prover.
Cryptography or cryptology (from κρυπτός|translit.
Deductive reasoning, also deductive logic, logical deduction is the process of reasoning from one or more statements (premises) to reach a logically certain conclusion.
In computer science, denotational semantics (initially known as mathematical semantics or Scott–Strachey semantics) is an approach of formalizing the meanings of programming languages by constructing mathematical objects (called denotations) that describe the meanings of expressions from the languages.
Distributed computing is a field of computer science that studies distributed systems.
Dynamic logic is an extension of modal logic originally intended for reasoning about computer programs and later applied to more general complex behaviors arising in linguistics, philosophy, AI, and other fields.
Edsger Wybe Dijkstra (11 May 1930 – 6 August 2002) was a Dutch systems scientist, programmer, software engineer, science essayist, and early pioneer in computing science.
ESC/Java (and more recently ESC/Java2), the "Extended Static Checker for Java," is a programming tool that attempts to find common run-time errors in Java programs at compile time.
Evaluation strategies are used by programming languages to determine when to evaluate the argument(s) of a function call (for function, also read: operation, method, or relation) and what kind of value to pass to the function.
First-order logic—also known as first-order predicate calculus and predicate logic—is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science.
Formal Aspects of Computing (FAOC) is a peer-reviewed scientific journal published by Springer Science+Business Media, covering the area of formal methods and associated topics in computer science.
A formal system is the name of a logic system usually defined in the mathematical way.
Frama-C stands for Framework for Modular Analysis of C programs.
In mathematics, and in other disciplines involving formal languages, including mathematical logic and computer science, a free variable is a notation that specifies places in an expression where substitution may take place.
Gödel's completeness theorem is a fundamental theorem in mathematical logic that establishes a correspondence between semantic truth and syntactic provability in first-order logic.
The Guarded Command Language (GCL) is a language defined by Edsger Dijkstra for predicate transformer semantics.
Haskell is a standardized, general-purpose compiled purely functional programming language, with non-strict semantics and strong static typing.
Hoare logic (also known as Floyd–Hoare logic or Hoare rules) is a formal system with a set of logical rules for reasoning rigorously about the correctness of computer programs.
In computer science, imperative programming is a programming paradigm that uses statements that change a program's state.
In the mathematical areas of order and lattice theory, the Kleene fixed-point theorem, named after American mathematician Stephen Cole Kleene, states the following: The ascending Kleene chain of f is the chain obtained by iterating f on the least element ⊥ of L. Expressed in a formula, the theorem states that where \textrm denotes the least fixed point.
Leslie B. Lamport (born February 7, 1941) is an American computer scientist.
In computer science, a loop invariant is a property of a program loop that is true before (and after) each iteration.
In computer science, a loop variant is a mathematical function defined on the state space of a computer program whose value is monotonically decreased with respect to a (strict) well-founded relation by the iteration of a while loop under some invariant conditions, thereby ensuring its termination.
In functional programming, a monad is a design pattern that defines how functions, actions, inputs, and outputs can be used together to build generic types, with the following organization.
In mathematics, a monotonic function (or monotone function) is a function between ordered sets that preserves or reverses the given order.
In mathematics, the natural numbers are those used for counting (as in "there are six coins on the table") and ordering (as in "this is the third largest city in the country").
Niklaus Emil Wirth (born 15 February 1934) is a Swiss computer scientist, best known for designing several programming languages, including Pascal, and for pioneering several classic topics in software engineering.
Operational semantics is a category of formal programming language semantics in which certain desired properties of a program, such as correctness, safety or security, are verified by constructing proofs from logical statements about its execution and procedures, rather than by attaching mathematical meanings to its terms (denotational semantics).
In mathematics, a partial function from X to Y (written as or) is a function, for some subset X ′ of X.
In computer programming, a postcondition is a condition or predicate that must always be true just after the execution of some section of code or after an operation in a formal specification.
In computer programming, a precondition is a condition or predicate that must always be true just prior to the execution of some section of code or before an operation in a formal specification.
In mathematical logic, a predicate is commonly understood to be a Boolean-valued function P: X→, called the predicate on X. However, predicates have many different uses and interpretations in mathematics and logic, and their precise definition, meaning and use will vary from theory to theory.
In computer science and mathematical logic, a proof assistant or interactive theorem prover is a software tool to assist with the development of formal proofs by human-machine collaboration.
Ralph-Johan Back is a Finnish computer scientist.
A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic.
The refinement calculus is a formalized approach to stepwise refinement for program construction.
In computer science and mathematical logic, the satisfiability modulo theories (SMT) problem is a decision problem for logical formulas with respect to combinations of background theories expressed in classical first-order logic with equality.
In programming language theory, semantics is the field concerned with the rigorous mathematical study of the meaning of programming languages.
In computer science, separation logic is an extension of Hoare logic, a way of reasoning about programs.
Set theory is a branch of mathematical logic that studies sets, which informally are collections of objects.
In computer science, symbolic execution (also symbolic evaluation) is a means of analyzing a program to determine what inputs cause each part of a program to execute.
In mathematics, a tuple is a finite ordered list (sequence) of elements.
In mathematics, logic, and computer science, a type theory is any of a class of formal systems, some of which can serve as alternatives to set theory as a foundation for all mathematics.
In mathematics, a binary relation, R, is called well-founded (or wellfounded) on a class X if every non-empty subset S ⊆ X has a minimal element with respect to R, that is an element m not related by sRm (for instance, "s is not smaller than m") for any s ∈ S. In other words, a relation is well founded if Some authors include an extra condition that R is set-like, i.e., that the elements less than any given element form a set.