LambdaLab: an interactive λ-calculus reducer for learning

Daniel Sainati, Adrian Sampson
{"title":"LambdaLab: an interactive λ-calculus reducer for learning","authors":"Daniel Sainati, Adrian Sampson","doi":"10.1145/3310089.3313180","DOIUrl":null,"url":null,"abstract":"In advanced programming languages curricula, the λ-calculus often serves as the foundation for teaching the formal concepts of language syntax and semantics. LambdaLab is an interactive tool that helps students practice λ-calculus reduction and build intuition for its behavior. To motivate the tool, we survey student answers to λ-calculus assignments in three previous classes and sort mistakes into six categories. LambdaLab addresses many of these problems by replicating the experience of working through examples with an instructor. It uses visualizations to convey AST structure and reducible expressions, interactive reduction to support self-guided practice, configurable reduction strategies, and support for encodings via a simple macro system. To mimic informal, in-class treatment of macros, we develop a new semantics that describes when to expand and contract them. We use case studies to describe how LambdaLab can fit into student workflows and address real mistakes.","PeriodicalId":102158,"journal":{"name":"Proceedings of the 2018 ACM SIGPLAN Workshop on SPLASH-E","volume":"17 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2018 ACM SIGPLAN Workshop on SPLASH-E","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3310089.3313180","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

Abstract

In advanced programming languages curricula, the λ-calculus often serves as the foundation for teaching the formal concepts of language syntax and semantics. LambdaLab is an interactive tool that helps students practice λ-calculus reduction and build intuition for its behavior. To motivate the tool, we survey student answers to λ-calculus assignments in three previous classes and sort mistakes into six categories. LambdaLab addresses many of these problems by replicating the experience of working through examples with an instructor. It uses visualizations to convey AST structure and reducible expressions, interactive reduction to support self-guided practice, configurable reduction strategies, and support for encodings via a simple macro system. To mimic informal, in-class treatment of macros, we develop a new semantics that describes when to expand and contract them. We use case studies to describe how LambdaLab can fit into student workflows and address real mistakes.
LambdaLab:一个用于学习的交互式λ微积分减速器
在高级程序设计语言课程中,λ演算通常作为教授语言语法和语义的形式概念的基础。LambdaLab是一个交互式工具,可以帮助学生练习λ微积分约简,并建立对其行为的直觉。为了激励这个工具,我们调查了学生在前三节课上对λ微积分作业的回答,并将错误分为六类。LambdaLab通过与讲师一起复制示例工作的经验来解决许多这些问题。它使用可视化来传达AST结构和可简化表达式,使用交互式约简来支持自我指导的实践,使用可配置的约简策略,并通过一个简单的宏系统来支持编码。为了模拟非正式的类内宏处理,我们开发了一种新的语义来描述何时展开和收缩宏。我们使用案例研究来描述LambdaLab如何适应学生的工作流程并解决实际错误。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信