KScript and KSWorld: a time-aware and mostly declarative language and interactive GUI framework

Y. Ohshima, A. Lunzer, B. Freudenberg, T. Kaehler
{"title":"KScript and KSWorld: a time-aware and mostly declarative language and interactive GUI framework","authors":"Y. Ohshima, A. Lunzer, B. Freudenberg, T. Kaehler","doi":"10.1145/2509578.2509590","DOIUrl":null,"url":null,"abstract":"We report on a language called KScript and a GUI framework called KSWorld. The goal of KScript and KSWorld is to try to reduce the accidental complexity in GUI framework code and application building. We aim for an understandable, concise way to specify an application's behavior and appearance, minimizing extra details that arise only because of the medium being used.\n KScript is a dynamic language based on the declarative and time-aware dataflow-style execution model of Functional Reactive Programming (FRP), extended with support for loose coupling among program elements and a high degree of program reconfigurability.\n KSWorld is built using KScript. The fields, or slots, of graphical widgets in KSWorld are reactive variables. Definitions of such variables can be added or modified in a localized manner, allowing on-the-fly customization of the visual and behavioral aspects of widgets and entire applications. Thus the KSWorld environment supports exploratory application building: a user constructs the appearance interactively with direct manipulation, then attaches and refines reactive variable definitions to achieve the desired overall behavior.\n We illustrate our use of KSWorld to build an editor for general graphical documents, including dynamic documents that serve as active essays. The graphical building blocks for documents are the same as those used for building the editor itself, enabling a bootstrapping process in which the earliest working version of the editor can be used to create further components for its own interface.\n As one way of measuring progress on our complexity goal, we provide an overview of the number of lines of code in KSWorld. The total for the KScript compiler, the FRP evaluator, the framework, document model and document editor is currently around 10,000 lines.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"70 6 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-10-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"15","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2509578.2509590","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 15

Abstract

We report on a language called KScript and a GUI framework called KSWorld. The goal of KScript and KSWorld is to try to reduce the accidental complexity in GUI framework code and application building. We aim for an understandable, concise way to specify an application's behavior and appearance, minimizing extra details that arise only because of the medium being used. KScript is a dynamic language based on the declarative and time-aware dataflow-style execution model of Functional Reactive Programming (FRP), extended with support for loose coupling among program elements and a high degree of program reconfigurability. KSWorld is built using KScript. The fields, or slots, of graphical widgets in KSWorld are reactive variables. Definitions of such variables can be added or modified in a localized manner, allowing on-the-fly customization of the visual and behavioral aspects of widgets and entire applications. Thus the KSWorld environment supports exploratory application building: a user constructs the appearance interactively with direct manipulation, then attaches and refines reactive variable definitions to achieve the desired overall behavior. We illustrate our use of KSWorld to build an editor for general graphical documents, including dynamic documents that serve as active essays. The graphical building blocks for documents are the same as those used for building the editor itself, enabling a bootstrapping process in which the earliest working version of the editor can be used to create further components for its own interface. As one way of measuring progress on our complexity goal, we provide an overview of the number of lines of code in KSWorld. The total for the KScript compiler, the FRP evaluator, the framework, document model and document editor is currently around 10,000 lines.
KScript和KSWorld:一种具有时间意识且主要是声明性的语言和交互式GUI框架
我们报告了一种名为KScript的语言和一个名为KSWorld的GUI框架。KScript和KSWorld的目标是尽量减少GUI框架代码和应用程序构建中的意外复杂性。我们的目标是用一种可理解的、简洁的方式来指定应用程序的行为和外观,尽量减少由于使用的媒介而产生的额外细节。KScript是一种动态语言,基于函数式响应式编程(FRP)的声明式和时间感知数据流风格的执行模型,扩展了对程序元素之间松散耦合的支持和高度的程序可重构性。KSWorld是使用KScript构建的。KSWorld中图形小部件的字段或槽是响应变量。可以以本地化的方式添加或修改这些变量的定义,从而允许对小部件和整个应用程序的视觉和行为方面进行动态定制。因此,KSWorld环境支持探索性的应用程序构建:用户通过直接操作交互式地构建外观,然后附加并细化响应变量定义,以实现所需的总体行为。我们将演示如何使用KSWorld为一般图形文档构建编辑器,包括作为活动文章的动态文档。用于文档的图形化构建块与用于构建编辑器本身的图形化构建块相同,从而支持一个引导过程,在这个过程中,可以使用编辑器的最早工作版本为其自己的界面创建进一步的组件。作为衡量复杂性目标进展的一种方法,我们提供了KSWorld中代码行数的概述。KScript编译器、FRP求值器、框架、文档模型和文档编辑器的总代码目前约为10,000行。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信