Proceedings of the 1st annual workshop on Functional programming concepts in domain-specific languages, FPCDSL@ICFP 2013, Boston, Massachusetts, USA, September 22, 2013

It is our pleasure to welcome you to the 1st annual workshop on Functional Programming Concepts in Domain Specific Languages. This workshop intends to bring together developers and users of DSLs who are exploring, or are interested in exploring, the features of functional programming languages that can be utilized in their application domains, as well as how the inherent properties of their application domains affect how such features can be realized in practice. Further, we want to create an avenue for an immediate dialog on the new research and practical applications of rapidly evolving endeavors that may not currently be possible through the main conference venues. It is our hope that the success of this workshop will lead to an annual event or to a program track at ICFP or another conference. We have an exciting program where our DSL application areas span design automation, quantum computer programming, synthetic biology, and network security. Further, we will explore the advantages and, maybe, disadvantages of applying functional programming methods for DSLs. First, we begin with a keynote address by Arvind, who will share his experience developing a DSL and his success in getting the Electronic Design Automation (EDA) community to adopt it. While having our papers accepted for publication is quite a success, getting a community to purchase our endeavors is quite a feat as well. Our 6 papers span a number of application domains and design challenges. Our first paper focuses on the design and composition of behavioral constructs for living organisms and the challenges to proving correctness of these programs. Our second paper focuses on the security of distributed systems by designing a language by which to express and communicate individual confidentiality and integrity policies. Our third paper focuses on programming constructs that match the quantum computation model (which differs significantly from the classical computation model) and a type system that enforces the physical constraints of quantum mechanics. Our fourth paper addresses the challenges of the compile-time and run-time integration of embedding a DSL in a functional programming language to take advantage of a more robust language system. Our fifth paper addresses the challenge of computing the resource requirements of quantum circuits by designing a language and a framework that transforms a circuit description into a resource calculation in different dimensions of interest. Our sixth paper focuses on an automatic, typed-based analysis that infers and checks the sensitivity annotations in functional programs to realize such end objectives as differential privacy. Finally, we will conclude our workshop with a facilitated discussion. Here, we will explore such questions as: What are the merits and tradeoffs of using a functional programming style over imperative language style for DSLs? What are the common techniques and differences in applying DSLs across various application domains? How can we design DSLs to facilitate adoption by an application domain community? We hope that you will find this program interesting and thought-provoking and that our workshop will provide you with a valuable opportunity to share ideas with other researchers and practitioners from institutions around the world.