Lambda calculus is a formal system built around the concepts of function definition and function application. It is a minimalistic Turing-computable system that has a great influence on the design of functional progra...
详细信息
ISBN:
(纸本)9781479930579
Lambda calculus is a formal system built around the concepts of function definition and function application. It is a minimalistic Turing-computable system that has a great influence on the design of functional programming. This paper is a tutorial on the untyped lambda calculus and its use as an idealised programming language.
While the use of XML is pervading all areas of IT, security challenges arise when XML files are used to transfer security data such as security policies. To tackle this issue, we have developed a lightweight secure XM...
详细信息
ISBN:
(纸本)9781479919345
While the use of XML is pervading all areas of IT, security challenges arise when XML files are used to transfer security data such as security policies. To tackle this issue, we have developed a lightweight secure XML validator and have chosen to base the development on the strongly typed functional language OCaml. The initial development took place as part of the LaFoSec Study which aimed at investigating the impact of using functional languages for security. We then turned the validator into an industrial application, which was successfully evaluated at EAL4+ level by independent assessors. In this paper, we explain the challenges involved in processing XML data in a critical context, we describe our choices in designing a secure XML validator, and we detail how we used features of functional languages to enforce security requirements.
The objective of this paper is to suggest a fresh approach to introductory programming curricula in the Indian school and engineering college context. The approach allows the student to connect high-school (up to 10+2...
详细信息
ISBN:
(纸本)9780769547596;9781467321730
The objective of this paper is to suggest a fresh approach to introductory programming curricula in the Indian school and engineering college context. The approach allows the student to connect high-school (up to 10+2) mathematics to the fundamentals of computing, algorithms and problem solving. The bridge connecting algebra and computing is functional programming, a paradigm confined over forty years to the computer science research community but now gaining popularity in industry as well as undergraduate education in some schools across the world. We show, using several examples, why and how functional programming is easier to master than traditional imperative programming. We conclude with the results of our attempts so far at introducing functional programming to students in IT colleges in India.
The paper describes equivalent transformations of structures of the Sisal 3.1 programming language (based on Sisal 90). These transformations are aimed to decompose the complex language structures into more simple one...
详细信息
ISBN:
(纸本)9783540739395
The paper describes equivalent transformations of structures of the Sisal 3.1 programming language (based on Sisal 90). These transformations are aimed to decompose the complex language structures into more simple ones that can be directly expressed by the internal representation IR1 (based on the IF1 language). Currently some description of similar transformations can be found in few works about Sisal 90 in the form of examples. A front-end compiler from Sisal 3.1 into IR1 performs these transformations, so they can help to understand better its translation strategy. The paper also briefly describes Sisal 3.1 and IR1.
Worldwide, computer science departments have experienced a dramatic increase in the number of student enrolments. Moreover, the ongoing COVID-19 pandemic requires institutions to radically replace the traditional way ...
详细信息
Worldwide, computer science departments have experienced a dramatic increase in the number of student enrolments. Moreover, the ongoing COVID-19 pandemic requires institutions to radically replace the traditional way of on-site teaching, moving interaction from physical to virtual space. We report on our strategies and experience tackling these issues as part of a Haskell-based functional programming and verification course, accommodating over 2000 students in the course of two semesters. Among other things, we fostered engagement with weekly programming competitions and creative homework projects, workshops with industry partners, and collaborative pair-programming tutorials. To offer such an extensive programme to hundreds of students, we automated feedback for programming as well as inductive proof exercises. We explain and share our tools and exercises so that they can be reused by other educators.
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.
暂无评论