Generative Programming and Active Libraries View Full Text


Ontology type: schema:Chapter     


Chapter Info

DATE

2001-09-28

AUTHORS

Krzysztof Czarnecki , Ulrich Eisenecker , Robert Glück , David Vandevoorde , Todd Veldhuizen

ABSTRACT

We describe generative programming, an approach to generating customized programming components or systems, and active libraries, which are based on this approach. In contrast to conventional libraries, active libraries may contain metaprograms that implement domain-specific code generation, optimizations, debugging, profiling and testing. Several working examples (Blitz++, GMCL, Xroma) are presented to illustrate the potential of active libraries. We discuss relevant implementation technologies. More... »

PAGES

25-39

References to SciGraph publications

  • 1999-08-27. Components and Generative Programming in SOFTWARE ENGINEERING — ESEC/FSE ’99
  • 2002-08-15. Arrays in Blitz++ in COMPUTING IN OBJECT-ORIENTED PARALLEL ENVIRONMENTS
  • 1997-07. An Automatic Program Generator for Multi-Level Specialization in LISP AND SYMBOLIC COMPUTATION
  • 1998. Multi-stage programming: axiomatization and type safety in AUTOMATA, LANGUAGES AND PROGRAMMING
  • 1983. Partial computation of programs in RIMS SYMPOSIA ON SOFTWARE SCIENCE AND ENGINEERING
  • 1996. A uniform approach for compile-time and run-time specialization in PARTIAL EVALUATION
  • Book

    TITLE

    Generic Programming

    ISBN

    978-3-540-41090-4
    978-3-540-39953-7

    Identifiers

    URI

    http://scigraph.springernature.com/pub.10.1007/3-540-39953-4_3

    DOI

    http://dx.doi.org/10.1007/3-540-39953-4_3

    DIMENSIONS

    https://app.dimensions.ai/details/publication/pub.1003874952


    Indexing Status Check whether this publication has been indexed by Scopus and Web Of Science using the SN Indexing Status Tool
    Incoming Citations Browse incoming citations for this publication using opencitations.net

    JSON-LD is the canonical representation for SciGraph data.

    TIP: You can open this SciGraph record using an external JSON-LD service: JSON-LD Playground Google SDTT

    [
      {
        "@context": "https://springernature.github.io/scigraph/jsonld/sgcontext.json", 
        "about": [
          {
            "id": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/0803", 
            "inDefinedTermSet": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/", 
            "name": "Computer Software", 
            "type": "DefinedTerm"
          }, 
          {
            "id": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/08", 
            "inDefinedTermSet": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/", 
            "name": "Information and Computing Sciences", 
            "type": "DefinedTerm"
          }
        ], 
        "author": [
          {
            "affiliation": {
              "alternateName": "Airbus (Germany)", 
              "id": "https://www.grid.ac/institutes/grid.410308.e", 
              "name": [
                "Research and Technology, DaimlerChrysler AG, Ulm"
              ], 
              "type": "Organization"
            }, 
            "familyName": "Czarnecki", 
            "givenName": "Krzysztof", 
            "id": "sg:person.014003574445.45", 
            "sameAs": [
              "https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.014003574445.45"
            ], 
            "type": "Person"
          }, 
          {
            "affiliation": {
              "name": [
                "Fachhochschule Heidelberg, Heidelberg"
              ], 
              "type": "Organization"
            }, 
            "familyName": "Eisenecker", 
            "givenName": "Ulrich", 
            "id": "sg:person.015702473773.69", 
            "sameAs": [
              "https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.015702473773.69"
            ], 
            "type": "Person"
          }, 
          {
            "affiliation": {
              "alternateName": "University of Copenhagen", 
              "id": "https://www.grid.ac/institutes/grid.5254.6", 
              "name": [
                "Dept. of Computer Science, University of Copenhagen, Copenhagen"
              ], 
              "type": "Organization"
            }, 
            "familyName": "Gl\u00fcck", 
            "givenName": "Robert", 
            "id": "sg:person.010754010217.31", 
            "sameAs": [
              "https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.010754010217.31"
            ], 
            "type": "Person"
          }, 
          {
            "affiliation": {
              "name": [
                "Edison Design Group, USA"
              ], 
              "type": "Organization"
            }, 
            "familyName": "Vandevoorde", 
            "givenName": "David", 
            "type": "Person"
          }, 
          {
            "affiliation": {
              "name": [
                "Computer Science Dept., Indiana University, USA"
              ], 
              "type": "Organization"
            }, 
            "familyName": "Veldhuizen", 
            "givenName": "Todd", 
            "id": "sg:person.015240737073.65", 
            "sameAs": [
              "https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.015240737073.65"
            ], 
            "type": "Person"
          }
        ], 
        "citation": [
          {
            "id": "sg:pub.10.1007/3-540-11980-9_13", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1001337766", 
              "https://doi.org/10.1007/3-540-11980-9_13"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "https://doi.org/10.1145/5956.5957", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1016193336"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "https://doi.org/10.1016/0304-3975(90)90147-a", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1019824477"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "sg:pub.10.1007/3-540-49372-7_24", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1024226679", 
              "https://doi.org/10.1007/3-540-49372-7_24"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "sg:pub.10.1007/3-540-49372-7_24", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1024226679", 
              "https://doi.org/10.1007/3-540-49372-7_24"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "sg:pub.10.1023/a:1007763000430", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1038704478", 
              "https://doi.org/10.1023/a:1007763000430"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "https://doi.org/10.1145/281035.281049", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1044259517"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "sg:pub.10.1007/3-540-61580-6_4", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1046041143", 
              "https://doi.org/10.1007/3-540-61580-6_4"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "sg:pub.10.1007/bfb0055113", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1047350294", 
              "https://doi.org/10.1007/bfb0055113"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "sg:pub.10.1007/3-540-48166-4_2", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1048856657", 
              "https://doi.org/10.1007/3-540-48166-4_2"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "sg:pub.10.1007/3-540-48166-4_2", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1048856657", 
              "https://doi.org/10.1007/3-540-48166-4_2"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "https://doi.org/10.1145/242224.242477", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1063162190"
            ], 
            "type": "CreativeWork"
          }, 
          {
            "id": "https://doi.org/10.1109/ase.1997.632838", 
            "sameAs": [
              "https://app.dimensions.ai/details/publication/pub.1094084377"
            ], 
            "type": "CreativeWork"
          }
        ], 
        "datePublished": "2001-09-28", 
        "datePublishedReg": "2001-09-28", 
        "description": "We describe generative programming, an approach to generating customized programming components or systems, and active libraries, which are based on this approach. In contrast to conventional libraries, active libraries may contain metaprograms that implement domain-specific code generation, optimizations, debugging, profiling and testing. Several working examples (Blitz++, GMCL, Xroma) are presented to illustrate the potential of active libraries. We discuss relevant implementation technologies.", 
        "editor": [
          {
            "familyName": "Jazayeri", 
            "givenName": "Mehdi", 
            "type": "Person"
          }, 
          {
            "familyName": "Loos", 
            "givenName": "R\u00fcdiger G. K.", 
            "type": "Person"
          }, 
          {
            "familyName": "Musser", 
            "givenName": "David R.", 
            "type": "Person"
          }
        ], 
        "genre": "chapter", 
        "id": "sg:pub.10.1007/3-540-39953-4_3", 
        "inLanguage": [
          "en"
        ], 
        "isAccessibleForFree": false, 
        "isPartOf": {
          "isbn": [
            "978-3-540-41090-4", 
            "978-3-540-39953-7"
          ], 
          "name": "Generic Programming", 
          "type": "Book"
        }, 
        "name": "Generative Programming and Active Libraries", 
        "pagination": "25-39", 
        "productId": [
          {
            "name": "doi", 
            "type": "PropertyValue", 
            "value": [
              "10.1007/3-540-39953-4_3"
            ]
          }, 
          {
            "name": "readcube_id", 
            "type": "PropertyValue", 
            "value": [
              "1275f69eb82ba7c90bf1bb99538facdfa5810afc6de5620691357c082f8e9d3d"
            ]
          }, 
          {
            "name": "dimensions_id", 
            "type": "PropertyValue", 
            "value": [
              "pub.1003874952"
            ]
          }
        ], 
        "publisher": {
          "location": "Berlin, Heidelberg", 
          "name": "Springer Berlin Heidelberg", 
          "type": "Organisation"
        }, 
        "sameAs": [
          "https://doi.org/10.1007/3-540-39953-4_3", 
          "https://app.dimensions.ai/details/publication/pub.1003874952"
        ], 
        "sdDataset": "chapters", 
        "sdDatePublished": "2019-04-16T05:43", 
        "sdLicense": "https://scigraph.springernature.com/explorer/license/", 
        "sdPublisher": {
          "name": "Springer Nature - SN SciGraph project", 
          "type": "Organization"
        }, 
        "sdSource": "s3://com-uberresearch-data-dimensions-target-20181106-alternative/cleanup/v134/2549eaecd7973599484d7c17b260dba0a4ecb94b/merge/v9/a6c9fde33151104705d4d7ff012ea9563521a3ce/jats-lookup/v90/0000000347_0000000347/records_89793_00000000.jsonl", 
        "type": "Chapter", 
        "url": "https://link.springer.com/10.1007%2F3-540-39953-4_3"
      }
    ]
     

    Download the RDF metadata as:  json-ld nt turtle xml License info

    HOW TO GET THIS DATA PROGRAMMATICALLY:

    JSON-LD is a popular format for linked data which is fully compatible with JSON.

    curl -H 'Accept: application/ld+json' 'https://scigraph.springernature.com/pub.10.1007/3-540-39953-4_3'

    N-Triples is a line-based linked data format ideal for batch operations.

    curl -H 'Accept: application/n-triples' 'https://scigraph.springernature.com/pub.10.1007/3-540-39953-4_3'

    Turtle is a human-readable linked data format.

    curl -H 'Accept: text/turtle' 'https://scigraph.springernature.com/pub.10.1007/3-540-39953-4_3'

    RDF/XML is a standard XML format for linked data.

    curl -H 'Accept: application/rdf+xml' 'https://scigraph.springernature.com/pub.10.1007/3-540-39953-4_3'


     

    This table displays all metadata directly associated to this object as RDF triples.

    150 TRIPLES      23 PREDICATES      37 URIs      19 LITERALS      8 BLANK NODES

    Subject Predicate Object
    1 sg:pub.10.1007/3-540-39953-4_3 schema:about anzsrc-for:08
    2 anzsrc-for:0803
    3 schema:author N45e2a1566e6741159960cdb0ed9cf03b
    4 schema:citation sg:pub.10.1007/3-540-11980-9_13
    5 sg:pub.10.1007/3-540-48166-4_2
    6 sg:pub.10.1007/3-540-49372-7_24
    7 sg:pub.10.1007/3-540-61580-6_4
    8 sg:pub.10.1007/bfb0055113
    9 sg:pub.10.1023/a:1007763000430
    10 https://doi.org/10.1016/0304-3975(90)90147-a
    11 https://doi.org/10.1109/ase.1997.632838
    12 https://doi.org/10.1145/242224.242477
    13 https://doi.org/10.1145/281035.281049
    14 https://doi.org/10.1145/5956.5957
    15 schema:datePublished 2001-09-28
    16 schema:datePublishedReg 2001-09-28
    17 schema:description We describe generative programming, an approach to generating customized programming components or systems, and active libraries, which are based on this approach. In contrast to conventional libraries, active libraries may contain metaprograms that implement domain-specific code generation, optimizations, debugging, profiling and testing. Several working examples (Blitz++, GMCL, Xroma) are presented to illustrate the potential of active libraries. We discuss relevant implementation technologies.
    18 schema:editor Na4cf7b044c1742718f33785ae13f0345
    19 schema:genre chapter
    20 schema:inLanguage en
    21 schema:isAccessibleForFree false
    22 schema:isPartOf N5d06038a3cbd4bc18feb0cb0b60bd817
    23 schema:name Generative Programming and Active Libraries
    24 schema:pagination 25-39
    25 schema:productId N11dc7a1ec7304b8bb9f0b6c9ff0e7e25
    26 N2420771cccb34a4c9b58367ffe373e72
    27 Naf638e36c724453dbabc49fe444b6cc4
    28 schema:publisher N04da139cfc7340c3ad3b02454b40946a
    29 schema:sameAs https://app.dimensions.ai/details/publication/pub.1003874952
    30 https://doi.org/10.1007/3-540-39953-4_3
    31 schema:sdDatePublished 2019-04-16T05:43
    32 schema:sdLicense https://scigraph.springernature.com/explorer/license/
    33 schema:sdPublisher N50fa8286eb3540648ea08f32287d87d7
    34 schema:url https://link.springer.com/10.1007%2F3-540-39953-4_3
    35 sgo:license sg:explorer/license/
    36 sgo:sdDataset chapters
    37 rdf:type schema:Chapter
    38 N02732f038823405888219049ae882a35 rdf:first Nd94194278a4f4f5789ac0bc0676608da
    39 rdf:rest N4793eab91523479993bc138d2bca4c28
    40 N04da139cfc7340c3ad3b02454b40946a schema:location Berlin, Heidelberg
    41 schema:name Springer Berlin Heidelberg
    42 rdf:type schema:Organisation
    43 N106e68c53ecf42edb31de0e0deba0d72 schema:name Fachhochschule Heidelberg, Heidelberg
    44 rdf:type schema:Organization
    45 N11dc7a1ec7304b8bb9f0b6c9ff0e7e25 schema:name doi
    46 schema:value 10.1007/3-540-39953-4_3
    47 rdf:type schema:PropertyValue
    48 N2420771cccb34a4c9b58367ffe373e72 schema:name dimensions_id
    49 schema:value pub.1003874952
    50 rdf:type schema:PropertyValue
    51 N3335758cf62b4e43b7c2e08da9bfb115 rdf:first sg:person.015702473773.69
    52 rdf:rest Na92b17d9599345008c9e7bf05a6693ae
    53 N40b510ea1ba84f8d989a3e27b6a336eb schema:familyName Loos
    54 schema:givenName Rüdiger G. K.
    55 rdf:type schema:Person
    56 N45e2a1566e6741159960cdb0ed9cf03b rdf:first sg:person.014003574445.45
    57 rdf:rest N3335758cf62b4e43b7c2e08da9bfb115
    58 N4793eab91523479993bc138d2bca4c28 rdf:first sg:person.015240737073.65
    59 rdf:rest rdf:nil
    60 N50fa8286eb3540648ea08f32287d87d7 schema:name Springer Nature - SN SciGraph project
    61 rdf:type schema:Organization
    62 N5d06038a3cbd4bc18feb0cb0b60bd817 schema:isbn 978-3-540-39953-7
    63 978-3-540-41090-4
    64 schema:name Generic Programming
    65 rdf:type schema:Book
    66 N712420944f38474893c07d911779aa15 rdf:first N7653ca864f3b4c0486a92496144c3721
    67 rdf:rest rdf:nil
    68 N7653ca864f3b4c0486a92496144c3721 schema:familyName Musser
    69 schema:givenName David R.
    70 rdf:type schema:Person
    71 N86d7033509694a61a639fb8b1c1241cc rdf:first N40b510ea1ba84f8d989a3e27b6a336eb
    72 rdf:rest N712420944f38474893c07d911779aa15
    73 N935727f2854d4ccca4de6d79e5dd4226 schema:name Edison Design Group, USA
    74 rdf:type schema:Organization
    75 Na4cf7b044c1742718f33785ae13f0345 rdf:first Ne21a0f23a98142838bb43f3f0ed84dc4
    76 rdf:rest N86d7033509694a61a639fb8b1c1241cc
    77 Na92b17d9599345008c9e7bf05a6693ae rdf:first sg:person.010754010217.31
    78 rdf:rest N02732f038823405888219049ae882a35
    79 Naf638e36c724453dbabc49fe444b6cc4 schema:name readcube_id
    80 schema:value 1275f69eb82ba7c90bf1bb99538facdfa5810afc6de5620691357c082f8e9d3d
    81 rdf:type schema:PropertyValue
    82 Nd94194278a4f4f5789ac0bc0676608da schema:affiliation N935727f2854d4ccca4de6d79e5dd4226
    83 schema:familyName Vandevoorde
    84 schema:givenName David
    85 rdf:type schema:Person
    86 Ne21a0f23a98142838bb43f3f0ed84dc4 schema:familyName Jazayeri
    87 schema:givenName Mehdi
    88 rdf:type schema:Person
    89 Ne37f0db076f24f7c89476f524864e8ba schema:name Computer Science Dept., Indiana University, USA
    90 rdf:type schema:Organization
    91 anzsrc-for:08 schema:inDefinedTermSet anzsrc-for:
    92 schema:name Information and Computing Sciences
    93 rdf:type schema:DefinedTerm
    94 anzsrc-for:0803 schema:inDefinedTermSet anzsrc-for:
    95 schema:name Computer Software
    96 rdf:type schema:DefinedTerm
    97 sg:person.010754010217.31 schema:affiliation https://www.grid.ac/institutes/grid.5254.6
    98 schema:familyName Glück
    99 schema:givenName Robert
    100 schema:sameAs https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.010754010217.31
    101 rdf:type schema:Person
    102 sg:person.014003574445.45 schema:affiliation https://www.grid.ac/institutes/grid.410308.e
    103 schema:familyName Czarnecki
    104 schema:givenName Krzysztof
    105 schema:sameAs https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.014003574445.45
    106 rdf:type schema:Person
    107 sg:person.015240737073.65 schema:affiliation Ne37f0db076f24f7c89476f524864e8ba
    108 schema:familyName Veldhuizen
    109 schema:givenName Todd
    110 schema:sameAs https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.015240737073.65
    111 rdf:type schema:Person
    112 sg:person.015702473773.69 schema:affiliation N106e68c53ecf42edb31de0e0deba0d72
    113 schema:familyName Eisenecker
    114 schema:givenName Ulrich
    115 schema:sameAs https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.015702473773.69
    116 rdf:type schema:Person
    117 sg:pub.10.1007/3-540-11980-9_13 schema:sameAs https://app.dimensions.ai/details/publication/pub.1001337766
    118 https://doi.org/10.1007/3-540-11980-9_13
    119 rdf:type schema:CreativeWork
    120 sg:pub.10.1007/3-540-48166-4_2 schema:sameAs https://app.dimensions.ai/details/publication/pub.1048856657
    121 https://doi.org/10.1007/3-540-48166-4_2
    122 rdf:type schema:CreativeWork
    123 sg:pub.10.1007/3-540-49372-7_24 schema:sameAs https://app.dimensions.ai/details/publication/pub.1024226679
    124 https://doi.org/10.1007/3-540-49372-7_24
    125 rdf:type schema:CreativeWork
    126 sg:pub.10.1007/3-540-61580-6_4 schema:sameAs https://app.dimensions.ai/details/publication/pub.1046041143
    127 https://doi.org/10.1007/3-540-61580-6_4
    128 rdf:type schema:CreativeWork
    129 sg:pub.10.1007/bfb0055113 schema:sameAs https://app.dimensions.ai/details/publication/pub.1047350294
    130 https://doi.org/10.1007/bfb0055113
    131 rdf:type schema:CreativeWork
    132 sg:pub.10.1023/a:1007763000430 schema:sameAs https://app.dimensions.ai/details/publication/pub.1038704478
    133 https://doi.org/10.1023/a:1007763000430
    134 rdf:type schema:CreativeWork
    135 https://doi.org/10.1016/0304-3975(90)90147-a schema:sameAs https://app.dimensions.ai/details/publication/pub.1019824477
    136 rdf:type schema:CreativeWork
    137 https://doi.org/10.1109/ase.1997.632838 schema:sameAs https://app.dimensions.ai/details/publication/pub.1094084377
    138 rdf:type schema:CreativeWork
    139 https://doi.org/10.1145/242224.242477 schema:sameAs https://app.dimensions.ai/details/publication/pub.1063162190
    140 rdf:type schema:CreativeWork
    141 https://doi.org/10.1145/281035.281049 schema:sameAs https://app.dimensions.ai/details/publication/pub.1044259517
    142 rdf:type schema:CreativeWork
    143 https://doi.org/10.1145/5956.5957 schema:sameAs https://app.dimensions.ai/details/publication/pub.1016193336
    144 rdf:type schema:CreativeWork
    145 https://www.grid.ac/institutes/grid.410308.e schema:alternateName Airbus (Germany)
    146 schema:name Research and Technology, DaimlerChrysler AG, Ulm
    147 rdf:type schema:Organization
    148 https://www.grid.ac/institutes/grid.5254.6 schema:alternateName University of Copenhagen
    149 schema:name Dept. of Computer Science, University of Copenhagen, Copenhagen
    150 rdf:type schema:Organization
     




    Preview window. Press ESC to close (or click here)


    ...