Algebraic Specification: Difference between revisions

From Cibernética Americana
Jump to navigationJump to search
No edit summary
No edit summary
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TOCright}}'''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 specific approach to the formal specification, prototyping, and general development of computer programs.
{{TOCleft}}
[[:en:Algebraic specification]]


== Goals ==
== Overview ==
The purposes of an algebraic specification are to:


*
'''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.
*# represent applications and their subparts as mathematical objects and functions applicable to same
*# abstract from implementation details irrelevant to the mathematics of the application
*# formalizing computations for specific data models
*# provide opportunities for automation due to a now explicit rule base embodied in the theory which the specification embodies


==Implementation==
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.


An algebraic specification achieves these goals by means of defining a number of sorts (data types) together
== Elements ==
with a collection of functions on them. These functions can usually be divided into two classes:<br />
As an area of applied mathematics and computer science, Algebraic Specification (AS) addresses these concerns<ref name="BHK"/>:


# constructor functions: these are introduced to create elements of the sort or to construct complex elements from simpler ones.
*# design of algebraic specification formalisms;
# additional functions: these are functions defined in terms of the constructor functions.
*# application of algebraic specification techniques to the definition programming languages;
*# generation of testable or executable prototypes from specifications.


If one considers an algebraic specification of the Booleans the constructors can be true and false. In that
Although there is also a branch of this topic which is more concentrated on theoretical computer than applications, the
case all other connectives, such as ^ and _, may be considered to be additional functions. Alternatively,
latter are the focus of this article.
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
==Implementation and Issues==
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 />
=== 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 ====
 
==== Software Design in a Social Context ====


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


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


== Notes ==
== Notes ==


<references />
<references />