A theory and practice of program development:
Gespeichert in:
Beteilige Person: | |
---|---|
Format: | Buch |
Sprache: | Deutsch |
Veröffentlicht: |
London [u.a.]
Springer
1997
|
Schriftenreihe: | Formal approaches to computing and information technology
|
Schlagwörter: | |
Links: | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=007612745&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
Umfang: | XVII, 405 S. graph. Darst. |
ISBN: | 3540761624 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV011329647 | ||
003 | DE-604 | ||
005 | 19970820 | ||
007 | t| | ||
008 | 970428s1997 gw d||| |||| 00||| ger d | ||
016 | 7 | |a 950179973 |2 DE-101 | |
020 | |a 3540761624 |c Pb. : DM 66.00 |9 3-540-76162-4 | ||
035 | |a (OCoLC)845416344 | ||
035 | |a (DE-599)BVBBV011329647 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c DE | ||
049 | |a DE-19 |a DE-739 |a DE-20 |a DE-898 |a DE-521 |a DE-634 |a DE-83 | ||
050 | 0 | |a QA76.76.D47A427 1997 | |
082 | 0 | |a 005.3 21 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a 28 |2 sdnb | ||
100 | 1 | |a Andrews, Derek |e Verfasser |4 aut | |
245 | 1 | 0 | |a A theory and practice of program development |c Derek Andrews |
264 | 1 | |a London [u.a.] |b Springer |c 1997 | |
300 | |a XVII, 405 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Formal approaches to computing and information technology | |
650 | 4 | |a Computer software -- Development | |
650 | 4 | |a Computer programming | |
650 | 0 | 7 | |a Softwareentwicklung |0 (DE-588)4116522-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Formale Spezifikationstechnik |0 (DE-588)4299725-2 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Spezifikationssprache |0 (DE-588)4182217-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a VDM |0 (DE-588)4135608-1 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Softwareentwicklung |0 (DE-588)4116522-6 |D s |
689 | 0 | 1 | |a Formale Spezifikationstechnik |0 (DE-588)4299725-2 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a VDM |0 (DE-588)4135608-1 |D s |
689 | 1 | 1 | |a Spezifikationssprache |0 (DE-588)4182217-1 |D s |
689 | 1 | |5 DE-604 | |
856 | 4 | 2 | |m HEBIS Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=007612745&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-007612745 |
Datensatz im Suchindex
_version_ | 1819335084714491904 |
---|---|
adam_text | Derek Andrews
A Theory and Practice of
Program Development
Springer
Contents
1 Writing Correct Programs 1
1 1 Satisfying Specifications 1
1 2 An Alternative Approach 4
1 3 Summary 6
2 A Small Programming Language 7
2 1 Satisfying Specifications 7
2 2 Specifications and Programs 11
2 3 The Semantics of Commands 12
231 Some Primitive Commands 15
232A Basic Command 16
233 New Commands from Old - Operators 17
2 4 Non-determinism and Partial Commands 21
2 5 The Concepts of Predicate Transformers 24
2 6 Substitution 26
261 Rules for Substitution 28
2 7 The Formal Semantics of the Kernel Language 28
271 The Bounded Commands 28
272 The Unbounded Commands 31
2 8 The Weakest Liberal Pre-conditions, Termination, and Re-
lations 32
2 9 Executable Programs 36
2 10 Summary 36
3 Concepts and Properties 37
3 1 More Commands 37
3 2 The Domain of a Command 40
3 3 Some Properties of Commands 45
331 Sequence 45
332 Bounded Non-deterministic Choice 46
333 Guarded Commands 47
334 Unbounded Non-deterministic Choice 49
xii Contents
335 Assertions 50
34A Normal Form 50
3 5 Some Further Properties 54
351 Setting and Testing Variables 56
3 6 The Primitive Commands Revisited 61
3 7 Initial Values 63
38A Compiler for the Small Language 65
3 9 Summary 65
4 Building New Commands from Old 66
4 1 Defining Commands 66
4 2 An Approach to Recursion 68
4 3 Sequences of Predicates and their Limit 70
431A Skeptical Result 72
432A Credulous Result 74
4 4 Limits of Predicate Transformers 75
441 The Two Approaches 77
4 5 Limits of Commands 78
4 6 Tidying the Loose Ends 81
4 7 Epilogue 82
5 Program Refinement 84
5 1 Stepwise Refinement 84
5 2 Replacing Specifications 85
5 3 Conventions 96
5 4 Refinement Classes 96
5 5 Alternative Views of Refinement 99
5 6 Other Refinement Relations 101
561 Weak Refinement 101
562 Partial Refinement 102
563 Full Refinement 102
564 Strong Refinement 102
565 Refinement by Simulation 103
5 7 Summary 104
6 The Basic Commands 105
6 1 The Constant Commands 105
6 2 Assertions 109
6 3 Assignment 112
631 Implementation Issues 115
6 4 Summary 116
Contents xiii
7 Declarations and Blocks 117
7 1 The Declaration Command 117
7 2 Some Interactions Between Commands 118
7 3 The Definitional Commands 121
731 Declarations 122
732 The Let Command 122
733 The Def Command 123
734 The Def and Let Commands Compared 123
7 4 Refining Definitional Commands 125
7 5 Defining Constant Values 127
751 Refining Functions and Constants 128
7 6 Logical Constants 129
7 7 Summary 134
8 Command Sequences 135
8 1 Solve a Part and then the Whole 135
811 Choosing the First Step 137
812 Choosing the Second Step 140
813 Choosing Both Steps 142
8 2 Summary 144
9 The Alternative Command 145
9 1 Divide and Conquer 145
9 2 The Partition 147
9 3 Reassembly 150
9 4 Alternatives - The If Command 152
9 5 Refining Specifications 157
9 6 Summary 158
10 The Iterative Command 159
10 1 Another Approach 164
10 2 The Generalized Loop and Refinement 166
10 3 The General Variant Theorem 168
10 4 An Application 170
10 5 Loops 172
10 6 Iteration - The Do Command 176
10 7 Practical Do Commands 179
10 8 The Refinement of Loop Bodies 180
10 8 1 Decreasing Variants 180
10 8 2 Increasing Variants 182
10 9 Summary 183
xiv Contents
11 Functions and Procedures 184
11 1 Proper Procedures and their Calls 184
11 2 Function Procedures and their Calls 190
11 3 Function Calls in Expressions 193
11 4 An Alternative Approach to Parameters and Arguments 195
11 5 Postscript 195
11 6 Summary 196
12 An Example of Refinement at Work 197
12 1 The Problem - Integer Multiplication 197
12 1 1 Getting Started 197
12 1 2 The Refinement Strategy Continued 198
12 1 3 The Next Step 199
12 2 Logical Constants Revisited 203
12 3 Summary 204
13 On Refinement and Loops 205
13 1 The Factorial Problem 205
13 1 1 The First Solution 205
13 12A Second Solution 207
13 2 Finding Guards and Invariants 210
13 3 Identifying the Loop Type Incorrectly 215
14 Functions and Procedures in Refinement 216
14 1 Factorial 216
14 2 Multiply 218
14 3 Summary 221
15 Refinement and Performance 222
15 1 A Second Approach to Multiplication 222
15 2 Fast Division 224
15 3 Summary 229
16 Searching and Sorting 230
16 1 A Diversion - the Array Data Type 230
16 2 Linear Search 231
16 3 Binary Search 234
16 4 A Simple Sort Algorithm 239
16 4 1 The First Attempt 240
16 4 2 The Other Approach 243
16 5 Summary 246
Contents xv
17 Data refinement 247
17 1 The Refinement Strategy 247
17 1 1 The Problem 248
17 2 The Refinement to Executable Code 251
17 3 The Next Step 255
17 4 The Refinement of the Operations 260
17 5 The First Refinement Step 266
17 6 The Next Refinement Step 268
17 6 1 The check Operation 277
17 6 2 Putting it all Together 277
17 6 3 Further Development 278
17 6 4 The Final Step 278
17 7 A Summary of the Approach 278
17 8 Summary 281
18 A Theory of Data Refinement 282
18 1 An Approach to Data Refinement 282
18 1 1 The Data Refinement of Declarations 296
18 1 2 Refinement and Specifications 296
18 2 Data Refinement in Practice 299
18 3 Another View of Data Refinement 300
18 4 Functional Refinement 303
18-5 An Alternative Data Refinement of Assignments 304
18 6 Summary 307
19 An Alternative Refinement of the Security System 308
19 1 A Data Refinement 308
19 2 Another Approach to the Refinement 313
19 3 Summary 317
20 Stacks and Queues 318
20 1 A Finite Stack 318
20 1 1 The Refinement 319
20 1 2 Reorganizing the Operations 321
20 2 A stack of Boolean Values 327
20 2 1 Some Lemmas about the Representation 329
20 2 2 The empty-stack Operation 330
20 2 3 The push Operation 330
20 2 4 The pop Operation 330
20 2 5 The read Operation 331
20 2 6 The is-empty Operation 331
20 2 7 The is-full Operation 332
20 2 8 The Code 333
20 2 9 Some Lessons 333
20 3 A Finite Queue 333
xvi Contents
20 31A Refinement of the Queue : 336
20 3 2 Some Theorems 338
20 3 3 The Operations Transformed 339
20 3 4 An Extension to the System 343
20 4 An Efficient Queue 345
20 4 1 Some Properties 347
20 4 2 Lessons 351
21 Dynamic Data Structures 352
21 1 Simulating a Linked List 352
21 1 1 Some Theorems 353
21 1 2 The Operations Transformed 354
21 2 Explicit Pointers 355
21 3 The Stack Using Explicit Pointers 358
21 3 1 Standard Stack Specification to Pointers 360
21 4 Summary 368
22 Binary Trees 370
22 1 The Specification 370
22 2 The Refinement 370
22 3 The Refinement of the in Operation 371
22 4 The Refinement of the insert Operation 374
22 5 The Refinement of the delete Operation 377
22 6 An In-order Traversal 382
22 7 Summary 387
23 Epilogue 388
23 1 An Approach to Loose Patterns and Functions 389
A Program Refinement Rules 393
A I Replace Specification 393
A 2 Assume Pre-condition in Post-condition 393
A 3 Introduce Assignment 393
A 4 Introduce Command-semicolon 394
A 5 Introduce Semicolon-command 394
A 6 Introduce Leading Assignment 394
A 7 Introduce Following Assignment 395
A 8 Introduce Alternatives 395
A 9 Introduce Iteration 395
A 10 Introduce Proper Procedure Body 396
A ll Introduce Proper Procedure Call 396
A 12 Introduce Function Procedure Body 397
A 13 Introduce Function Procedure Call 397
A 14 Add Variable 397
A 15 Realize Quantifier 398
Contents xvii
A 16 Remove Scope 398
A 17 Expand Frame 398
A 18 Contract Frame 398
A 19 Introduce Logical Constant 398
A 20 Remove Logical Constant 399
A 21 Refine Block 399
A 22 Introduce Skip 399
Bibliography 401
Index 403
|
any_adam_object | 1 |
author | Andrews, Derek |
author_facet | Andrews, Derek |
author_role | aut |
author_sort | Andrews, Derek |
author_variant | d a da |
building | Verbundindex |
bvnumber | BV011329647 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.D47A427 1997 |
callnumber-search | QA76.76.D47A427 1997 |
callnumber-sort | QA 276.76 D47 A427 41997 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 230 |
ctrlnum | (OCoLC)845416344 (DE-599)BVBBV011329647 |
dewey-full | 005.321 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.3 21 |
dewey-search | 005.3 21 |
dewey-sort | 15.3 221 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01927nam a2200493 c 4500</leader><controlfield tag="001">BV011329647</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">19970820 </controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">970428s1997 gw d||| |||| 00||| ger d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">950179973</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3540761624</subfield><subfield code="c">Pb. : DM 66.00</subfield><subfield code="9">3-540-76162-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)845416344</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV011329647</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">DE</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-19</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-521</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-83</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.D47A427 1997</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.3 21</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">28</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Andrews, Derek</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">A theory and practice of program development</subfield><subfield code="c">Derek Andrews</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">London [u.a.]</subfield><subfield code="b">Springer</subfield><subfield code="c">1997</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVII, 405 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Formal approaches to computing and information technology</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer software -- Development</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer programming</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Formale Spezifikationstechnik</subfield><subfield code="0">(DE-588)4299725-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Spezifikationssprache</subfield><subfield code="0">(DE-588)4182217-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">VDM</subfield><subfield code="0">(DE-588)4135608-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Formale Spezifikationstechnik</subfield><subfield code="0">(DE-588)4299725-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">VDM</subfield><subfield code="0">(DE-588)4135608-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Spezifikationssprache</subfield><subfield code="0">(DE-588)4182217-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HEBIS Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=007612745&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-007612745</subfield></datafield></record></collection> |
id | DE-604.BV011329647 |
illustrated | Illustrated |
indexdate | 2024-12-20T10:10:31Z |
institution | BVB |
isbn | 3540761624 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-007612745 |
oclc_num | 845416344 |
open_access_boolean | |
owner | DE-19 DE-BY-UBM DE-739 DE-20 DE-898 DE-BY-UBR DE-521 DE-634 DE-83 |
owner_facet | DE-19 DE-BY-UBM DE-739 DE-20 DE-898 DE-BY-UBR DE-521 DE-634 DE-83 |
physical | XVII, 405 S. graph. Darst. |
publishDate | 1997 |
publishDateSearch | 1997 |
publishDateSort | 1997 |
publisher | Springer |
record_format | marc |
series2 | Formal approaches to computing and information technology |
spellingShingle | Andrews, Derek A theory and practice of program development Computer software -- Development Computer programming Softwareentwicklung (DE-588)4116522-6 gnd Formale Spezifikationstechnik (DE-588)4299725-2 gnd Spezifikationssprache (DE-588)4182217-1 gnd VDM (DE-588)4135608-1 gnd |
subject_GND | (DE-588)4116522-6 (DE-588)4299725-2 (DE-588)4182217-1 (DE-588)4135608-1 |
title | A theory and practice of program development |
title_auth | A theory and practice of program development |
title_exact_search | A theory and practice of program development |
title_full | A theory and practice of program development Derek Andrews |
title_fullStr | A theory and practice of program development Derek Andrews |
title_full_unstemmed | A theory and practice of program development Derek Andrews |
title_short | A theory and practice of program development |
title_sort | a theory and practice of program development |
topic | Computer software -- Development Computer programming Softwareentwicklung (DE-588)4116522-6 gnd Formale Spezifikationstechnik (DE-588)4299725-2 gnd Spezifikationssprache (DE-588)4182217-1 gnd VDM (DE-588)4135608-1 gnd |
topic_facet | Computer software -- Development Computer programming Softwareentwicklung Formale Spezifikationstechnik Spezifikationssprache VDM |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=007612745&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT andrewsderek atheoryandpracticeofprogramdevelopment |