Program analysis, the Glossary
In computer science, program analysis is the process of automatically analyzing the behavior of computer programs regarding a property such as correctness, robustness, safety and liveness.[1]
Table of Contents
25 relations: Automated code review, Boxing (computer science), C (programming language), Computer science, Control-flow graph, Correctness (computer science), Dynamic program analysis, False positives and false negatives, Formal verification, Interpreter (computing), Language-based security, Optimizing compiler, Polyvariance, Profiling (computer programming), Program optimization, Runtime verification, Security testing, Springer Science+Business Media, SQL injection, Static program analysis, Taint checking, Termination analysis, Type inference, Undecidable problem, Well-formed formula.
Automated code review
Automated code review software checks source code for compliance with a predefined set of rules or best practices.
See Program analysis and Automated code review
Boxing (computer science)
In computer science, boxing (a.k.a. wrapping) is the transformation of placing a primitive type within an object so that the value can be used as a reference.
See Program analysis and Boxing (computer science)
C (programming language)
C (pronounced – like the letter c) is a general-purpose programming language.
See Program analysis and C (programming language)
Computer science
Computer science is the study of computation, information, and automation.
See Program analysis and Computer science
Control-flow graph
In computer science, a control-flow graph (CFG) is a representation, using graph notation, of all paths that might be traversed through a program during its execution.
See Program analysis and Control-flow graph
Correctness (computer science)
In theoretical computer science, an algorithm is correct with respect to a specification if it behaves as specified.
See Program analysis and Correctness (computer science)
Dynamic program analysis
Dynamic program analysis is the act of analyzing software that involves executing a program as opposed to static program analysis, which does not execute it.
See Program analysis and Dynamic program analysis
False positives and false negatives
A false positive is an error in binary classification in which a test result incorrectly indicates the presence of a condition (such as a disease when the disease is not present), while a false negative is the opposite error, where the test result incorrectly indicates the absence of a condition when it is actually present.
See Program analysis and False positives and false negatives
Formal verification
In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of a system with respect to a certain formal specification or property, using formal methods of mathematics.
See Program analysis and Formal verification
Interpreter (computing)
In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program.
See Program analysis and Interpreter (computing)
Language-based security
In computer science, language-based security (LBS) is a set of techniques that may be used to strengthen the security of applications on a high level by using the properties of programming languages.
See Program analysis and Language-based security
Optimizing compiler
An optimizing compiler is a compiler designed to generate code that is optimized in aspects such as minimizing program execution time, memory use, storage size, and power consumption.
See Program analysis and Optimizing compiler
Polyvariance
In program analysis, a polyvariant or context-sensitive analysis (as opposed to a monovariant or context-insensitive analysis) analyzes each function multiple times—typically once at each call site—to improve the precision of the analysis.
See Program analysis and Polyvariance
Profiling (computer programming)
In software engineering, profiling ("program profiling", "software profiling") is a form of dynamic program analysis that measures, for example, the space (memory) or time complexity of a program, the usage of particular instructions, or the frequency and duration of function calls.
See Program analysis and Profiling (computer programming)
Program optimization
In computer science, program optimization, code optimization, or software optimization is the process of modifying a software system to make some aspect of it work more efficiently or use fewer resources.
See Program analysis and Program optimization
Runtime verification
Runtime verification is a computing system analysis and execution approach based on extracting information from a running system and using it to detect and possibly react to observed behaviors satisfying or violating certain properties.
See Program analysis and Runtime verification
Security testing
Security testing is a process intended to detect flaws in the security mechanisms of an information system and as such help enable it to protect data and maintain functionality as intended.
See Program analysis and Security testing
Springer Science+Business Media, commonly known as Springer, is a German multinational publishing company of books, e-books and peer-reviewed journals in science, humanities, technical and medical (STM) publishing.
See Program analysis and Springer Science+Business Media
SQL injection
In computing, SQL injection is a code injection technique used to attack data-driven applications, in which malicious SQL statements are inserted into an entry field for execution (e.g. to dump the database contents to the attacker).
See Program analysis and SQL injection
Static program analysis
In computer science, static program analysis (also known as static analysis or static simulation) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution in the integrated environment.
See Program analysis and Static program analysis
Taint checking
Taint checking is a feature in some computer programming languages, such as Perl, Ruby or Ballerina designed to increase security by preventing malicious users from executing commands on a host computer.
See Program analysis and Taint checking
Termination analysis
In computer science, termination analysis is program analysis which attempts to determine whether the evaluation of a given program halts for each input.
See Program analysis and Termination analysis
Type inference
Type inference, sometimes called type reconstruction, refers to the automatic detection of the type of an expression in a formal language.
See Program analysis and Type inference
Undecidable problem
In computability theory and computational complexity theory, an undecidable problem is a decision problem for which it is proved to be impossible to construct an algorithm that always leads to a correct yes-or-no answer.
See Program analysis and Undecidable problem
Well-formed formula
In mathematical logic, propositional logic and predicate logic, a well-formed formula, abbreviated WFF or wff, often simply formula, is a finite sequence of symbols from a given alphabet that is part of a formal language.
See Program analysis and Well-formed formula
References
[1] https://en.wikipedia.org/wiki/Program_analysis
Also known as Computer program analysis, Program analysis (computer science), Program analyzer, Software analysis.