FPCDSL '13Pub Date : 2013-09-22DOI: 10.1145/2505351.2505356
J. Beal, A. Adler
{"title":"Functional synthesis of genetic regulatory networks","authors":"J. Beal, A. Adler","doi":"10.1145/2505351.2505356","DOIUrl":"https://doi.org/10.1145/2505351.2505356","url":null,"abstract":"As synthetic biologists improve their ability to engineer complex computations in living organisms, there is increasing interest in using programming languages to assist in the design and composition of biological constructs. In this paper, we argue that there is a natural fit between functional programming and genetic regulatory networks, exploring this connection in depth through the example of BioProto, a piggyback DSL on the Proto general-purpose spatial language. In particular, we present the first formalization of BioProto syntax and semantics, and compare these to the formal syntax and semantics of the parent language Proto. Finally, we examine the pragmatics of implementing BioProto and challenges to proving correctness of BioProto programs.","PeriodicalId":157375,"journal":{"name":"FPCDSL '13","volume":"43 6","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114126141","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
FPCDSL '13Pub Date : 2013-09-22DOI: 10.1145/2505351.2505354
D. Hassan, A. Sabry
{"title":"Encoding secure information flow with restricted delegation and revocation in Haskell","authors":"D. Hassan, A. Sabry","doi":"10.1145/2505351.2505354","DOIUrl":"https://doi.org/10.1145/2505351.2505354","url":null,"abstract":"Distributed applications typically involve many components, each with unique security and privacy requirements. Such applications require fine-grained access control mechanisms that allow dynamic delegation and revocation of access rights. Embedding such domain-specific requirements in a functional language like Haskell puts all the expressiveness of the host language at the disposal of the domain user. Using a custom monad, we design and implement an embedded Haskell library that embraces the decentralized label model, allowing mutually-distrusting principals to express individual confidentiality and integrity policies. Our language includes first-class references, higher-order functions, declassification and endorsement of policies, and user authority in the presence of global unrestricted delegation. Then, building on previous work by the first author, we extend the language to enable fine-grained dynamic delegation and revocation of access rights. The resulting language generalizes, extends, and simplifies various libraries for expressing and reasoning about information flow.","PeriodicalId":157375,"journal":{"name":"FPCDSL '13","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131958942","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
FPCDSL '13Pub Date : 2013-09-22DOI: 10.1145/2505351.2505353
Loris D'antoni, Marco Gaboardi, E. J. G. Arias, Andreas Haeberlen, B. Pierce
{"title":"Sensitivity analysis using type-based constraints","authors":"Loris D'antoni, Marco Gaboardi, E. J. G. Arias, Andreas Haeberlen, B. Pierce","doi":"10.1145/2505351.2505353","DOIUrl":"https://doi.org/10.1145/2505351.2505353","url":null,"abstract":"Function sensitivity --- how much the result of a function can change with respect to linear changes in the input --- is a key concept in many research areas. For instance, in differential privacy, one of the most common mechanisms for turning a (possibly privacy-leaking) query into a differentially private one involves establishing a boundon its sensitivity.\u0000 One approach to sensitivity analysis is to use a type-based approach, extending the Hindley-Milner type system with functional types capturing statically the sensitivity of a functional expression. This approach --- based on affine logic --- has been used in Fuzz, a language for differentially private queries.\u0000 We describe an automatic typed-based analysis that infers and checks the sensitivity annotations for simple functional programs. We have implemented a prototype in Fuzz's compiler. The first component of the analysis extends the typechecker to generate nonlinear constraints over the positive real numbers extended with infinity, which are then checked by the Z3 SMT solver; a solution for them will provide an upper bound on the sensitivity annotations and ensure the correctness of the annotations. We also present a simple sensitivity minimization procedure and demonstrate the effectiveness of the approach by analyzing several examples.","PeriodicalId":157375,"journal":{"name":"FPCDSL '13","volume":"19 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116395025","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
FPCDSL '13Pub Date : 2013-09-22DOI: 10.1145/2505351.2505357
A. Lapets, M. Silva, M. Thome, A. Adler, J. Beal, M. Rötteler
{"title":"QuaFL: a typed DSL for quantum programming","authors":"A. Lapets, M. Silva, M. Thome, A. Adler, J. Beal, M. Rötteler","doi":"10.1145/2505351.2505357","DOIUrl":"https://doi.org/10.1145/2505351.2505357","url":null,"abstract":"Quantum computers represent a novel kind of programmable hardware with properties and restrictions that are distinct from those of classical computers. We investigate how some existing abstractions and programming language features developed within the programming languages community can be adapted to expose the unique capabilities of quantum computers to programmers while at the same time allowing them to manage the new and unfamiliar constraints of programming a quantum device.\u0000 We introduce QuaFL, a statically typed domain-specific programming language for writing high-level definitions of algorithms that can be compiled into logical quantum circuits. The primary purpose of QuaFL is to support programmers in defining high-level yet physically realizable quantum algorithms and in helping them make informed decisions about implementation trade-offs. QuaFL allows programmers to use high-level data structures including integers, fixed point reals, and arrays within quantum algorithms, and to explicitly define superpositions and unitary transformations on data. The QuaFL type system allows programmers to distinguish between classical and quantum portions of a program, uses a variant of linear types and an orthogonality checking algorithm to ensure the quantum portions are physically realizable, and provides type size annotations that can facilitate automated computation of the quantities of quantum resources that will be necessary to run the compiled program (i.e., a logical quantum circuit).","PeriodicalId":157375,"journal":{"name":"FPCDSL '13","volume":"84 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115781460","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
FPCDSL '13Pub Date : 2013-09-22DOI: 10.1145/2505351.2508149
Arvind
{"title":"Bluespec and Haskell","authors":"Arvind","doi":"10.1145/2505351.2508149","DOIUrl":"https://doi.org/10.1145/2505351.2508149","url":null,"abstract":"Bluespec is a commercial hardware design language based on the abstraction of Guarded Atomic Actions (GAAs). GAAs provide a level of modularity and composition that the standard FSM-based representation does not. At it's heart Bluespec can be looked at as a relatively simple DSL (GAAs and modules) with a fully func-tioning Haskell-like meta programming layer on top. Bluespec allows the designer to use different compositional approaches which often results in flexible, robust and efficient designs.\u0000 We have found that Hardware experts generally have substantially better intuition about which constructions provide better circuit level properties and are easily able to express relatively efficient designs, though, at least initially, in a rather verbose manner. In contrast, functional programmers are almost immediately able to leverage the advanced language features to get a concise and flexible design representation but have difficulty making the generated hardware efficient. As both sets of users gain experience they get better at the other aspect of design and climb towards achieving both microarchitectural and representational excellence simultaneously which appears unmatched by other higher-level general purpose hardware languages.\u0000 We will present a historical development of Bluespec, and muse on topics such as C-based versus FP-based syntax, DSLs versus Embedded DSLs etc.","PeriodicalId":157375,"journal":{"name":"FPCDSL '13","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122389492","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
FPCDSL '13Pub Date : 2013-09-22DOI: 10.1145/2505351.2505355
Abhishek Kulkarni, Ryan Newton
{"title":"Embrace, defend, extend: a methodology for embedding preexisting DSLs","authors":"Abhishek Kulkarni, Ryan Newton","doi":"10.1145/2505351.2505355","DOIUrl":"https://doi.org/10.1145/2505351.2505355","url":null,"abstract":"Domain-specific languages offer programming abstractions that enable higher efficiency, productivity and portability specific to a given application domain. Domain-specific languages such as StreamIt have valuable auto-parallelizing code-generators, but they require learning a new language and tool-chain and may not integrate easily with a larger application. One solution is to transform such standalone DSLs into embedded languages within a general-purpose host language. This prospect comes with its own challenges, namely the compile-time and runtime integration of the two languages. In this paper, we address these challenges, presenting our solutions in the context of a prototype embedding of StreamIt in Haskell. By demonstrating this methodology, we hope to encourage more reuse of DSL technology, and fewer short-lived reimplementations of existing techniques.","PeriodicalId":157375,"journal":{"name":"FPCDSL '13","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131731280","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
FPCDSL '13Pub Date : 2013-09-22DOI: 10.1145/2505351.2505358
A. Lapets, M. Rötteler
{"title":"Abstract resource cost derivation for logical quantum circuit descriptions","authors":"A. Lapets, M. Rötteler","doi":"10.1145/2505351.2505358","DOIUrl":"https://doi.org/10.1145/2505351.2505358","url":null,"abstract":"Resources that are necessary to operate a quantum computer (such as qubits) have significant costs. Thus, there is interest in finding ways to determine these costs for both existing and novel quantum algorithms. Information about these costs (and how they might vary under multiple parameters and circumstances) can then be used to navigate trade-offs and make optimizations within an algorithm implementation. We present a domain-specific language called QuIGL for describing logical quantum circuits; the QuIGL language has specialized features supporting the explicit annotation and automatic derivation of descriptions of the resource costs associated with each logical quantum circuit description (as well as any of its component procedures). We also present a formal framework for defining abstract transformations from QuIGL circuit descriptions into labelled, parameterized quantity expressions that can be used to compute exact counts or estimates of the cost of the circuit along chosen cost dimensions and for given input sizes. We demonstrate how this framework can be instantiated for calculating costs along specific dimensions (such as the number of qubits or the T-depth of a logical quantum circuit).","PeriodicalId":157375,"journal":{"name":"FPCDSL '13","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123216758","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}