<?xml version="1.0" encoding="UTF-8"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2026-07-20T06:35:54Z</responseDate>
  <request identifier="7277" metadataPrefix="oai_dc" verb="GetRecord">https://drops.dagstuhl.de/oai</request>
  <GetRecord>
    <record>
      <header>
        <identifier>oai:drops-oai.dagstuhl.de:7277</identifier>
        <datestamp>2024-03-12T11:58:40Z</datestamp>
        <setSpec>ddc:004</setSpec>
        <setSpec>open_access</setSpec>
      </header>
      <metadata>
        <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
          <dc:title>Modelling Homogeneous Generative Meta-Programming</dc:title>
          <dc:creator>Berger, Martin</dc:creator>
          <dc:creator>Tratt, Laurence</dc:creator>
          <dc:creator>Urban, Christian</dc:creator>
          <dc:subject>Formal Methods</dc:subject>
          <dc:subject>Meta-Programming</dc:subject>
          <dc:subject>Operational Semantics</dc:subject>
          <dc:subject>Types</dc:subject>
          <dc:subject>Quasi-Quotes</dc:subject>
          <dc:subject>Abstract Syntax Trees</dc:subject>
          <dc:description>Homogeneous generative meta-programming (HGMP) enables the generation of program fragments at compile-time or run-time. We present a foundational calculus which can model both compile-time and run-time evaluated HGMP, allowing us to model, for the first time, languages such as Template Haskell. The calculus is designed such that it can be gradually enhanced with the features needed to model many of the&#13;
advanced features of real languages. We demonstrate this by showing how a simple, staged type system as found in Template Haskell can be added to the calculus.</dc:description>
          <dc:publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</dc:publisher>
          <dc:contributor>Martin Berger and Laurence Tratt and Christian Urban</dc:contributor>
          <dc:date>2017</dc:date>
          <dc:relation>Is Part Of LIPIcs, Volume 74, 31st European Conference on Object-Oriented Programming (ECOOP 2017)</dc:relation>
          <dc:type>InProceedings</dc:type>
          <dc:type>Text</dc:type>
          <dc:type>doc-type:ResearchArticle</dc:type>
          <dc:type>publishedVersion</dc:type>
          <dc:format>application/pdf</dc:format>
          <dc:identifier>doi:10.4230/LIPIcs.ECOOP.2017.5</dc:identifier>
          <dc:identifier>urn:nbn:de:0030-drops-72775</dc:identifier>
          <dc:identifier>https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2017.5</dc:identifier>
          <dc:language>eng</dc:language>
          <dc:rights>https://creativecommons.org/licenses/by/3.0/legalcode</dc:rights>
        </oai_dc:dc>
      </metadata>
    </record>
  </GetRecord>
</OAI-PMH>
