We present an interdisciplinary effort in the field of global environmental change, related to the understanding of the concept of 'vulnerability'. We have used functional programming to capture the generic as...
详细信息
We present an interdisciplinary effort in the field of global environmental change, related to the understanding of the concept of 'vulnerability'. We have used functional programming to capture the generic aspects of the myriad of definitions of vulnerability, and have used the resulting formalization to learn something new about vulnerability and to write some better software for vulnerability assessment. In the process, we have also found out something about formalization in general, about the advantages and disadvantages of dependent types, and about the role of computing science in the larger intellectual landscape.
Extensions of logic and functional programming are integrated in RELFUN. Its valued clauses comprise Horn clauses (‘true’-valued) and clauses with a distinguished ‘foot’ premise (returning arbitrary values). Both ...
详细信息
Semantic data fuels many different applications, but is still lacking proper integration into programming languages. Untyped access is error-prone. Mapping approaches cannot fully capture the conceptualization of sema...
详细信息
ISBN:
(纸本)9783662544341;9783662544334
Semantic data fuels many different applications, but is still lacking proper integration into programming languages. Untyped access is error-prone. Mapping approaches cannot fully capture the conceptualization of semantic data. In this paper, we present lambda(DL), a typed lambda-calculus with constructs for operating on semantic data. This is achieved by the integration of description logics into the lambda-calculus for both typing and data access or querying. The language is centered around several key design principles, in particular: (1) the usage of semantic conceptualizations as types, (2) subtype inference for these types, and (3) type-checked query access to the data by both ensuring the satisfiability of queries as well as typing query results precisely. The paper motivates the use of a designated type system for semantic data and it provides the theoretic foundation for the integration of description logics as well as the core formal definition of lambda(DL) including a proof of type safety.
In this paper, we present a functional programming model and a dataflow execution model similar to distributed computing frameworks, like Apache Spark and Flink. Our programming and execution model is suitable for any...
详细信息
ISBN:
(纸本)9781728126074
In this paper, we present a functional programming model and a dataflow execution model similar to distributed computing frameworks, like Apache Spark and Flink. Our programming and execution model is suitable for any platform, although its main target are safety-critical embedded systems. Therefore, we emphasize on low overhead, timing analyzability, and potential support for fault tolerance. We implemented our design for the x86 shared memory platform and showed that the performance is comparable to the performance of OpenMP.
This article presents the efforts made to develop a simulator for local energy exchanges by means of an energy marketplace designed as a multi-agent model. The objective of this article is not to focus on EDF's in...
详细信息
ISBN:
(纸本)9781450386449
This article presents the efforts made to develop a simulator for local energy exchanges by means of an energy marketplace designed as a multi-agent model. The objective of this article is not to focus on EDF's industrial use case by itself, but to share elements of experience regarding our use of functional programming (FP) in order to create this specific simulator and the generic layers on which it is built. The main contribution of this paper is the proposal of a three-step methodology (modelling, simulation, and exploitation phases) in which FP played a significant role in the translation of an agent-based system model into elements relevant to a simulation engine through different software layers. The developed approach was then validated on the local energy market case study.
Learning to program is difficult for most children. Most of the interfaces designed to help children experience and understand programming are based on imperative programming. However, early exposure to functional pro...
详细信息
ISBN:
(纸本)9781450351522
Learning to program is difficult for most children. Most of the interfaces designed to help children experience and understand programming are based on imperative programming. However, early exposure to functional programming have been found to have many benefits over imperative programming. We describe a tangible interface, Testudinata, that helps to make a fundamental concept of functional programming - function composition {more approachable to younger learners in elementary and middle school. Using Testudinata, learners can design, implement, and test various compositions of pre-made functions on a tangible user interface (TUI), while observing and comparing results on a graphical user interface (GUI). Through the combination of a TUI and GUI, the learners will be able to gain basic understanding of of function composition in a fun and engaging way.
We discuss the features of functional programming related to formal methods and an emerging paradigm, Cloud Computing. Formal methods are useful in developing highly reliable mission-critical software. However, in lig...
详细信息
ISBN:
(纸本)9789896740092
We discuss the features of functional programming related to formal methods and an emerging paradigm, Cloud Computing. Formal methods are useful in developing highly reliable mission-critical software. However, in light-weight formal methods, we do not rely on very rigorous means, such as theorem proofs. Instead, we use adequately less rigorous means, such as evaluation of pre/post conditions and testing specifications, to increase confidence in our specifications. Millions of tests may be conducted in developing highly reliable mission-critical software in a light-weight formal approach. We consider an approach to leveraging lightweight formal methods by using "Cloud." Given a formal specification language which has the features of functional programming, such as referential transparency, we can expect advantages of parallel processing. One of the basic foundations of VDM specification languages is Set Theory. The pre/post conditions and proof-obligations may be expressed in terms of set expressions. We can evaluate this kind of expression in a data-parallel style by using MapReduce framework for a huge set of test cases over cloud computing environments. Thus, we expect we can greatly reduce the cost of testing specifications in light-weight formal methods.
functional programming (FP) lets users focus on the business logic of their applications by providing them with high-level and composable abstractions. However, both automatic memory management schemes traditionally u...
详细信息
ISBN:
(纸本)9789819722990;9789819723003
functional programming (FP) lets users focus on the business logic of their applications by providing them with high-level and composable abstractions. However, both automatic memory management schemes traditionally used for FP, namely tracing garbage collection and reference counting, may introduce latencies in places that can be hard to predict, which limits the applicability of the FP paradigm. We reevaluate the use of lazy reference counting in single-threaded functional programming with guaranteed constant-time memory management, meaning that allocation and deallocation take only a bounded and predictable amount of time. This approach does not leak memory as long as we use uniform allocation sizes. Uniform allocation sizes were previously considered impractical in the context of imperative programming, but we find it to be surprisingly suitable for FP. Preliminary benchmark results suggest that our approach is practical, as its performance is on par with Koka's existing state-of-the-art implementation of reference counting for FP, sometimes even outperforming it. We also evaluate the effect of different allocation sizes on application performance and suggest ways of allowing large allocation in non-mission-critical parts of the program via Koka's effect system. We believe this potentially opens the door to many new industrial applications of FP, such as its use in real-time embedded software. In fact, the development of a high-level domain-specific language for describing latency-critical quantum physics experiments was one of the original use cases that prompted us to initiate this work.
The construction of reliable concurrent and distributed systems is an extremely difficult endeavour. For complex systems, it requires modular development strategies based on precise interface specifications that allow...
详细信息
ISBN:
(纸本)9781605585680
The construction of reliable concurrent and distributed systems is an extremely difficult endeavour. For complex systems, it requires modular development strategies based on precise interface specifications that allow the various modules to interact properly. In this extended abstract we are concerned with message passing systems where partners engage in long and complex interactions, as opposed to, say, remote procedure calls composed of a pair of simple interactions. Session types allow for the description of continuous series of interactions between several partners. In the simpler case, they detail protocols between two partners [Honda et al. 1998];recently the original setting was widened to encompass multiple partners [Honda et al. 2008]. In this paper we deal with binary sessions only. Through a running example we visit session types and a functional concurrent language equipped with buffered semantics. Apart from the traditional "well typed programs do not go wrong", the semantics proposed allows for two extra interesting results: the ability to predict the required buffer size, and that of anticipating an output with respect to an input operation.
Based on the state of our ongoing research into Language-Driven Software Development (LDSD) and Language-Oriented programming (LOP) we argue that the yet relatively unknown paradigm of concatenative programming is val...
详细信息
ISBN:
(纸本)9789896740092
Based on the state of our ongoing research into Language-Driven Software Development (LDSD) and Language-Oriented programming (LOP) we argue that the yet relatively unknown paradigm of concatenative programming is valuable for fundamental software engineering research and might prove to be a suitable foundation for future programming. To be sound, we formally introduce Concat, our research prototype of a purely functional concatenative language. The simplicity of Concat is contrasted by its expressiveness and a richness of inspiring approaches. Concatenative languages contribute a fresh and different sight on functional programming, which might help tackle challenges in LDSD/LOP from a new viewpoint.
暂无评论