The lambda calculus forms without any question *the* theoretical backbone of functional programming languages. For the design and implementation of the lazy functional language Concurrent Clean we have used a related ...
详细信息
ISBN:
(纸本)3540631720
The lambda calculus forms without any question *the* theoretical backbone of functional programming languages. For the design and implementation of the lazy functional language Concurrent Clean we have used a related computational model: Term Graph Rewriting Systems (TGRS's). This paper wraps up our main conclusions after 10 years of experience with graph rewriting semantics for functional programming languages. TGRS's are not a direct extension of the lambda calculus, so one sometimes has to re-establish known theoretical results. But TGRS's are that much closer to the world of functional programming that its use has beep proven to be very worthwhile. In TGRS's functions have names, there are constants, pattern matching and one can choose to either share expressions or copy them. Graph reduction very accurately models the essential behaviour of most implementations of functional languages and therefore it forms a good base for reasoning about reduction properties as well as the time and space consumption of functional applications. With uniqueness typing important information can be derived for efficient implementation and for purely functional interfacing with imperative programs.
As modern system-on-chip devices are getting more complex, so does their software. Luckily, the observational capabilities of such devices has also increased by providing interfaces for non-intrusive hardware tracing....
详细信息
ISBN:
(纸本)9781450390019
As modern system-on-chip devices are getting more complex, so does their software. Luckily, the observational capabilities of such devices has also increased by providing interfaces for non-intrusive hardware tracing. With these tracing facilities, it is possible to record the device's state over time. The acquired trace data is very helpful for debugging and system validation. However, it is tedious to analyze trace data by hand as it consists of numerous trace messages without high-level information of the system. Due to this hardware-related information, we need better tools and descriptions for its analysis. Therefore, we propose Crumbs, a formalism that can be used to specify trace data and algorithms for trace data analysis. Moreover, it can easily be translated to a functional programming language, providing an easy execution of the formally designed algorithm. The paper is accompanied by three different use cases designed with Crumbs and implemented in Haskell.
There is currently no way to model the high-level structural design of a functional system. Given the strong links between functional programming and mathematics, it is hypothesised that the language of mathematics ca...
详细信息
ISBN:
(纸本)9783030839789;9783030839772
There is currently no way to model the high-level structural design of a functional system. Given the strong links between functional programming and mathematics, it is hypothesised that the language of mathematics can provide insight into how a functional system might be modelled. The approach is successful and both philosophy and the language of mathematics are used to identify the necessary modelling concepts and briefly outline some modelling notation alongside a small case study.
Reversible computing is a computational paradigm in which computations are deterministic in both the forward and backward direction, so that programs have well-defined forward and backward semantics. We investigate th...
详细信息
Reversible computing is a computational paradigm in which computations are deterministic in both the forward and backward direction, so that programs have well-defined forward and backward semantics. We investigate the formal semantics of the reversible functional programming language Rfun. For this purpose we introduce join inverse rig categories, the natural marriage of join inverse categories and rig categories, which we show can be used to model the language Rfun, under reasonable assumptions. These categories turn out to be a particularly natural fit for reversible computing as a whole, as they encompass models for other reversible programming languages, notably Theseus and reversible flowcharts. This suggests that join inverse rig categories really are the categorical models of reversible computing.
Embedded systems represent a rapidly growing branch of information technology, characterised by the need for increased dependability, timeliness and efficiency. While functional languages allow developers to produce h...
详细信息
ISBN:
(纸本)9780889866416
Embedded systems represent a rapidly growing branch of information technology, characterised by the need for increased dependability, timeliness and efficiency. While functional languages allow developers to produce highly reliable and maintainable code, they ignore the aspect of time, and their efficiency is inferior to those of low-level languages currently dominating this field. Hume is a novel hybrid language that combines the functional paradigm with ideas from hardware design. It focuses on producing time- and space-constrained code while keeping the benefits of programming on a high level. This paper describes the development of a lift control simulation in Hume running on low-performance embedded hardware platforms, including the process of porting the code to these platforms.
Semantics and Ontological framework defines standards for concepts presented through computational models. This framework can also provide standards for the concept representation at User Interface level. A user model...
详细信息
ISBN:
(纸本)9781424452446
Semantics and Ontological framework defines standards for concepts presented through computational models. This framework can also provide standards for the concept representation at User Interface level. A user model as the base of user interface can be built using formal ontologies. Language supporting Higher Order Functions can be used to build Graphical User Interfaces by mapping the user defined model with typed graphical user interface controls. This paper discusses a strategy to present the standard concepts of computational model to user interface through ontological user model.
This paper presents the design and implementation of a sequential simulator for the parallel functional language BSML based on the parallel computation model Bulk Synchronous Parallelism (BSP). This simulator is imple...
详细信息
ISBN:
(纸本)9781538693803
This paper presents the design and implementation of a sequential simulator for the parallel functional language BSML based on the parallel computation model Bulk Synchronous Parallelism (BSP). This simulator is implemented in sequential, runs in any browser, and provides a graphical representation of the parallel executions. Due to the pure functional nature of BSML, the results obtained by this simulator are the same than the results that could be obtained by executing the program in parallel.
functional programming represents a modern tool for applying and implementing software. The state of the art in functional programming reports an increasing number of methodologies in this paradigm. However, extensive...
详细信息
functional programming represents a modern tool for applying and implementing software. The state of the art in functional programming reports an increasing number of methodologies in this paradigm. However, extensive interdisciplinary applications are missing. Our goal is to increase student interest in pursuing further studies in functional programming with the use of an application: the ray tracer. We conducted a teaching experience, with positive results and student feedback, described here in this paper.
DISCO is a pure, strict, statically typed functional programming language designed to be used in the setting of a discrete mathematics course. The goals of the language are to introduce students to functional programm...
详细信息
DISCO is a pure, strict, statically typed functional programming language designed to be used in the setting of a discrete mathematics course. The goals of the language are to introduce students to functional programming concepts early, and to enhance their learning of mathematics by providing a computational platform for them to play with. It features mathematically-inspired notation, propertybased testing, equirecursive algebraic types, subtyping, built-in list, bag, and finite set types, a REPL, and student-focused documentation. DISCO is implemented in Haskell, with source code available on GitHub,1 and interactive web-based REPL available through replit.
Domain-specific languages are a popular application area for functional programming;and conversely, functional programming is a popular implementation vehicle for domain-specific languages-at least, for embedded ones....
详细信息
暂无评论