. Abstract interpreters are complex pieces of software: even if the abstract interpretation theory and companion algorithms are well understood, their implementations are subject to bugs, that might question the sound...
详细信息
ISBN:
(数字)9783030888060
ISBN:
(纸本)9783030888060;9783030888053
. Abstract interpreters are complex pieces of software: even if the abstract interpretation theory and companion algorithms are well understood, their implementations are subject to bugs, that might question the soundness of their computations. While some formally verified abstract interpreters have been written in the past, writing and understanding them requires expertise in the use of proof assistants, and requires a non-trivial amount of interactive proofs. This paper presents a formally verified abstract interpreter fully programmed and proved correct in the F* verified programming environment. Thanks to F* refinement types and SMT prover capabilities we demonstrate a substantial saving in proof effort compared to previous works based on interactive proof assistants. Almost all the code of our implementation, proofs included, written in a functional style, are presented directly in the paper.
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.
Web application security breaches frequently involve exploiting structured query language (SQL) injection vulnerabilities introduced by weaknesses in the coding style. Software engineers commonly lack the expertise an...
详细信息
Web application security breaches frequently involve exploiting structured query language (SQL) injection vulnerabilities introduced by weaknesses in the coding style. Software engineers commonly lack the expertise and experience in implementing the functional programming principles of immutability, using pure functions, and reducing side effects to prevent vulnerabilities in their code. This study explores the changes web application developers can implement following the functional programming principles of immutability, using pure functions, and reducing side effects to reduce the presence of SQL injection vulnerabilities in web applications. The solution presented in this study, design strategies, supports the nascent design theory that applying the functional programming principles of immutability, using pure functions, and reducing side effects can reduce the presence of SQL injection vulnerabilities in web applications. When applied to an intentionally vulnerable web application, the design strategies developed through this study demonstrated effectiveness in reducing SQL injection vulnerabilities from web applications. This study contributes to the practice of software development by giving web application developers a new way to secure their web Applications.
The variety of data is one of the important issues in the era of Big Data. The data are naturally organized in different formats and models, including structured data, semi-structured data, and unstructured data. Prio...
详细信息
The involvement of functional programming is allowed to be determined in this research article. Therefore, the impact of language programming is an important factor that has an impactful role within functional program...
详细信息
The involvement of functional programming is allowed to be determined in this research article. Therefore, the impact of language programming is an important factor that has an impactful role within functional programming. Different objectives take place within this research article. Moreover, the proper methodology to understand the data collection process has to be highlighted in this portion. Impact of functional programming, therefore, different ways to understand the role of language programming has to be highlighted in this research article. Additionally, different challenges that have to be highlighted due to machine learning and language process have to be addressed in this research article. The problem statement is the important part that is allowed to be addressed within this research portion.
The cloud parallel programming system CPPS being under development at the A.P. Ershov Institute of Informatics Systems SB RAS is based on the Cloud Sisal language which carries on the traditions of previous versions o...
详细信息
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...
详细信息
The article is devoted to the results of the analysis of modern trends in the field of functional programming, considered as a methodology for solving problems of organizing parallel computing. The paradigm analysis o...
详细信息
暂无评论