课题基金 / 基金详情

Low Level Functional Reactive Programming

Low Level Functional Reactive Programming
低级函数反应式编程
批准号:
2436228
负责人:
金额:
$0.0万
依托单位:
依托单位国家:
英国
项目类别:
Studentship
财政年份:
2020
资助国家:
英国
项目状态:
已结题
起止时间:
2020 至 --

项目摘要

项目成果

相似基金

相关文献

中文摘要
翻译
点击翻译按钮获取中文摘要
英文摘要
In low level languages such as C, we rely heavily on the abstraction of memory - values are placed in a contiguous array of memory cells that can be referenced to and treated as data of any type. While this allows us to utilise a number of tools to improve program efficiency and easily interact with some hardware, it is a source of difficult to find bugs that can greatly reduce the reliability of such programs.Much research has been done to mitigate these bugs. This work usually falls into one of two categories: adding safety to C (such as via linters), and adding C's features to safer languages. In order to do the latter, you need specific programming language constructs not normally found in our common high level languages. Languages entirely designed for this purpose, like Cyclone and Rust, have seen success in combining the constructs needed for interacting with memory with safety features such as region-based memory management and ownership.Little has been done however to integrate this work with pure functional programming. This paradigm has seen improved uptake recently due to its naturally verifiable nature, but has difficulty interacting with low level programs due to the difference in paradigm. The main problem here is the fact that interacting with low level programs is time dependent - you have to access a memory cell during a certain part of execution in order to be given the value that you want - which in a functional paradigm relies on writing essentially imperative code.This brings us to our approach. This time dependency can be avoided by considering our memory cell as a stream of values, that is, a sequence of values over time rather than single values accessed during execution. With this in mind, we can take our memory cell streams, perform a series of computations on them and write those out somewhere. As long as we have the stream, we have access to all the values in turn so sequencing is less of an issue.There is a sizeable body of work about Functional Reactive Programming (FRP), a functional programming subparadigm designed to work with these streams. This paradigm allows us to take streams such as the ones above and combine them in order to construct a full signal graph.By combining the existing work on FRP and the limited work on low level data use in functional programming, we propose an elegant alternative to current interfaces between functional languages and low level data. This aims to allow reactive applications that would previously require low level languages (such as in robotics) to be written in higher level languages more safely. This could also be used in other contexts, such as declaratively declaring shaders.
期刊论文(2)
专著(0)
科研奖励(0)
会议论文
Graded monads and type-level programming for dependence analysis
用于依赖性分析的分级单子和类型级编程
DOI: 10.1145/3471874.3472981
发表时间: 2021
期刊:
影响因子: --
作者: [Keating F]
通讯作者: Keating F
This Is Driving Me Loopy: Efficient Loops in Arrowized Functional Reactive Programs
这让我抓狂:箭头化功能反应程序中的高效循环
DOI: 10.1145/3609026.3609726
发表时间: 2023
期刊:
影响因子: --
作者: [Keating F]
通讯作者: Keating F
国内基金
海外基金
粒子level set方法的改进与空间自适应波浪模型并行化研究
  • 批准号:
    52171245
  • 项目类别:
    面上项目
  • 资助金额:
    58万元
  • 批准年份:
    2021
  • 负责人:
    黄筱云
  • 依托单位:
基于Level Set方法的三维爆炸与冲击仿真软件开发及其应用
  • 批准号:
    11502121
  • 项目类别:
    青年科学基金项目
  • 资助金额:
    25.0万元
  • 批准年份:
    2015
  • 负责人:
    张莉
  • 依托单位:
层级稀疏化的Mid-Level特征空间下高分辨率遥感影像检索方法研究
基于新LEVEL SET方法的双标量小火焰模型的研究
  • 批准号:
    51306013
  • 项目类别:
    青年科学基金项目
  • 资助金额:
    25.0万元
  • 批准年份:
    2013
  • 负责人:
    刘英杰
  • 依托单位: