the proceedings contain 6 papers. the topics discussed include: Bluespec and Haskell;functional synthesis of genetic regulatory networks;encoding secure information flow with restricted delegation and revocation in Ha...
ISBN:
(纸本)9781450323802
the proceedings contain 6 papers. the topics discussed include: Bluespec and Haskell;functional synthesis of genetic regulatory networks;encoding secure information flow with restricted delegation and revocation in Haskell;QuaFL: a typed DSL for quantum programming;embrace, defend, extend: a methodology for embedding preexisting DSLs: case in point, StreamHs: StreamIT in Haskell;abstract resource cost derivation for logical quantum circuit descriptions;and sensitivity analysis using type-based constraints.
Implementing first-class continuations can pose a challenge if the target machine makes no provisions for accessing and re-installing the run-time stack. In this paper, we present a novel translation that overcomes th...
详细信息
ISBN:
(纸本)9781595930644
Implementing first-class continuations can pose a challenge if the target machine makes no provisions for accessing and re-installing the run-time stack. In this paper, we present a novel translation that overcomes this problem. In the first half of the paper, we introduce a theoretical model that shows how to eliminate the capture and the use of first-class continuations in the presence of a generalized stack inspection mechanism. the second half of the paper explains how to translate this model into practice in two different contexts. First, we reformulate the servlet interaction language in the PLT Web server, which heavily relies on first-class continuations. Using our technique, servlet programs can be run directly under the control of non-cooperative web servers such as Apache. Second, we show how to use our new technique to copy and reconstitute the stack on *** using exception handlers. this establishes that Scheme's first-class continuations can exist on non-cooperative virtual machines.
the proceedings contain 35 papers. the topics discussed include: the significance of the Cranfield tests on index languages;complete formal model for information retrieval systems;automatic text structuring and retrie...
ISBN:
(纸本)0897914481
the proceedings contain 35 papers. the topics discussed include: the significance of the Cranfield tests on index languages;complete formal model for information retrieval systems;automatic text structuring and retrieval – experiments in automatic encyclopedia searching;the use of phrases and structured queries in information retrieval;combining model-oriented and description-oriented approaches for probabilistic indexing;some inconsistencies and misnomers in probabilistic information retrieval;generative models for bitmap sets with compression applications;a hybrid bilevel image decode algorithm for group 4 FAX;and retrieval algorithm effectiveness in a wide area network information filter.
Embedded domain-specific languages (EDSLs), inheriting a general-purpose language's features as well as look-and-feel, have traditionally been second-class or rather non-citizens in terms of host-language design. ...
详细信息
ISBN:
(纸本)9781450336871
Embedded domain-specific languages (EDSLs), inheriting a general-purpose language's features as well as look-and-feel, have traditionally been second-class or rather non-citizens in terms of host-language design. this makes sense when one regards them to be on the same level as traditional, non-EDSL library interfaces. However, this equivalence only applies to the simplest of EDSLs. In this paper we illustrate why this is detrimental when moving on to EDSLs that employ staging, i.e. program reification, by example of various issues that affect authors and users alike. We believe that if EDSLs are to be considered a reliable, language-like interface abstraction, they require exceptional attention and design scrutiny. Instead of unenforceable conventions, we advocate the acceptance of EDSLs as proper, i.e. almost first-class, citizens while retaining most advantages of pure embeddings. As a small step towards this goal, we present a pragmatic framework prototype for Java. It is based on annotations that explicate and document membership to explicit EDSL entities. In a nutshell, our framework identifies (annotated) method calls and field accesses as EDSL terms and dynamically constructs an abstract-syntax representation, which is eventually passed to a semantics-defining back end implemented by the EDSL author.
A limited form of dependent types, called Generalized Algebraic Data Types (GADTs), has recently been added to the list of Haskell extensions supported by the Glasgow Haskell Compiler. Despite not being full-fledged d...
详细信息
ISBN:
(纸本)9781595930644
A limited form of dependent types, called Generalized Algebraic Data Types (GADTs), has recently been added to the list of Haskell extensions supported by the Glasgow Haskell Compiler. Despite not being full-fledged dependent types, GADTs still offer considerably enlarged scope for enforcing important code and data invariants statically. Moreover, GADTs offer the tantalizing possibility of writing more efficient programs since capturing invariants statically through the type system sometimes obviates entire layers of dynamic tests and associated data markup. this paper is a case study on the applications of GADTs in the context of Yampa, a domain-specific language for functional Reactive programming in the form of a self-optimizing, arrow-based Haskell combinator library. the paper has two aims. Firstly, to explore what kind of optimizations GADTs make possible in this context. Much of that should also be relevant for other domain-specific embedded language implementations, in particular arrow-based ones. Secondly, as the actual performance impact of the GADT-based optimizations is not obvious, to quantify this impact, both on tailored micro benchmarks, to establish the effectiveness of individual optimizations, and on two fairly large, realistic applications, to gauge the overall impact. the performance gains for the micro benchmarks are substantial. this implies that the Yampa API could be simplified as a number of "pre-composed" primitives that were there mainly for performance reasons are no longer needed. As to the applications, a worthwhile performance gain was obtained in one case whereas the performance was more or less unchanged in the other.
this paper reports the implementation of Emfrp-REPL, an interactive interpreter (REPL) of a functional reactive programming language for resource-constrained embedded systems. Its goal is to accelerate the prototyping...
详细信息
ISBN:
(纸本)9798400707551
this paper reports the implementation of Emfrp-REPL, an interactive interpreter (REPL) of a functional reactive programming language for resource-constrained embedded systems. Its goal is to accelerate the prototyping and development of microcontroller-based embedded systems. the interpreter runs on small-scale embedded devices based on 32-bit microcontrollers, such as ESP32 with 520KiB size data RAM. the evaluation shows that the memory usage of Emfrp-REPL is comparable to MicroPython, and the range of its latency is narrower than MicroPython, according to microbenchmarks.
the proceedings contain 5 papers. the topics discussed include: correct-by-construction pretty-printing;new equations for neutral terms: a sound and complete decision procedure, formalized;a multi-valued language with...
ISBN:
(纸本)9781450323840
the proceedings contain 5 papers. the topics discussed include: correct-by-construction pretty-printing;new equations for neutral terms: a sound and complete decision procedure, formalized;a multi-valued language with a dependent type system;relational algebraic ornaments;and leveling up dependent types: generic programming over a predicative hierarchy of universes.
We employ the narrowing-based execution mechanism of the functional logic programming language Curry in order to automatically generate a system of test cases for glass-box testing of Curry programs. the test cases fo...
详细信息
Behavioral contracts are embraced by software engineers because they document module interfaces, detect interface violations, and help identify faulty modules (packages, classes, functions, etc). this paper extends pr...
详细信息
ISBN:
(纸本)9781450308656
Behavioral contracts are embraced by software engineers because they document module interfaces, detect interface violations, and help identify faulty modules (packages, classes, functions, etc). this paper extends prior higher-order contract systems to also express and enforce temporal properties, which are common in software systems with imperative state, but which are mostly left implicit or are at best informally specified. the paper presents both a programmatic contract API as well as a temporal contract language, and reports on experience and performance results from implementing these contracts in Racket. Our development formalizes module behavior as a trace of events such as function calls and returns. Our contract system provides both non-interference (where contracts cannot influence correct executions) and also a notion of completeness (where contracts can enforce any decidable, prefix-closed predicate *** traces).
Type abstraction is a key feature of ML-like languages for writing large programs. Marshalling is necessary for writing distributed programs, exchanging values via network byte-streams or persistent stores. In this pa...
详细信息
ISBN:
(纸本)9781581137569
Type abstraction is a key feature of ML-like languages for writing large programs. Marshalling is necessary for writing distributed programs, exchanging values via network byte-streams or persistent stores. In this paper we combine the two, developing compile-time and run-time semantics for marshalling, that guarantee abstraction-safety between separately-built programs. We obtain a namespace for abstract types that is global, i.e. meaningful between programs, by hashing module declarations. We examine the scenarios in which values of abstract types are communicated from one program to another, and ensure, by constructing hashes appropriately, that the dynamic and static notions of type equality mirror each other. We use singleton kinds to express abstraction in the static semantics;abstraction is tracked in the dynamic semantics by coloured brackets. these allow us to prove preservation, erasure, and coincidence results. We argue that our proposal is a good basis for extensions to existing ML-like languages, pragmatically straightforward for language users and for implementors.
暂无评论