The proceedings contain 8 papers. The topics discussed include: erlang as an enabling technology for resilient general-purpose applications on edge IoT networks;towards online profiling of erlang systems;intro to web ...
ISBN:
(纸本)9781450368100
The proceedings contain 8 papers. The topics discussed include: erlang as an enabling technology for resilient general-purpose applications on edge IoT networks;towards online profiling of erlang systems;intro to web prolog for erlangers;tools supporting green computing in erlang;runtime type safety for erlang/OTP behaviors;scaling erlang distribution: going beyond the fully connected mesh;gaining trust by tracing security protocols;and Lux: an expect-like test tool written in erlang: synchronized testing of multiple sessions.
The proceedings contain 37 papers. The topics discussed include: farms, pipes, streams and reforestation: reasoning about structured parallel processes using types and hylomorphisms;dag-calculus: a calculus for parall...
ISBN:
(纸本)9781450342193
The proceedings contain 37 papers. The topics discussed include: farms, pipes, streams and reforestation: reasoning about structured parallel processes using types and hylomorphisms;dag-calculus: a calculus for parallel computation;a lambda-calculus foundation for universal probabilistic programming;deriving a probability density calculator (functional pearl);sequent calculus as a compiler intermediate language;refinement through restraint: bringing down the cost of verification;fully abstract compilation via universal embedding;a type theory for incremental computational complexity with control flow changes;compact bit encoding schemes for simply-typed lambda-terms;and experience report: growing and shrinking polygons for random testing of computational geometry algorithms.
In this paper, we introduce languages as first-class citizens as a sub-paradigm of language-oriented programming. In this approach, language definitions are in the context of a general purpose programming language wit...
详细信息
ISBN:
(纸本)9781450360296
In this paper, we introduce languages as first-class citizens as a sub-paradigm of language-oriented programming. In this approach, language definitions are in the context of a general purpose programming language with the same status as any other expression. In particular, language definitions are elevated to be run-time values, that can be assigned to variables, passed to functions, returned by functions, and inserted into lists, to name a few possibilities. This approach offers flexible features in the run-time creation and modification of languages, and may promote new idioms in language-oriented programming. As a proof of concept, we have designed and implemented LANG-N-PLAY, a functional language with languages as first-class citizens. We present the features of LANG-N-PLAY with an example, and show that they naturally enable dynamic programming scenarios.
The proceedings contain 2 papers. The topics discussed include: HELIX: a case study of a formal verification of high performance program generation;and modular acceleration: tricky cases of functional high-performance...
ISBN:
(纸本)9781450358132
The proceedings contain 2 papers. The topics discussed include: HELIX: a case study of a formal verification of high performance program generation;and modular acceleration: tricky cases of functional high-performance computing.
Processing data at different rates is generally a hard problem in reactive programming. Buffering problems, lags, and concurrency issues often occur. Many of these problems are clock errors, where data at different ra...
详细信息
ISBN:
(纸本)9781450358354
Processing data at different rates is generally a hard problem in reactive programming. Buffering problems, lags, and concurrency issues often occur. Many of these problems are clock errors, where data at different rates is combined incorrectly. Techniques to avoid clock errors, such as type-level clocks and deterministic scheduling, exist in the field of synchronous programming, but are not implemented in general-purpose languages like Haskell. Rhine is a clock-safe library for synchronous and asynchronous functional Reactive programming (FRP). It separates the aspects of clocking, scheduling and resampling from each other, and ensures clock-safety at the type level. Concurrent communication is encapsulated safely. Diverse reactive subsystems can be combined in a coherent, declarative data-flow framework, while correct interoperability of data at different rates is guaranteed by type-level clocks. This provides a general-purpose framework that simplifies multi-rate FRP systems and can be used for game development, media applications, GUIs and embedded systems, through a flexible API with many reusable components.
The proceedings contain 7 papers. The topics discussed include: authenticated modular maps in Haskell;typing, representing, and abstracting control: functional pearl;implementing resource-aware safe assembly for kerne...
ISBN:
(纸本)9781450358255
The proceedings contain 7 papers. The topics discussed include: authenticated modular maps in Haskell;typing, representing, and abstracting control: functional pearl;implementing resource-aware safe assembly for kernel probes as a dependently-typed DSL;extensible type-directed editing;first class dynamic effect handlers: or, polymorphic heaps with dynamic effect handlers;sums of products for mutually recursive datatypes: the appropriationist's view on generic programming;and from algebra to abstract machine: a verified generic construction.
The proceedings contain 7 papers. The topics discussed include: iDeA: an immersive debugger for actors;understanding formal specifications through good examples;modeling distributed erlang within a single node;automat...
ISBN:
(纸本)9781450358248
The proceedings contain 7 papers. The topics discussed include: iDeA: an immersive debugger for actors;understanding formal specifications through good examples;modeling distributed erlang within a single node;automatic detection of core erlang message passing errors;typing the wild in erlang;modeling erlang processes as petri nets;and towards secure erlang systems.
Pattern matching is a pervasive and useful feature in functionalprogramming. There have been many attempts to bring similar notions to Object-Oriented programming (OOP) in the past. However, a key challenge in OOP is...
详细信息
ISBN:
(纸本)9781450360456
Pattern matching is a pervasive and useful feature in functionalprogramming. There have been many attempts to bring similar notions to Object-Oriented programming (OOP) in the past. However, a key challenge in OOP is how pattern matching can coexist with the open nature of OOP data structures, while at the same time guaranteeing other desirable properties for pattern matching. This paper discusses several desirable properties for pattern matching in an OOP context and shows how existing approaches are lacking some of these properties. We argue that the traditional semantics of pattern matching, which is based on the order of patterns and adopted by many approaches, is in conflict with the openness of data structures. Therefore we suggest that a more restricted, top-level pattern matching model, where the order of patterns is irrelevant, is worthwhile considering in an OOP context. To compensate for the absence of ordered patterns we propose a complementary mechanism for case analysis with defaults, which can be used when nested and/or multiple case analysis is needed. To illustrate our points we develop CASTOR: a meta-programming library in Scala that adopts both ideas. CASTOR generates code that uses type-safe extensible visitors, and largely removes boilerplate code typically associated with visitors. We illustrate the applicability of our approach with a case study modularizing the interpreters in the famous book "Types and programming Languages".
The proceedings contain 9 papers. The topics discussed include: a domain-specific language for microservices;parser combinators for context-free path querying;garnishing parsec with parsley;path dependent types with p...
ISBN:
(纸本)9781450358361
The proceedings contain 9 papers. The topics discussed include: a domain-specific language for microservices;parser combinators for context-free path querying;garnishing parsec with parsley;path dependent types with path-equality;kDOT: scaling DOT with mutation and constructors;truly abstract interfaces for algebraic data types: the extractor typing problem;interflow: interprocedural flow-sensitive type inference and method duplication;and extending scala with records: design, implementation, and evaluation.
Modern compilers provide code optimizations before and during run-time, thus moving required domain knowledge about the compilation process away from the developer and speeding up resulting software. These optimizatio...
详细信息
暂无评论