Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Refinement (computing)

From Wikipedia, the free encyclopedia
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Refinement" computing – news ·newspapers ·books ·scholar ·JSTOR
(September 2010) (Learn how and when to remove this message)
Data transformation
Concepts
Transformation languages
Techniques and transforms
Applications
Related

Refinement is a generic term of computer science that encompasses various approaches for producingcorrect computer programs and simplifying existing programs to enable their formal verification.

Program refinement

[edit]

Informal methods,program refinement is theverifiable transformation of anabstract (high-level)formal specification into aconcrete (low-level)executable program.[citation needed]Stepwise refinement allows this process to be done in stages. Logically, refinement normally involvesimplication, but there can be additional complications.

The progressive just-in-time preparation of the product backlog (requirements list) inagile software development approaches, such asScrum, is also commonly described as refinement.[1]

Data refinement

[edit]

Data refinement is used to convert an abstract data model (in terms ofsets for example) into implementabledata structures (such asarrays).[citation needed] Operation refinement converts aspecification of an operation on a system into an implementableprogram (e.g., aprocedure). Thepostcondition can be strengthened and/or theprecondition weakened in this process. This reduces anynondeterminism in the specification, typically to a completelydeterministic implementation.

For example,x ∈ {1,2,3} (wherex is the value of thevariablex after an operation) could be refined tox ∈ {1,2}, thenx ∈ {1}, and implemented asx := 1. Implementations ofx := 2 andx := 3 would be equally acceptable in this case, using a different route for the refinement. However, we must be careful not to refine tox ∈ {} (equivalent tofalse) since this is unimplementable; it is impossible to select amember from theempty set.

The termreification is also sometimes used (coined byCliff Jones).Retrenchment is an alternative technique when formal refinement is not possible. The opposite of refinement isabstraction.

Refinement calculus

[edit]

Refinement calculus is aformal system (inspired fromHoare logic) that promotes program refinement. TheFermaT Transformation System is an industrial-strength implementation of refinement. TheB-Method is also aformal method that extends refinement calculus with a component language: it has been used in industrial developments.

Refinement types

[edit]
Main article:Refinement type

Intype theory, arefinement type[2][3][4] is a type endowed with a predicate which is assumed to hold for any element of the refined type. Refinement types can expresspreconditions when used asfunction arguments orpostconditions when used asreturn types: for instance, the type of a function which accepts natural numbers and returns natural numbers greater than 5 may be written asf:N{n:N|n>5}{\displaystyle f:\mathbb {N} \rightarrow \{n:\mathbb {N} \,|\,n>5\}}. Refinement types are thus related tobehavioral subtyping.

See also

[edit]

References

[edit]
  1. ^Cho, L (2009). "Adopting an Agile Culture a User Experience Team's Journey".2009 Agile Conference. pp. 416–421.doi:10.1109/AGILE.2009.76.ISBN 978-0-7695-3768-9.S2CID 38580329.
  2. ^Freeman, T.; Pfenning, F. (1991)."Refinement types for ML"(PDF).Proceedings of the ACM Conference on Programming Language Design and Implementation. pp. 268–277.doi:10.1145/113445.113468.
  3. ^Hayashi, S. (1993). "Logic of refinement types".Proceedings of the Workshop on Types for Proofs and Programs. pp. 157–172.CiteSeerX 10.1.1.38.6346.doi:10.1007/3-540-58085-9_74.
  4. ^Denney, E. (1998). "Refinement types for specification".Proceedings of the IFIP International Conference on Programming Concepts and Methods. Vol. 125. Chapman & Hall. pp. 148–166.CiteSeerX 10.1.1.22.4988.


Stub icon

Thissoftware-engineering-related article is astub. You can help Wikipedia byexpanding it.

Retrieved from "https://en.wikipedia.org/w/index.php?title=Refinement_(computing)&oldid=1215731572"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp