首页 > 最新文献

SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software最新文献

英文 中文
User model and system model: the yin and yang in user-centered software development 用户模型和系统模型:以用户为中心的软件开发中的阴阳
Han Xu, Oliver Creighton, N. Boulila, Ruth Demmel
Software systems can be viewed from both external and internal perspectives. They are called user model and system model respectively in the human-computer interaction community. In this paper, we employ the yin-yang principle as an analytical tool for reviewing the relationship between the user model and the system model. In the traditional system-centered approach, the engineer is more concerned with the system model and does not pay much attention to the user model. However, as the user-centered approach has gained increasing acceptance in a number of projects, we claim that the user model and system model are the yin and yang in user-centered software development and, following the yin-yang principle, call for equal emphasis on both models. Particularly, we propose using video-based scenarios as the representation of user models and reveal the benefits of the use of video in software development. As a case study, we describe how we have employed scenario videos in a project course and share best practices that we have identified for the creation of demo scenario videos.
软件系统可以从外部和内部两个角度来看待。它们在人机交互领域分别称为用户模型和系统模型。在本文中,我们采用阴阳原理作为分析工具来回顾用户模型和系统模型之间的关系。在传统的以系统为中心的方法中,工程师更多地关注系统模型,而不太关注用户模型。然而,随着以用户为中心的方法在许多项目中获得越来越多的接受,我们声称用户模型和系统模型是以用户为中心的软件开发中的阴阳,并且,遵循阴阳原则,要求同等重视这两个模型。特别是,我们建议使用基于视频的场景作为用户模型的表示,并揭示了在软件开发中使用视频的好处。作为案例研究,我们描述了我们如何在项目课程中使用场景视频,并分享了我们为创建演示场景视频而确定的最佳实践。
{"title":"User model and system model: the yin and yang in user-centered software development","authors":"Han Xu, Oliver Creighton, N. Boulila, Ruth Demmel","doi":"10.1145/2509578.2514737","DOIUrl":"https://doi.org/10.1145/2509578.2514737","url":null,"abstract":"Software systems can be viewed from both external and internal perspectives. They are called user model and system model respectively in the human-computer interaction community. In this paper, we employ the yin-yang principle as an analytical tool for reviewing the relationship between the user model and the system model. In the traditional system-centered approach, the engineer is more concerned with the system model and does not pay much attention to the user model. However, as the user-centered approach has gained increasing acceptance in a number of projects, we claim that the user model and system model are the yin and yang in user-centered software development and, following the yin-yang principle, call for equal emphasis on both models. Particularly, we propose using video-based scenarios as the representation of user models and reveal the benefits of the use of video in software development. As a case study, we describe how we have employed scenario videos in a project course and share best practices that we have identified for the creation of demo scenario videos.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"226 3","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120846424","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Growing solver-aided languages with rosette 成长的解决方案辅助语言与玫瑰
E. Torlak, R. Bodík
SAT and SMT solvers have automated a spectrum of programming tasks, including program synthesis, code checking, bug localization, program repair, and programming with oracles. In principle, we obtain all these benefits by translating the program (once) to a constraint system understood by the solver. In practice, however, compiling a language to logical formulas is a tricky process, complicated by having to map the solution back to the program level and extend the language with new solver-aided constructs, such as symbolic holes used in synthesis. This paper introduces ROSETTE, a framework for designing solver-aided languages. ROSETTE is realized as a solver-aided language embedded in Racket, from which it inherits extensive support for meta-programming. Our framework frees designers from having to compile their languages to constraints: new languages, and their solver-aided constructs, are defined by shallow (library-based) or deep (interpreter-based) embedding in ROSETTE itself. We describe three case studies, by ourselves and others, of using ROSETTE to implement languages and synthesizers for web scraping, spatial programming, and superoptimization of bitvector programs.
SAT和SMT求解器已经自动化了一系列编程任务,包括程序合成、代码检查、错误定位、程序修复和使用oracle编程。原则上,我们通过将程序(一次)转换为求解器可以理解的约束系统来获得所有这些好处。然而,在实践中,将一种语言编译为逻辑公式是一个棘手的过程,由于必须将解决方案映射回程序级别,并使用新的求解器辅助构造(例如合成中使用的符号洞)扩展语言,因此变得更加复杂。本文介绍了求解器辅助语言设计框架ROSETTE。ROSETTE是作为嵌入在Racket中的求解器辅助语言实现的,它继承了对元编程的广泛支持。我们的框架使设计人员不必将他们的语言编译为约束:新语言及其求解器辅助结构由ROSETTE本身的浅(基于库)或深(基于解释器)嵌入来定义。我们描述了三个案例研究,通过我们自己和其他人,使用ROSETTE实现网络抓取,空间编程和位向量程序超优化的语言和合成器。
{"title":"Growing solver-aided languages with rosette","authors":"E. Torlak, R. Bodík","doi":"10.1145/2509578.2509586","DOIUrl":"https://doi.org/10.1145/2509578.2509586","url":null,"abstract":"SAT and SMT solvers have automated a spectrum of programming tasks, including program synthesis, code checking, bug localization, program repair, and programming with oracles. In principle, we obtain all these benefits by translating the program (once) to a constraint system understood by the solver. In practice, however, compiling a language to logical formulas is a tricky process, complicated by having to map the solution back to the program level and extend the language with new solver-aided constructs, such as symbolic holes used in synthesis.\u0000 This paper introduces ROSETTE, a framework for designing solver-aided languages. ROSETTE is realized as a solver-aided language embedded in Racket, from which it inherits extensive support for meta-programming. Our framework frees designers from having to compile their languages to constraints: new languages, and their solver-aided constructs, are defined by shallow (library-based) or deep (interpreter-based) embedding in ROSETTE itself.\u0000 We describe three case studies, by ourselves and others, of using ROSETTE to implement languages and synthesizers for web scraping, spatial programming, and superoptimization of bitvector programs.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"1311 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116489759","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 211
What's wrong with git?: a conceptual design analysis git有什么问题?:概念设计分析
Santiago Perez De Rosso, D. Jackson
It is commonly asserted that the success of a software development project, and the usability of the final product, depend on the quality of the concepts that underlie its design. Yet this hypothesis has not been systematically explored by researchers, and conceptual design has not played the central role in the research and teaching of software engineering that one might expect. As part of a new research project to explore conceptual design, we are engaging in a series of case studies. This paper reports on the early stages of our first study, on the Git version control system. Despite its widespread adoption, Git puzzles even experienced developers and is not regarded as easy to use. In an attempt to understand the root causes of its complexity, we analyze its conceptual model and identify some undesirable properties; we then propose a reworking of the conceptual model that forms the basis of (the first version of) Gitless, an ongoing effort to redesign Git and experiment with the effects of conceptual simplifications.
通常认为,软件开发项目的成功,以及最终产品的可用性,取决于作为其设计基础的概念的质量。然而,这一假设还没有被研究人员系统地探索过,概念设计也没有像人们所期望的那样在软件工程的研究和教学中发挥核心作用。作为探索概念设计的新研究项目的一部分,我们正在进行一系列的案例研究。本文报告了我们第一个研究的早期阶段,关于Git版本控制系统。尽管Git被广泛采用,但即使是有经验的开发人员也感到困惑,并且认为它并不容易使用。为了了解其复杂性的根本原因,我们分析了其概念模型并确定了一些不受欢迎的属性;然后,我们提出了一个概念模型的重新设计,它构成了(第一版)Git的基础,这是一个不断努力重新设计Git和实验概念简化的效果。
{"title":"What's wrong with git?: a conceptual design analysis","authors":"Santiago Perez De Rosso, D. Jackson","doi":"10.1145/2509578.2509584","DOIUrl":"https://doi.org/10.1145/2509578.2509584","url":null,"abstract":"It is commonly asserted that the success of a software development project, and the usability of the final product, depend on the quality of the concepts that underlie its design. Yet this hypothesis has not been systematically explored by researchers, and conceptual design has not played the central role in the research and teaching of software engineering that one might expect.\u0000 As part of a new research project to explore conceptual design, we are engaging in a series of case studies. This paper reports on the early stages of our first study, on the Git version control system. Despite its widespread adoption, Git puzzles even experienced developers and is not regarded as easy to use. In an attempt to understand the root causes of its complexity, we analyze its conceptual model and identify some undesirable properties; we then propose a reworking of the conceptual model that forms the basis of (the first version of) Gitless, an ongoing effort to redesign Git and experiment with the effects of conceptual simplifications.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121564360","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 45
Software development environments on the web: a research agenda 网络上的软件开发环境:一个研究议程
L. Kats, R. G. Vogelij, K. T. Kalleberg, E. Visser
Software is rapidly moving from the desktop to the Web. The Web provides a generic user interface that allows ubiquitous access, instant collaboration, integration with other online services, and avoids installation and configuration on desktop computers. For software development, the Web presents a shift away from developer workstations as a silo, and has the promise of closer collaboration and improved feedback through innovations in Web-based interactive development environments (IDEs). Moving IDEs to the Web is not just a matter of porting desktop IDEs; a fundamental reconsideration of the IDE architecture is necessary in order to realize the full potential that the combination of modern IDEs and the Web can offer. This paper discusses research challenges and opportunities in this area, guided by a pilot study of a web IDE implementation.
软件正迅速从桌面转向网络。Web提供了一个通用的用户界面,允许无处不在的访问、即时协作、与其他在线服务集成,并且避免了在台式计算机上安装和配置。对于软件开发,Web将开发人员工作站转变为竖井,并承诺通过基于Web的交互式开发环境(ide)的创新实现更紧密的协作和改进的反馈。将ide迁移到Web不仅仅是移植桌面ide的问题;为了实现现代IDE和Web的结合所能提供的全部潜力,有必要从根本上重新考虑IDE体系结构。本文在web IDE实现的试点研究的指导下,讨论了这一领域的研究挑战和机遇。
{"title":"Software development environments on the web: a research agenda","authors":"L. Kats, R. G. Vogelij, K. T. Kalleberg, E. Visser","doi":"10.1145/2384592.2384603","DOIUrl":"https://doi.org/10.1145/2384592.2384603","url":null,"abstract":"Software is rapidly moving from the desktop to the Web. The Web provides a generic user interface that allows ubiquitous access, instant collaboration, integration with other online services, and avoids installation and configuration on desktop computers. For software development, the Web presents a shift away from developer workstations as a silo, and has the promise of closer collaboration and improved feedback through innovations in Web-based interactive development environments (IDEs). Moving IDEs to the Web is not just a matter of porting desktop IDEs; a fundamental reconsideration of the IDE architecture is necessary in order to realize the full potential that the combination of modern IDEs and the Web can offer. This paper discusses research challenges and opportunities in this area, guided by a pilot study of a web IDE implementation.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127180349","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 28
The dark side of agile software development 敏捷软件开发的阴暗面
Andrea Janes, G. Succi
We believe, that like most innovations, Agile has followed the Gartner Hype Cycle and it has now reached the Trough of Disillusionment, where it is currently stuck. Moreover, we believe this is due to a "guru phenomenon." However, we think that Agile can make a step forward. Our experience lead us to the conviction that through the application of a suitable quality improvement paradigm Agile will be able to reach what Gartner's experts call the Slope of Enlightenment and eventually the Plateau of Productivity.
我们相信,像大多数创新一样,敏捷遵循了Gartner的炒作周期,现在它已经到达了幻灭的低谷,目前它就在那里被卡住了。此外,我们认为这是由于“大师现象”。然而,我们认为敏捷可以向前迈进一步。我们的经验使我们相信,通过应用合适的质量改进范例,敏捷将能够达到Gartner专家所说的“启蒙斜坡”,最终达到“生产力高原”。
{"title":"The dark side of agile software development","authors":"Andrea Janes, G. Succi","doi":"10.1145/2384592.2384612","DOIUrl":"https://doi.org/10.1145/2384592.2384612","url":null,"abstract":"We believe, that like most innovations, Agile has followed the Gartner Hype Cycle and it has now reached the Trough of Disillusionment, where it is currently stuck. Moreover, we believe this is due to a \"guru phenomenon.\"\u0000 However, we think that Agile can make a step forward. Our experience lead us to the conviction that through the application of a suitable quality improvement paradigm Agile will be able to reach what Gartner's experts call the Slope of Enlightenment and eventually the Plateau of Productivity.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123692504","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 63
Growing a pattern language (for security) 发展模式语言(为了安全性)
M. Hafiz, Paul Adamczyk, Ralph E. Johnson
Researchers and practitioners have been successfully documenting software patterns for over two decades. But the next step--building pattern languages--has proven much more difficult. This paper describes an approach for building a large pattern language for security: an approach that can be used to create pattern languages for other software domains. We describe the mechanism of growing this pattern language: how we cataloged the security patterns from books, papers and pattern collections written by all security experts over the last 15 years, how we classified the patterns to help developers find the appropriate ones, and how we identified and described the relationships between patterns in the language. To our best knowledge, this is the largest pattern language in software. But the most significant contribution of this paper is the story behind how the pattern language is grown; it illustrates the steps that can be adapted to create and grow pattern languages for other domains.
研究人员和实践者已经成功地记录软件模式超过二十年了。但是下一步——构建模式语言——被证明要困难得多。本文描述了一种为安全性构建大型模式语言的方法:一种可用于为其他软件领域创建模式语言的方法。我们描述了发展这种模式语言的机制:我们如何从过去15年中所有安全专家编写的书籍、论文和模式集合中编目安全模式,我们如何对模式进行分类以帮助开发人员找到合适的模式,以及我们如何识别和描述语言中模式之间的关系。据我们所知,这是软件中最大的模式语言。但是本文最重要的贡献是模式语言如何成长的故事;它说明了可用于为其他领域创建和发展模式语言的步骤。
{"title":"Growing a pattern language (for security)","authors":"M. Hafiz, Paul Adamczyk, Ralph E. Johnson","doi":"10.1145/2384592.2384607","DOIUrl":"https://doi.org/10.1145/2384592.2384607","url":null,"abstract":"Researchers and practitioners have been successfully documenting software patterns for over two decades. But the next step--building pattern languages--has proven much more difficult. This paper describes an approach for building a large pattern language for security: an approach that can be used to create pattern languages for other software domains. We describe the mechanism of growing this pattern language: how we cataloged the security patterns from books, papers and pattern collections written by all security experts over the last 15 years, how we classified the patterns to help developers find the appropriate ones, and how we identified and described the relationships between patterns in the language. To our best knowledge, this is the largest pattern language in software. But the most significant contribution of this paper is the story behind how the pattern language is grown; it illustrates the steps that can be adapted to create and grow pattern languages for other domains.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"82 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116136934","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 77
Alternative programming interfaces for alternative programmers 可供选择的程序员使用的可供选择的编程接口
Toby Schachman
This paper seeks to broaden the view of what programming is, who programs, and how programming fits in to larger systems. With growing frequency, people are approaching programming from unlikely backgrounds such as the arts. Often these new programmers bring with them ways of working which are incompatible with mainstream programming practices, but which allow for new possibilities in programming interfaces. This paper makes suggestions for the design of these new programming interfaces. It presents as a case study and demonstration Recursive Drawing. Recursive Drawing is a reimplementation of the textual programming language Context Free as a graphical, directly manipulable interface. Instead of a compiler or interpreter, Recursive Drawing's programming interface is modeled as a constraint solver. This allows the programmer to modify the program's source code by manipulating the program's output. Additionally, the design of the interface focuses on program transformation, rather than program construction.
本文试图拓宽编程是什么、谁编程以及编程如何适应更大的系统的观点。越来越多的人从不太可能的背景(如艺术)接触编程。通常,这些新程序员带来了与主流编程实践不兼容的工作方式,但却为编程接口提供了新的可能性。本文对这些新型编程接口的设计提出了建议。它作为一个案例研究和演示递归绘图。递归绘图是文本编程语言Context Free的重新实现,它是一个图形化的、可直接操作的界面。递归绘图的编程接口被建模为约束求解器,而不是编译器或解释器。这允许程序员通过操纵程序的输出来修改程序的源代码。此外,接口的设计侧重于程序转换,而不是程序构造。
{"title":"Alternative programming interfaces for alternative programmers","authors":"Toby Schachman","doi":"10.1145/2384592.2384594","DOIUrl":"https://doi.org/10.1145/2384592.2384594","url":null,"abstract":"This paper seeks to broaden the view of what programming is, who programs, and how programming fits in to larger systems. With growing frequency, people are approaching programming from unlikely backgrounds such as the arts. Often these new programmers bring with them ways of working which are incompatible with mainstream programming practices, but which allow for new possibilities in programming interfaces. This paper makes suggestions for the design of these new programming interfaces. It presents as a case study and demonstration Recursive Drawing. Recursive Drawing is a reimplementation of the textual programming language Context Free as a graphical, directly manipulable interface. Instead of a compiler or interpreter, Recursive Drawing's programming interface is modeled as a constraint solver. This allows the programmer to modify the program's source code by manipulating the program's output. Additionally, the design of the interface focuses on program transformation, rather than program construction.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126775007","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
Interruptible context-dependent executions: a fresh look at programming context-aware applications 可中断的上下文相关执行:对编程上下文感知应用程序的全新看法
Engineer Bainomugisha, Jorge Vallejos, Coen De Roover, A. Carreton, W. Meuter
Context-aware applications provide end-users with enhanced experiences by continuously sensing their environment and adapting their behaviour to match the current context of use. However, developing true context-aware applications remains notoriously difficult due to the unpredictable nature of context changes. A context change may occur at any moment during a procedure execution, which may require an ongoing execution to be promptly interrupted in order to prevent the procedure from running in a wrong context. Currently, developers have to manually constrain a procedure execution to a particular context and take care of saving and restoring the execution state between context changes. Such manual approaches are error-prone and may lead to incorrect application behaviour. This paper presents a novel programming language model called interruptible context-dependent executions, where a procedure execution is always constrained to happen only under a specified context. In this model, a procedure execution can be seamlessly interrupted or resumed depending on the context. Additionally, the procedure execution state is automatically preserved between interruptions. We present the Flute language that supports interruptible context-dependent executions.
上下文感知应用程序通过持续感知环境并调整其行为以匹配当前使用环境,为最终用户提供增强的体验。然而,由于上下文变化的不可预测性,开发真正的上下文感知应用程序仍然非常困难。在过程执行期间的任何时刻都可能发生上下文更改,这可能需要立即中断正在执行的过程,以防止过程在错误的上下文中运行。目前,开发人员必须手动将过程执行约束到特定的上下文,并负责在上下文更改之间保存和恢复执行状态。这种手工方法容易出错,并可能导致不正确的应用程序行为。本文提出了一种新的编程语言模型,称为可中断上下文相关执行,其中过程的执行总是被约束在特定的上下文下发生。在此模型中,可以根据上下文无缝地中断或恢复过程执行。此外,在中断之间自动保留过程执行状态。我们提出了支持可中断的上下文相关执行的Flute语言。
{"title":"Interruptible context-dependent executions: a fresh look at programming context-aware applications","authors":"Engineer Bainomugisha, Jorge Vallejos, Coen De Roover, A. Carreton, W. Meuter","doi":"10.1145/2384592.2384600","DOIUrl":"https://doi.org/10.1145/2384592.2384600","url":null,"abstract":"Context-aware applications provide end-users with enhanced experiences by continuously sensing their environment and adapting their behaviour to match the current context of use. However, developing true context-aware applications remains notoriously difficult due to the unpredictable nature of context changes. A context change may occur at any moment during a procedure execution, which may require an ongoing execution to be promptly interrupted in order to prevent the procedure from running in a wrong context. Currently, developers have to manually constrain a procedure execution to a particular context and take care of saving and restoring the execution state between context changes. Such manual approaches are error-prone and may lead to incorrect application behaviour.\u0000 This paper presents a novel programming language model called interruptible context-dependent executions, where a procedure execution is always constrained to happen only under a specified context. In this model, a procedure execution can be seamlessly interrupted or resumed depending on the context. Additionally, the procedure execution state is automatically preserved between interruptions. We present the Flute language that supports interruptible context-dependent executions.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"48 16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124966904","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 35
The VIVIDE programming environment: connecting run-time information with programmers' system knowledge VIVIDE编程环境:将运行时信息与程序员的系统知识联系起来
Marcel Taeumel, Bastian Steinert, R. Hirschfeld
Programmers benefit from concrete program run-time information during code-centric comprehension activities. Unfortunately, state-of-the-art programming environments distract programmers from their task-oriented thinking by forcing them to cope with (1) tool-driven run-time information access and with (2) tool-driven changing information views. However, current research projects address these problems with new concepts for capturing run-time behavior as needed and for organizing all information on-screen according to the programmers' mental model. Unfortunately, there has been no attempt that tries to combine available solutions into one single approach. We propose a new concept for programming environments, which allow programmers to work in a task-oriented way: Run-time information is collected automatically using tests; Information is displayed consistently in self-contained editors arranged on a horizontal boundless tape. We illustrate practicability with an implementation in Squeak/Smalltalk. We believe that such environments will allow programmers to explore program-related information without noticeable tool switches and hence context switches. Having this, the cognitive effort will be reduced and thus programmers will make fewer false conclusions and eventually save time.
在以代码为中心的理解活动中,程序员受益于具体的程序运行时信息。不幸的是,最先进的编程环境迫使程序员处理(1)工具驱动的运行时信息访问和(2)工具驱动的变更信息视图,从而分散了他们面向任务的思维。然而,当前的研究项目用新的概念来解决这些问题,这些新概念用于根据需要捕获运行时行为,并根据程序员的心智模型组织屏幕上的所有信息。不幸的是,还没有人尝试将可用的解决方案合并成一个单一的方法。我们提出了一个编程环境的新概念,它允许程序员以面向任务的方式工作:使用测试自动收集运行时信息;信息在独立的编辑器中一致地显示,编辑器排列在水平的无界磁带上。我们用Squeak/Smalltalk中的一个实现来说明实用性。我们相信这样的环境将允许程序员在没有明显的工具切换和上下文切换的情况下探索与程序相关的信息。有了这一点,认知工作将会减少,因此程序员将会做出更少的错误结论,并最终节省时间。
{"title":"The VIVIDE programming environment: connecting run-time information with programmers' system knowledge","authors":"Marcel Taeumel, Bastian Steinert, R. Hirschfeld","doi":"10.1145/2384592.2384604","DOIUrl":"https://doi.org/10.1145/2384592.2384604","url":null,"abstract":"Programmers benefit from concrete program run-time information during code-centric comprehension activities. Unfortunately, state-of-the-art programming environments distract programmers from their task-oriented thinking by forcing them to cope with (1) tool-driven run-time information access and with (2) tool-driven changing information views. However, current research projects address these problems with new concepts for capturing run-time behavior as needed and for organizing all information on-screen according to the programmers' mental model.\u0000 Unfortunately, there has been no attempt that tries to combine available solutions into one single approach. We propose a new concept for programming environments, which allow programmers to work in a task-oriented way: Run-time information is collected automatically using tests; Information is displayed consistently in self-contained editors arranged on a horizontal boundless tape. We illustrate practicability with an implementation in Squeak/Smalltalk.\u0000 We believe that such environments will allow programmers to explore program-related information without noticeable tool switches and hence context switches. Having this, the cognitive effort will be reduced and thus programmers will make fewer false conclusions and eventually save time.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115685225","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
Progressive types 进步的类型
J. Politz, Hannah Quay-de la Vallee, S. Krishnamurthi
As modern type systems grow ever-richer, it can become increasingly onerous for programmers to satisfy them. However, some programs may not require the full power of the type system, while others may wish to obtain these rich guarantees incrementally. In particular, programmers may be willing to exploit the safety checks of the underlying runtime system as a substitute for some static guarantees. Progressive types give programmers this freedom, thus creating a gentler and more flexible environment for using powerful type checkers. In this paper we discuss the idea, motivate it with concrete, real-world scenarios, then show the development of a simple progressive type system and present its (progressive) soundness theorem.
随着现代类型系统变得越来越丰富,程序员要满足它们会变得越来越繁重。然而,有些程序可能不需要类型系统的全部功能,而另一些程序可能希望逐步获得这些丰富的保证。特别是,程序员可能愿意利用底层运行时系统的安全检查来替代一些静态保证。渐进类型为程序员提供了这种自由,从而为使用功能强大的类型检查器创建了更温和、更灵活的环境。在本文中,我们讨论了这个想法,用具体的、真实的场景来激励它,然后展示了一个简单的渐进型系统的发展,并给出了它的(渐进)稳健性定理。
{"title":"Progressive types","authors":"J. Politz, Hannah Quay-de la Vallee, S. Krishnamurthi","doi":"10.1145/2384592.2384599","DOIUrl":"https://doi.org/10.1145/2384592.2384599","url":null,"abstract":"As modern type systems grow ever-richer, it can become increasingly onerous for programmers to satisfy them. However, some programs may not require the full power of the type system, while others may wish to obtain these rich guarantees incrementally. In particular, programmers may be willing to exploit the safety checks of the underlying runtime system as a substitute for some static guarantees. Progressive types give programmers this freedom, thus creating a gentler and more flexible environment for using powerful type checkers. In this paper we discuss the idea, motivate it with concrete, real-world scenarios, then show the development of a simple progressive type system and present its (progressive) soundness theorem.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123201860","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
期刊
SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1