Software language engineering: creating domain-specific languages using metamodels
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ [u.a.]
Addison-Wesley
2009
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Includes bibliographical references (p. 189-196) and index |
Beschreibung: | XXXI, 207 S. Ill. 24 cm |
ISBN: | 0321553454 9780321553454 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035464782 | ||
003 | DE-604 | ||
005 | 20151126 | ||
007 | t | ||
008 | 090504s2009 xxua||| |||| 00||| eng d | ||
010 | |a 2008037160 | ||
020 | |a 0321553454 |c paper back : alk. paper |9 0-321-55345-4 | ||
020 | |a 9780321553454 |c paper back : alk. paper |9 978-0-321-55345-4 | ||
035 | |a (OCoLC)243543539 | ||
035 | |a (DE-599)BVBBV035464782 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-861 |a DE-703 |a DE-11 |a DE-2070s |a DE-859 | ||
050 | 0 | |a QA76.7 | |
082 | 0 | |a 005.1 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
100 | 1 | |a Kleppe, Anneke G. |e Verfasser |0 (DE-588)128847557 |4 aut | |
245 | 1 | 0 | |a Software language engineering |b creating domain-specific languages using metamodels |c Anneke Kleppe |
264 | 1 | |a Upper Saddle River, NJ [u.a.] |b Addison-Wesley |c 2009 | |
300 | |a XXXI, 207 S. |b Ill. |c 24 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Includes bibliographical references (p. 189-196) and index | ||
650 | 7 | |a Programmiersprache |2 swd | |
650 | 7 | |a Programmierung |2 swd | |
650 | 4 | |a Programming languages (Electronic computers) | |
650 | 4 | |a Software engineering | |
650 | 4 | |a Computer software |x Development | |
650 | 0 | 7 | |a Software Engineering |0 (DE-588)4116521-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmiersprache |0 (DE-588)4047409-4 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Programmiersprache |0 (DE-588)4047409-4 |D s |
689 | 0 | 1 | |a Software Engineering |0 (DE-588)4116521-4 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bayreuth |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017384556&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-017384556 |
Datensatz im Suchindex
_version_ | 1804138921276211200 |
---|---|
adam_text | Contents
Background
Information.........................................xvii
Preface
....................................................... xix
Foreword
....................................................xxvii
Chapter
1
Why Software Language Engineering?
..........1
1.1
An Increasing Number of Languages
............................1
1.2
Software Languages
.........................................3
1.3
The Changing Nature of Software Languages
.....................4
1.3.1
Graphical versus Textual Languages
.............................5
1.3.2
Multiple Syntaxes
...........................................6
1.4
The Complexity Crisis
........................................7
1.5
What We Can Learn From
.....................................8
1.5.1
Natural-Language Studies
.....................................9
1.5.2
Traditional Language Theory
.................................10
1.5.3
Graph Theory
..............................................10
1.6
Summary
.................................................12
Chapter
2
Roles in Language Engineering
...............15
2.1
Different Processes, Different Actors
...........................15
2.2
The Language User
.........................................16
2.2.1
Tool Set of the Language User
................................17
ix
X j
CONTENTS
2.3
The Language Engineer
......................................
^
2.3.1
Tool Set for the Language Engineer
............................19
2.3.2
Tool Generators
............................................20
2.4
Summary
.................................................21
Chapter
3
Languages and Mograms
...................23
3.1
What Is a Language?
........................................23
3.1.1
Mogram, or Linguistic Utterance
..............................24
3.1.2
Primitive Language Elements and Libraries
......................26
3.2
Abstraction Levels and Expressiveness
.........................27
3.2.1
Abstract versus Incomplete
...................................29
3.2.2
Raising the Level of Abstraction
...............................29
3.2.3
Growing Business Expectations
...............................31
3.2.4
Languages and Abstraction Levels
.............................32
3.3
Domain-Specific Languages
..................................33
3.3.1
Domain-Specific versus General Languages
......................33
3.3.2
Domain Experts versus Computer Experts
.......................33
3.3.3
Large User Group versus Small User Group
......................34
3.3.4
Horizontal DSLs versus Vertical DSLs
..........................35
3.3.5
DSLs versus Frameworks and APIs
............................37
3.3.6
DSLs as Software Languages
.................................37
3.4
Summary
.................................................38
Chapter
4
Elements of a Language Specification
........39
4.1
Language Specification
......................................39
4.1.1
Forms of a Mogram
.........................................40
4.1.2
Parts
.....................................................41
4.1.3
Creation Process
...........................................
42
4.1.4
An Example
...............................................
43
Contents
j
xi
4.2
Formalisms to Specify Languages
.............................47
4.2.1
Context-Free Grammars
.....................................47
4.2.2
Attributed Grammars
........................................49
4.2.3
Graph Grammars
...........................................51
4.2.4
UML Profiling
.............................................52
4.2.5
Metamodeling
.............................................53
4.2.6
Formalism of Choice
........................................53
4.3
Summary
.................................................54
Chapter
5
Metamodeling
.............................57
5.1
Foundations of Metamodeling
.................................57
5.1.1
Graphs
...................................................58
5.1.2
Models and Instances
........................................61
5.1.3
Constraint Types
...........................................62
5.1.4
UML Diagrams as Notation
..................................66
5.1.5
Metamodels
...............................................68
5.2
Relation with Model-Driven Approaches
........................69
5.2.1
How to Understand the Term Platform
..........................69
5.2.2
Transformations and Language Specifications
....................70
5.3
Summary
.................................................73
Chapter
6
Abstract Syntax
...........................75
6.1
The Pivotal Role of Abstract Syntax
............................75
6.1.1
The Hidden, Underlying, Unifying Structure
.....................75
6.1.2
The Gateway to Semantics
...................................76
6.2
Mogram/Language Relationship
...............................77
6.2.1
Abstract Form of a Mogram
..................................78
6.2.2
Concrete form of a Mogram
..................................78
6.2.3
Syntactically, Not Semantically, Correct
........................79
6.2.4
Syntactically Incorrect Mograms
...............................80
XU
I CONTENTS
6.3
How to Create an Abstract Syntax Model
........................80
6.3.1
Domain Modeling for Vertical DSLs
...........................81
6.3.2
Pattern Finding for Horizontal DSLs
............................82
6.4
Alan: An Example Language
.................................83
6.4.1
Introducing Alan
...........................................83
6.4.2
The Observer Pattern in Alan
.................................84
6.4.3
Generic Types in Alan
.......................................85
6.4.4
Alan s Standard Library
.....................................86
6.5
Alan s Abstract Syntax Model
................................86
6.5.1
Types
....................................................86
6.5.2
Expressions
...............................................87
6.5.3
The Observer Pattern
........................................89
6.5.4
The Library
...............................................90
6.6
Summary
.................................................90
Chapter
7
Concrete Syntax
..........................93
7.1
Concrete Syntax and Tool Support
.............................93
7.1.1
Phases in the Recognition Process
..............................94
7.1.2
Two Types of Editors
......................................100
7.1.3
The Textual-Graphical Mismatch, or Blind Spots
.................101
7.2
Concrete Syntax Model
.....................................104
7.2.1
Guidelines for Creating a Concrete Syntax Model
................105
7.2.2
Alan s Graphical Syntax Model
..............................106
7.3
Summary
................................................ 110
Chapter
8
Generating Textual Concrete Syntax
.........113
8.1
The
Grasland
Generator
....................................113
8.2
The Abstract-to-Concrete Transformation
......................117
8.2.1
Handling References
.......................................117
8.2.2
Alan s Textual Concrete Syntax Model
........................118
8.2.3
Designer Input to the asm2tcsm Transformation
.................120
Contents
і
xiii
8.3 The Model-to-BNF
Grammar Algorithm.......................
121
8.3.1 Generation
of the BNFset
...................................121
8.3.2 Designer
Input to the
tcsmžbnf
Transformation
..................122
8.4
The Static Semantic Analyzer
................................ 126
8.4.1
Binding
.................................................126
8.4.2
Checking
................................................128
8.5
Summary
................................................ 129
Chapter
9
Semantics: The Meaning of Language
........131
9.1
Semantics Defined
......................................... 131
9.1.1
Understanding Is Personal
...................................131
9.1.2
The Nature of a Semantics Description
.........................133
9.2
Semantics of Software Languages
............................ 134
9.2.1
Ways to Describe Semantics
.................................135
9.2.2
The Best Semantics
......................................138
9.3
Operational Semantics Using Graphs
.......................... 138
9.3.1
Modeling Semantics
.......................................139
9.3.2
Consequences of the
Von
Neumann Architecture
.................140
9.3.3
States in the Abstract Machine
...............................142
9.3.4
The Rules of Execution: Transitions
...........................143
9.3.5
Example: Simple Semantics
.................................144
9.4
Summary
................................................ 148
Chapter
10
Translational Semantics: Code Generation
.. .149
10.1
Code Generation and Language Design
....................... 149
10.1.1
Abstraction Levels
........................................150
10.1.2
Multiple Semantics
.......................................150
10.2
Building a Code Generator
................................. 151
10.2.1
Hard-Coded or Model-Transformation Rules
...................151
10.2.2
Source-Driven or Target-Driven Translation
...................153
xiv
I Contents
10.2.3
Concrete or Abstract Form Target
............................154
10.2.4
A Template Language Targeting Abstract Form
.................157
10.3
Code-Generation Patterns
.................................. 158
10.3.1
Treewalkers,
or the Visitor Pattern
...........................158
10.3.2
CreateOrFind
............................................159
10.3.3
Mappers
................................................160
10.4
Extension Points in the Generated Code
....................... 161
10.5
Other Issues in Code Generation
.............................163
10.5.1
Bidirectionality
..........................................163
10.5.2
Target Platform with or without Framework
....................164
10.5.3
Modularization of the Generation
............................167
10.5.4
Built-in Flexibility
........................................167
10.6
Summary
............................................... 169
Chapter
11
Combining Multiple Languages
.............171
11.1
Multiple Mograms forOne Application
.......................171
11.1.1
Advantages of Multiple Mograms
............................172
11.1.2
Multiple Mograms: One or More Languages
...................172
11.2
Intermogram References
...................................173
11.2.1
Hard and Soft References
..................................173
11.2.2
Passive and Active Languages
..............................174
11.2.3
Information Hiding
.......................................175
11.3
Language Interfaces
...................................... 176
11.3.1
Offered or Required Language Interface
.......................177
11.4
Consequences for Language User Tool Set
....................179
11.4.1
Resolving and Checking References
........
ι
.................179
11.4.2
Handling Changes
........................................180
11.4.3
Code Generation
.........................................181
11.5
Support for Language Evolution
.............................182
Contents
і
xv
11.6
Conclusion..............................................
183
11.7
Summary
............................................... 183
Appendix
A Glossary
...........................................185
Appendix
В
References
.........................................189
Index
........................................................ 197
|
any_adam_object | 1 |
author | Kleppe, Anneke G. |
author_GND | (DE-588)128847557 |
author_facet | Kleppe, Anneke G. |
author_role | aut |
author_sort | Kleppe, Anneke G. |
author_variant | a g k ag agk |
building | Verbundindex |
bvnumber | BV035464782 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.7 |
callnumber-search | QA76.7 |
callnumber-sort | QA 276.7 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 230 |
ctrlnum | (OCoLC)243543539 (DE-599)BVBBV035464782 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
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>01895nam a2200469 c 4500</leader><controlfield tag="001">BV035464782</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20151126 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">090504s2009 xxua||| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2008037160</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0321553454</subfield><subfield code="c">paper back : alk. paper</subfield><subfield code="9">0-321-55345-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780321553454</subfield><subfield code="c">paper back : alk. paper</subfield><subfield code="9">978-0-321-55345-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)243543539</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV035464782</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-861</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-2070s</subfield><subfield code="a">DE-859</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.7</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1</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="100" ind1="1" ind2=" "><subfield code="a">Kleppe, Anneke G.</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)128847557</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Software language engineering</subfield><subfield code="b">creating domain-specific languages using metamodels</subfield><subfield code="c">Anneke Kleppe</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXI, 207 S.</subfield><subfield code="b">Ill.</subfield><subfield code="c">24 cm</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="500" ind1=" " ind2=" "><subfield code="a">Includes bibliographical references (p. 189-196) and index</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programmiersprache</subfield><subfield code="2">swd</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programmierung</subfield><subfield code="2">swd</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Programming languages (Electronic computers)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Software engineering</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer software</subfield><subfield code="x">Development</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmiersprache</subfield><subfield code="0">(DE-588)4047409-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Programmiersprache</subfield><subfield code="0">(DE-588)4047409-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bayreuth</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=017384556&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-017384556</subfield></datafield></record></collection> |
id | DE-604.BV035464782 |
illustrated | Illustrated |
indexdate | 2024-07-09T21:35:52Z |
institution | BVB |
isbn | 0321553454 9780321553454 |
language | English |
lccn | 2008037160 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-017384556 |
oclc_num | 243543539 |
open_access_boolean | |
owner | DE-861 DE-703 DE-11 DE-2070s DE-859 |
owner_facet | DE-861 DE-703 DE-11 DE-2070s DE-859 |
physical | XXXI, 207 S. Ill. 24 cm |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Addison-Wesley |
record_format | marc |
spelling | Kleppe, Anneke G. Verfasser (DE-588)128847557 aut Software language engineering creating domain-specific languages using metamodels Anneke Kleppe Upper Saddle River, NJ [u.a.] Addison-Wesley 2009 XXXI, 207 S. Ill. 24 cm txt rdacontent n rdamedia nc rdacarrier Includes bibliographical references (p. 189-196) and index Programmiersprache swd Programmierung swd Programming languages (Electronic computers) Software engineering Computer software Development Software Engineering (DE-588)4116521-4 gnd rswk-swf Programmiersprache (DE-588)4047409-4 gnd rswk-swf Programmiersprache (DE-588)4047409-4 s Software Engineering (DE-588)4116521-4 s DE-604 Digitalisierung UB Bayreuth application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017384556&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Kleppe, Anneke G. Software language engineering creating domain-specific languages using metamodels Programmiersprache swd Programmierung swd Programming languages (Electronic computers) Software engineering Computer software Development Software Engineering (DE-588)4116521-4 gnd Programmiersprache (DE-588)4047409-4 gnd |
subject_GND | (DE-588)4116521-4 (DE-588)4047409-4 |
title | Software language engineering creating domain-specific languages using metamodels |
title_auth | Software language engineering creating domain-specific languages using metamodels |
title_exact_search | Software language engineering creating domain-specific languages using metamodels |
title_full | Software language engineering creating domain-specific languages using metamodels Anneke Kleppe |
title_fullStr | Software language engineering creating domain-specific languages using metamodels Anneke Kleppe |
title_full_unstemmed | Software language engineering creating domain-specific languages using metamodels Anneke Kleppe |
title_short | Software language engineering |
title_sort | software language engineering creating domain specific languages using metamodels |
title_sub | creating domain-specific languages using metamodels |
topic | Programmiersprache swd Programmierung swd Programming languages (Electronic computers) Software engineering Computer software Development Software Engineering (DE-588)4116521-4 gnd Programmiersprache (DE-588)4047409-4 gnd |
topic_facet | Programmiersprache Programmierung Programming languages (Electronic computers) Software engineering Computer software Development Software Engineering |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017384556&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT kleppeannekeg softwarelanguageengineeringcreatingdomainspecificlanguagesusingmetamodels |