The architecture of a computer determines what programs are allowed to do and what the microarchitecture should implement. As security and safety become critical needs for an emergent class of highly-connected devices...
详细信息
ISBN:
(数字)9781665490054
ISBN:
(纸本)9781665490054
The architecture of a computer determines what programs are allowed to do and what the microarchitecture should implement. As security and safety become critical needs for an emergent class of highly-connected devices, the way computations are performed becomes a central concern, as it can directly allow or hamper the development of malicious software. In this work we investigate functional programming as an alternative foundation for computer architectures, starting from a formal calculus of structured combinators up to its implications on software and hardware design, resulting in the open-source, purely-functional fun instruction-set architecture.
Web application programming interfaces (APIs) security breaches frequently involve exploiting injection vulnerabilities introduced by weaknesses in the coding style, and software engineers commonly lack the expertise ...
详细信息
Web application programming interfaces (APIs) security breaches frequently involve exploiting injection vulnerabilities introduced by weaknesses in the coding style, and software engineers commonly lack the expertise and experience in the implementation of the functional programming principles of immutability, the use of pure functions, and the reduction of side effects to prevent vulnerabilities in their code. This Design Science Research (DSR) study explores the changes web application developers can implement following the functional programming principles of immutability, the use of pure functions, and the reduction of side effects to reduce the presence of injection vulnerabilities in web application APIs. The research design and method for this study followed the General Design Cycle (GDC) and established DSR patterns to develop a solution to a real-world problem and make a knowledge contribution in the form of adaptation by making novel use of existing knowledge in a new way. The artifact resulting from this study, design principles, supports the nascent design theory that applying the functional programming principles of pure functions, immutability, and removing side effects can remove injection vulnerabilities from web application APIs. When applied to the sample, an intentionally vulnerable web application, the design principles demonstrated effectiveness through established DSR evaluation methods to remove injection vulnerabilities from web application APIs. This study contributes to the practice of software development by giving web application developers a new way to secure their APIs.
functional programming languages are becoming more popular and learning them is becoming increasingly important. However, learning programming languages is a hard task for novice learners because they need to study sy...
详细信息
Because of its many desirable properties, such as its ability to control effects and thus potentially disastrous race conditions, functional programming offers a viable approach to programming modern multicore compute...
详细信息
Because of its many desirable properties, such as its ability to control effects and thus potentially disastrous race conditions, functional programming offers a viable approach to programming modern multicore computers. Over the past decade several parallel functional languages, typically based on dialects of ML and Haskell, have been developed. These languages, however, have traditionally underperformed procedural languages (such as C and Java). The primary reason for this is their hunger for memory, which only grows with parallelism, causing traditional memory management techniques to buckle under increased demand for memory. Recent work opened a new angle of attack on this problem by identifying a memory property of determinacy-race-free parallel programs, called disentanglement, which limits the knowledge of concurrent computations about each other's memory allocations. The work has showed some promise in delivering good time scalability. In this paper, we present provably space-efficient automatic memory management techniques for determinacy-race-free functional parallel programs, allowing both pure and imperative programs where memory may be destructively updated. We prove that for a program with sequential live memory of R*, any P-processor garbage-collected parallel run requires at most O(R* . P) memory. We also prove a work bound of O(W + R* . P) for P-processor executions, accounting also for the cost of garbage collection. To achieve these results, we integrate thread scheduling with memory management. The idea is to coordinate memory allocation and garbage collection with thread scheduling decisions so that each processor can allocate memory without synchronization and independently collect a portion of memory by consulting a collection policy, which we formulate. The collection policy is fully distributed and does not require communicating with other processors. We show that the approach is practical by implementing it as an extension to the MPL compil
Courses in computer science (CS) often assess student programming assignments manually, with the intent of providing in-depth feedback to each student regarding correctness, style, efficiency, and other quality attrib...
详细信息
ISBN:
(数字)9798400705793
ISBN:
(纸本)9798350364897
Courses in computer science (CS) often assess student programming assignments manually, with the intent of providing in-depth feedback to each student regarding correctness, style, efficiency, and other quality attributes. As class sizes increase, however, it is hard to provide detailed feedback consistently, especially when multiple assessors are required to handle a larger number of assignment submissions. Large language models (LLMs), such as ChatGPT, offer a promising alternative to help automate this process in a consistent, scalable, and minimally-biased *** paper explores ChatGPT-4’s scalablility and accuracy in assessing programming assignments based on predefined rubrics in the context of a case study we conducted in an upper-level undergraduate and graduate CS course at Vanderbilt University. In this case study, we employed a method that compared assessments generated by ChatGPT-4 against human graders to measure the accuracy, precision, and recall associated with identifying programming mistakes. Our results show that when ChatGPT-4 is used properly (e.g., with appropriate prompt engineering and feature selection) it can improve objectivity and grading efficiency, thereby acting as a complementary tool to human graders for advanced computer science graduate and undergraduate *** CONCEPTS• Software and its engineering → Software maintenance tools; • Applied computing → Computer-assisted instruction.
Language model-based code completion models have quickly grown in use, helping thousands of developers write code in many different programming languages. However, research on code completion models typically focuses ...
详细信息
We introduce a card game for teaching basic functional programming concepts - specifically maps and filters. The game uses a standard deck of playing cards and the underlying computational concepts can be introduced t...
详细信息
ISBN:
(纸本)9781450383974
We introduce a card game for teaching basic functional programming concepts - specifically maps and filters. The game uses a standard deck of playing cards and the underlying computational concepts can be introduced to students within a one-hour lecture period. We tested this game (informally) with CS-101 students and found it to be an engaging activity. We describe the complete set of instructions for the game and outline future directions of development.
La programmation monadique pose une difficulté énorme pour un grand nombre de programmeurs. À la lumière de la théorie des catégories, on présente une nouvelle vision de l’utilisati...
详细信息
The relationship between Riesz modules and functional programming languages lies in their shared mathematical structures and use of category theory. This paper discusses the utilization of Riesz spaces and modules in ...
详细信息
ISBN:
(数字)9798331541941
ISBN:
(纸本)9798331541958
The relationship between Riesz modules and functional programming languages lies in their shared mathematical structures and use of category theory. This paper discusses the utilization of Riesz spaces and modules in functional programming, including the frameworks proposed by Lucas and Mio for modeling Riesz spaces and the exploration of probabilistic logic by Furber, Mardare, and Mio. Foundational work by De Jonge and Van Rooij establishes the understanding of Riesz spaces and Banach lattices, while Kozen examines formal methods in probabilistic programs. Riesz spaces are valuable for representing complex mathematical structures in functional programming, and Riesz modules provide an ideal semantic category for facilitating mathematical proofs and logical reasoning. The paper focuses on the properties of finite coproduct in the category of Riesz modules and provides proofs of their existence and uniqueness.
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.
暂无评论