Software language engineering creating domain-specific languages using metamodels

Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: Kleppe, Anneke G. (VerfasserIn)
Format: Buch
Sprache:English
Veröffentlicht: Upper Saddle River, NJ [u.a.] Addison-Wesley 2009
Schlagworte:
Online-Zugang:Inhaltsverzeichnis
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!

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 
943 1 |a oai:aleph.bib-bvb.de:BVB01-017384556 

Datensatz im Suchindex

_version_ 1819743820125831168
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>01896nam 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&amp;doc_library=BVB01&amp;local_base=BVB01&amp;doc_number=017384556&amp;sequence=000002&amp;line_number=0001&amp;func_code=DB_RECORDS&amp;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-017384556</subfield></datafield></record></collection>
id DE-604.BV035464782
illustrated Illustrated
indexdate 2024-12-23T21:34:28Z
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
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