Development of a dynamic and friendly program visualization for learning materials of functional programming

开发动态且友好的程序可视化,用于函数式编程的学习材料

基本信息

  • 批准号:
    22K12320
  • 负责人:
  • 金额:
    $ 2.75万
  • 依托单位:
  • 依托单位国家:
    日本
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
  • 财政年份:
    2022
  • 资助国家:
    日本
  • 起止时间:
    2022-04-01 至 2025-03-31
  • 项目状态:
    未结题

项目摘要

関数型プログラミングは、コンピュータで行う処理を、副作用のない「数学的な意味での関数」によって記述するものである。これは、記述の簡潔性など大きな利点がある反面、抽象度が高く習得が難しいとされており、実際の開発ではあまり採用されてこなかった。しかし、近年では従来型のプログラミング言語にも、関数型の構文や機能が取り入れられるようになり、その知識は開発者にとって必要なものとなりつつある。そこで、本研究では、関数型プログラミングの初学者にとって特に理解が難しいとされるプログラムの動的な振る舞いを可視化する手法を開発し、評価することを目的とする。初年度では、まず関数型プログラミングの学習支援において、可視化すべき機能や概念について必要な要件を整理した。そして、それをもとに関数型プログラミングの中でも代表的な機能である高階関数と遅延評価に関する可視化を提案した。高階関数とは、別の関数をその引数や返り値として扱う関数のことであり、遅延評価とは、プログラム内で値が必要になったときに初めて式や関数が実際に評価される評価方法である。試作したソフトウェアは、filter、map、foldlの3つの高階関数の処理の流れをアニメーションを用いて動的に可視化し、対応するHaskellのソースコードを生成する。本可視化では、関数をノードではなく水平な線分として表現し、関数の評価はノード間の静的な線の接続ではなく、引数が線分をまたいで上から下に移動するアニメーションで表現する。遅延評価では、評価処理が行われた引数だけが移動する。本研究の途中成果は、国際会議RISP NCSP 2023において、「Dynamic Visualization of Basic High-Order Functions for Learning Functional Programming」というタイトルで発表した。
功能编程描述了使用没有副作用的“数学意义上的函数”所执行的计算机执行的过程。这具有巨大的优势,例如写作的简单性,但是它被认为是高度抽象和难以学习的,并且在实际发展中并没有被太多。但是,近年来,功能性语法和功能也已引入传统的编程语言中,对于开发人员来说,这种知识已成为必要。因此,本研究旨在开发和评估方法以可视化程序的动态行为,这对于功能编程中的初学者来说尤其困难。在第一年,我们首先组织了应在支持功能编程学习时可视化的功能和概念的必要要求。基于此,我们提出了高阶函数和延迟评估的可视化,这是功能编程之间的典型函数。高阶函数是将另一个函数视为其参数或返回值的函数,并且延迟评估是一种评估方法,在该方法中,仅当需要在程序中需要一个值时,才能实际评估表达式或函数。原型软件动态地可视化三个高阶功能的处理流量:使用动画使用过滤,映射和折叠,并生成相应的Haskell源代码。在此可视化中,函数表示为水平线而不是节点,并使用动画来评估函数,其中参数从顶部到底部的上下移动,而不是节点之间的静态线。在延迟评估中,只有评估的论点才会移动。这项研究的结果是在RISP NCSP 2023国际会议上介绍的,标题为“学习功能编程的基本高级功能的动态可视化”。

项目成果

期刊论文数量(0)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
Dynamic Visualization of Basic High-Order Functions for Learning Functional Programming
用于学习函数式编程的基本高阶函数的动态可视化
  • DOI:
  • 发表时间:
    2023
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Hidekazu Shiozawa;Takumi Shimura;Koki Asakawa;Takafumi Tanaka
  • 通讯作者:
    Takafumi Tanaka
{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

数据更新时间:{{ journalArticles.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ monograph.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ sciAawards.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ conferencePapers.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ patent.updateTime }}

塩澤 秀和其他文献

塩澤 秀和的其他文献

{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

{{ truncateString('塩澤 秀和', 18)}}的其他基金

Development and Evaluation of Educational Systems with Augmented Reality and Sensors for Physics (Circuits / Dynamics) Experiments
用于物理(电路/动力学)实验的增强现实和传感器教育系统的开发和评估
  • 批准号:
    18K02907
  • 财政年份:
    2018
  • 资助金额:
    $ 2.75万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
ダイナミックに機能を割り当てるタンジブルインタフェース
动态分配功能的有形界面
  • 批准号:
    17700122
  • 财政年份:
    2005
  • 资助金额:
    $ 2.75万
  • 项目类别:
    Grant-in-Aid for Young Scientists (B)
インタラクティブな情報視覚化技術による協調作業支援インタフェースの研究
基于交互式信息可视化技术的协同工作支持界面研究
  • 批准号:
    13780341
  • 财政年份:
    2001
  • 资助金额:
    $ 2.75万
  • 项目类别:
    Grant-in-Aid for Young Scientists (B)

相似海外基金

Session type embedding for practical concurrent/distributed programming
用于实际并发/分布式编程的会话类型嵌入
  • 批准号:
    21K11827
  • 财政年份:
    2021
  • 资助金额:
    $ 2.75万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
ブロックプログラミング環境に基づく学習支援環境の構築とその有効性
基于块编程环境的学习支持环境的构建及其效果
  • 批准号:
    20K12107
  • 财政年份:
    2020
  • 资助金额:
    $ 2.75万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
Modelling of Control Capture and Its Applications
控制捕获建模及其应用
  • 批准号:
    20K11743
  • 财政年份:
    2020
  • 资助金额:
    $ 2.75万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
安全・高信頼ソフトウェアシステムのための高階・型付き・並行プログラミング言語理論
用于安全可靠软件系统的高阶、类型和并发编程语言理论
  • 批准号:
    20H04161
  • 财政年份:
    2020
  • 资助金额:
    $ 2.75万
  • 项目类别:
    Grant-in-Aid for Scientific Research (B)
Combining Unidirectional and Bidirectional Programming
结合单向和双向编程
  • 批准号:
    19K11892
  • 财政年份:
    2019
  • 资助金额:
    $ 2.75万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了