This paper explores the feasibility of implementing pattern matching for the Go programminglanguage. The design of pattern matching is taken from Scala, and reimplemented using Go's constructs and new language ex...
详细信息
When an individual task can be forcefully terminated at any time, cooperating tasks must communicate carefully. For example, if two tasks share an object, and if one task is terminated while it manipulates the object,...
详细信息
When an individual task can be forcefully terminated at any time, cooperating tasks must communicate carefully. For example, if two tasks share an object, and if one task is terminated while it manipulates the object, the object may remain in an inconsistent or frozen state that incapacitates the other task. To support communication among terminable tasks, language run-time systems (and operating systems) provide kill-safe abstractions for inter-task communication. No kill-safe guarantee is available, however, for abstractions that are implemented outside the run-time system. In this paper, we show how a run-time system can support new kill-safe abstractions without requiring modification to the run-time system, and without requiring the run-time system to trust any new code. Our design frees the run-time implementor to provide only a modest set of synchronization primitives in the trusted computing base, while still allowing tasks to communicate using sophisticated abstractions.
We describe Charm++, an object oriented portable parallel programminglanguage based on C++. Its design philosophy, implementation, sample applications and their performance on various parallel machines are described....
详细信息
This demonstration presents the languagedesign of Konoha-Script, a statically typed object-oriented scripting language. KonohaScript provides the very similar scripting experiences compared to dynamic languages. In a...
详细信息
ISBN:
(纸本)9781450309424
This demonstration presents the languagedesign of Konoha-Script, a statically typed object-oriented scripting language. KonohaScript provides the very similar scripting experiences compared to dynamic languages. In addition, it also preserves useful programming supports by static typing, such as automated verification of careless mistakes, improved readability of source code, better opportunity of optimized code generation. This demonstration will show how KonohaScript improved scripting experiences with static typing, using our open source implementation fully written in C.
Software Product Lines (SPLs) are an approach to reuse in-the-large that models a set of closely related software systems in terms of commonalities and variabilities. design patterns are best practices for addressing ...
详细信息
Software Product Lines (SPLs) are an approach to reuse in-the-large that models a set of closely related software systems in terms of commonalities and variabilities. design patterns are best practices for addressing recurring design problems in object-oriented source code. In the practice of implementing SPL, instances of certain design patterns are employed to handle variability, which makes these "variability-aware design patterns" a best practice for SPL design. However, currently there is no dedicated method for proactively developing SPLs using design patterns suitable for realizing variable functionality. In this paper, we present a method to perform generative SPL development with design patterns. We use role models to capture design patterns and their relation to a variability model. We further allow mapping of individual design pattern roles to (parts of) implementation elements to be generated (e.g., classes, methods) and check the conformance of the realization with the specification of the pattern. We provide definitions for the variability-aware versions of the design patterns Observer, Strategy, Template Method and Composite. Furthermore, we support generation of realization's in Java, C++ and UML class diagrams utilizing annotative, compositional and transformational variability realization mechanisms. Hence, we support proactive development of SPLs using design patterns to apply best practices for the realization of variability. We realize our concepts within the Eclipse IDE and demonstrate them within a case study. (C) 2016 Elsevier Ltd. All rights reserved.
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.
A programming model that combines the advantages of the synchronous and asynchronous parallel styles is proposed. Asynchronous threads of control, but shared-memory accesses and other side effects are restricted so as...
详细信息
A programming model that combines the advantages of the synchronous and asynchronous parallel styles is proposed. Asynchronous threads of control, but shared-memory accesses and other side effects are restricted so as to prevent the behavior of the program from depending on any accidents of execution order that can arise from the indeterminacy of the asynchronous process model. These restrictions may be enforced either dynamically (at run time) or statically (at compile time). This paper concentrates on dynamic enforcement, and exhibit an implementation of a parallel dialect of Scheme based on these ideas. A single successful execution of a parallel program in this model constitutes a proof that the program is free of race conditions (for that particular set of input data). Speculations are offered on a design for a programminglanguage using static enforcement.
Reactive programming and event-based programming are two closely related programming styles that are becoming ever more important with the advent of advanced HCI technology and the ever increasing requirement for appl...
详细信息
ISBN:
(纸本)9781450337229
Reactive programming and event-based programming are two closely related programming styles that are becoming ever more important with the advent of advanced HCI technology and the ever increasing requirement for applications to run on the web or on collaborating mobile devices. A number of publications about middleware and languagedesign - so-called reactive and event-based languages and systems - have already seen the light, but the field still raises several questions. For example, the interaction with mainstream language concepts is poorly understood, implementation technology is in its infancy and modularity mechanisms are almost totally lacking. Moreover, large applications are still to be developed and patterns and tools for developing reactive applications is an area that is vastly unexplored. This workshop gathers researchers in reactive and event-based languages and systems. The goal of the workshop is to exchange new technical research results and to define better the field by coming up with taxonomies and overviews of the existing work.
Introduction: A system is parameterized when it has one or more external inputs which partially determine a result. In the lambda calculus parameterization arises in two situations;the value of a function is parameriz...
详细信息
Studies of Aspect-Oriented programming (AOP) usually focus on a language in which a specific aspect extension is integrated with a base language. languages specified in this manner have a fixed, non-extensible AOP fun...
详细信息
Studies of Aspect-Oriented programming (AOP) usually focus on a language in which a specific aspect extension is integrated with a base language. languages specified in this manner have a fixed, non-extensible AOP functionality. This paper argues the need for AOP to support the integration and use of multiple domain-specific aspect extensions together. We study the more general case of integrating a base language with a set of third-party aspect extensions for that language. We present a general mixin-based semantic framework for implementing dynamic aspect extensions in such a way that multiple, independently developed aspect mechanisms can be subject to third-party composition and work collaboratively. Principles governing the design of a collaborative aspect mechanism are aspectual effect exposure and implementation hiding. Copyright 2005 acm.
暂无评论