<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//TaxonX//DTD Taxonomic Treatment Publishing DTD v0 20100105//EN" "../../nlm/tax-treatment-NS0.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tp="http://www.plazi.org/taxpub" article-type="research-article" dtd-version="3.0" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">109</journal-id>
      <journal-id journal-id-type="index">urn:lsid:arphahub.com:pub:3dc5f44e-8666-58db-bc76-a455210e8891</journal-id>
      <journal-title-group>
        <journal-title xml:lang="en">JUCS - Journal of Universal Computer Science</journal-title>
        <abbrev-journal-title xml:lang="en">jucs</abbrev-journal-title>
      </journal-title-group>
      <issn pub-type="ppub">0948-695X</issn>
      <issn pub-type="epub">0948-6968</issn>
      <publisher>
        <publisher-name>Journal of Universal Computer Science</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.3217/jucs-009-08-0795</article-id>
      <article-id pub-id-type="publisher-id">28083</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Research Article</subject>
        </subj-group>
        <subj-group subj-group-type="scientific_subject">
          <subject>B.5.2 - Design Aids</subject>
          <subject>B.6.3 - Design Aids</subject>
          <subject>D.3.2 - Language Classifications</subject>
          <subject>I.6.2 - Simulation Languages</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Implementation of an Embedded Hardware Description Language Using Haskell</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Alves</surname>
            <given-names>Nélio Muniz Mendes</given-names>
          </name>
          <email xlink:type="simple">nelio@comp.ufu.br</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Schneider</surname>
            <given-names>Sérgio de Mello</given-names>
          </name>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
      </contrib-group>
      <aff id="A1">
        <label>1</label>
        <addr-line content-type="verbatim">Universidade Federal de Uberlandia, , Brazil</addr-line>
        <institution>Universidade Federal de Uberlandia</institution>
        <country>Brazil</country>
      </aff>
      <author-notes>
        <fn fn-type="corresp">
          <p>Corresponding author: Nélio Muniz Mendes Alves (<email xlink:type="simple">nelio@comp.ufu.br</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2003</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>28</day>
        <month>08</month>
        <year>2003</year>
      </pub-date>
      <volume>9</volume>
      <issue>8</issue>
      <fpage>795</fpage>
      <lpage>812</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/E10E0522-8606-5360-9C2E-26070513D7B1">E10E0522-8606-5360-9C2E-26070513D7B1</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/6996378">6996378</uri>
      <permissions>
        <copyright-statement>Nélio Muniz Mendes Alves, Sérgio de Mello Schneider</copyright-statement>
        <license license-type="creative-commons-attribution" xlink:href="" xlink:type="simple">
          <license-p>This article is freely available under the J.UCS Open Content License.</license-p>
        </license>
      </permissions>
      <abstract>
        <label>Abstract</label>
        <p>This paper describes an ongoing implementation of an embedded hardware description language (HDL) using Haskell as a host language. Traditionally, functional HDL s are made using lazy lists to model signals, so circuits are functions from lists of input values to lists of output values. We use another known approach for embedded languages, in which circuits are data structures rather than functions. This style of implementation permits one to inspect the structure of the circuit, allowing one to perform different interpretations for the same description. The approach we present can also be applied to other domain-specific embedded languages. We provide an elegant implementation of memories and a set of new signal types.</p>
      </abstract>
    </article-meta>
  </front>
</article>
