Algebraic Specification: Difference between revisions

From Cibernética Americana
Jump to navigationJump to search
(Created page with ' '''Algebraic specification'''<ref>{{cite book|title=Algebraic Specification|first=J. A.|last=Bergstra|coauthors=B. Mahr|publisher=Academic Press|date=1989|isbn=0-201-41635-2}}</...')
 
No edit summary
 
(50 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TOCleft}}
[[:en:Algebraic specification]]


'''Algebraic specification'''<ref>{{cite book|title=Algebraic Specification|first=J. A.|last=Bergstra|coauthors=B. Mahr|publisher=Academic Press|date=1989|isbn=0-201-41635-2}}</ref><ref>{{cite book|title=Algebraic Specification|first=E.|last=Ehrig|coauthors=J. Heering, J. Klint|publisher=Springer-Vrlag|date=1985|series=EATCS Monographs on Theoretical Computer Science|volume=6}}</ref><ref>{{cite book|title=Algebraic Specification|first=M.|last=Wirsing|series=Handbook of Theoretical Computer Science|volume=B|editor=J. van Leeuwen (ed.)|date=1990|publisher=Elsevier|pages=675–788}}</ref> is a formal process of refining specifications to systematically develop more efficient programs.The purpose of an algebraic specification is to:<br />
== Overview ==
1. represent mathematical structures and functions over those<br />
2. while abstracting from implementation details such as the size of representations (in memory) and the efficiency of obtaining outcome of computations<br />
3. as such formalizing computations on data<br />
4. allowing for automation due to a limited set of rules<br /><br />
An algebraic specification achieves these goals by means of defining a number of sorts (data types) together
with a collection of functions on them. These functions can usually be divided into two classes:<br />
1. constructor functions: these are introduced to create elements of the sort or to construct complex
elements from simpler ones.<br />
2. additional functions: these are functions defined in terms of the constructor functions.
If one considers an algebraic specification of the Booleans the constructors can be true and false. In that
case all other connectives, such as ^ and _, may be considered to be additional functions. Alternatively,
also the combination of false and ¬ can be considered constructors. In that case true may be considered
an additional function.<br />
In the context of the description of state and state change one may think of the sort as the set of possible
states (not necessarily all of them can occur in practice) and one may think of the functions as being useful
for describing the state changes that may occur.<br />
It is directly applicable to [[computer science]].


References:
'''Algebraic specification''' <ref name="BHK">{{cite book|title=Algebraic Specification|first=J. A.|last=Bergstra|coauthors=B. Mahr|publisher=Academic Press|date=1989|isbn=0-201-41635-2}}</ref><ref>{{cite book|title=Algebraic Specification|first=E.|last=Ehrig|coauthors=J. Heering, J. Klint|publisher=Springer-Vrlag|date=1985|series=EATCS Monographs on Theoretical Computer Science|volume=6}}</ref><ref>{{cite book|title=Algebraic Specification|first=M.|last=Wirsing|series=Handbook of Theoretical Computer Science|volume=B|editor=J. van Leeuwen (ed.)|date=1990|publisher=Elsevier|pages=675–788}}</ref> is a specific approach to the formal specification, prototyping, and general development of computer programs.
* [[Donald Sannella]]
* [[Andrzej Tarlecki]]


==See also==
Algebraic modeling of systems is the basic methodology of '''ai-integration.biz''' with antecedents in '''Langefors (TAIS)''' and the '''[[:en:Burroughs large systems|Burroughs Large Systems]]'''. This page gives an overview of this and the generic topic.
 
== Elements ==
As an area of applied mathematics and computer science, Algebraic Specification (AS) addresses these concerns<ref name="BHK"/>:
 
*# design of algebraic specification formalisms;
*# application of algebraic specification techniques to the definition programming languages;
*# generation of testable or executable prototypes from specifications.
 
Although there is also a branch of this topic which is more concentrated on theoretical computer than applications, the
latter are the focus of this article.
 
==Implementation and Issues==
 
=== Algebraic specification Formalisms ===
 
=== Pure Functional Programming and Specifications ===
 
=== Development Practices ===
 
The broad spectrum of observed practices in which computer systems are actually developed is a superset of those covered in the so-called [[:en:Software Engineering|Software Engineering]].
 
==== Capability Maturity ====


* [[Common Algebraic Specification Language]].
==== Software Design in a Social Context ====
* [[Formal specification]]


== Notes ==
== Researchers ==
* [[:en:Donald Sannella|Donald Sannella]]


<references/>
==See also==
* [[AII]]
* [[:en:Algebraic specification|Algebraic specification]]
* [[:en:Common Algebraic Specification Language|Common Algebraic Specification Language]].
* [[:en:Formal specification|Formal specification]]
* [[TAIS]]


{{compsci-stub}}
== Notes ==


[[pt:Especificação algébrica]]
<references />

Latest revision as of 12:08, 9 August 2009

en:Algebraic specification

Overview

Algebraic specification [1][2][3] is a specific approach to the formal specification, prototyping, and general development of computer programs.

Algebraic modeling of systems is the basic methodology of ai-integration.biz with antecedents in Langefors (TAIS) and the Burroughs Large Systems. This page gives an overview of this and the generic topic.

Elements

As an area of applied mathematics and computer science, Algebraic Specification (AS) addresses these concerns[1]:

    1. design of algebraic specification formalisms;
    2. application of algebraic specification techniques to the definition programming languages;
    3. generation of testable or executable prototypes from specifications.

Although there is also a branch of this topic which is more concentrated on theoretical computer than applications, the latter are the focus of this article.

Implementation and Issues

Algebraic specification Formalisms

Pure Functional Programming and Specifications

Development Practices

The broad spectrum of observed practices in which computer systems are actually developed is a superset of those covered in the so-called Software Engineering.

Capability Maturity

Software Design in a Social Context

Researchers

See also

Notes

  1. 1.0 1.1 Bergstra, J. A.; B. Mahr (1989). Algebraic Specification. Academic Press. ISBN 0-201-41635-2. 
  2. Ehrig, E.; J. Heering, J. Klint (1985). Algebraic Specification. EATCS Monographs on Theoretical Computer Science. 6. Springer-Vrlag. 
  3. Wirsing, M. (1990). J. van Leeuwen (ed.). ed. Algebraic Specification. Handbook of Theoretical Computer Science. B. Elsevier. pp. 675–788.