首页 > 最新文献

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

英文 中文
Game programming by demonstration 演示式游戏编程
M. Mayer, Viktor Kunčak
The increasing adoption of smartphones and tablets has provided tens of millions of users with substantial resources for computation, communication and sensing. The availability of these resources has a huge potential to positively transform our society and empower individuals. Unfortunately, although the number of users has increased dramatically, the number of developers is still limited by the high barrier that existing programming environments impose. To understand possible directions for helping end users to program, we present Pong Designer, an environment for developing 2D physics games through direct manipulation of object behaviors. Pong Designer is built using Scala and runs on Android tablets with the multi-touch screen as the main input. We show that Pong Designer can create simple games in a few steps. This includes (multi-player and multi-screen) Pong, Brick Breaker, Pacman, Tilting maze. We make available Pong Designer as well as several editable games that we created using it. This paper describes the main principles behind Pong Designer, and illustrates the process of developing and customizing behavior in this approach
智能手机和平板电脑的日益普及为数千万用户提供了大量的计算、通信和传感资源。这些资源的可用性具有巨大的潜力,可以积极地改变我们的社会并赋予个人权力。不幸的是,尽管用户数量急剧增加,但开发人员的数量仍然受到现有编程环境所施加的高障碍的限制。为了理解帮助最终用户编程的可能方向,我们介绍了Pong Designer,这是一个通过直接操作对象行为来开发2D物理游戏的环境。Pong Designer是使用Scala构建的,运行在Android平板电脑上,以多点触摸屏为主要输入。我们证明了《Pong Designer》可以通过几个步骤创造出简单的游戏。这包括(多人和多屏幕)《Pong》、《破砖者》、《吃豆人》和《倾斜迷宫》。我们提供了《Pong Designer》以及一些我们使用它创造的可编辑游戏。本文描述了Pong Designer背后的主要原理,并说明了在这种方法中开发和定制行为的过程
{"title":"Game programming by demonstration","authors":"M. Mayer, Viktor Kunčak","doi":"10.1145/2509578.2509583","DOIUrl":"https://doi.org/10.1145/2509578.2509583","url":null,"abstract":"The increasing adoption of smartphones and tablets has provided tens of millions of users with substantial resources for computation, communication and sensing. The availability of these resources has a huge potential to positively transform our society and empower individuals. Unfortunately, although the number of users has increased dramatically, the number of developers is still limited by the high barrier that existing programming environments impose.\u0000 To understand possible directions for helping end users to program, we present Pong Designer, an environment for developing 2D physics games through direct manipulation of object behaviors. Pong Designer is built using Scala and runs on Android tablets with the multi-touch screen as the main input. We show that Pong Designer can create simple games in a few steps. This includes (multi-player and multi-screen) Pong, Brick Breaker, Pacman, Tilting maze. We make available Pong Designer as well as several editable games that we created using it. This paper describes the main principles behind Pong Designer, and illustrates the process of developing and customizing behavior in this approach","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"93 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":"129174995","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
Building connections between theories of computing and physical systems 建立计算理论和物理系统之间的联系
Eric L. McCorkle
The theory and semantics of programming languages are typically formulated using abstract mathematical models that have no obvious connection to any physical theory. While this approach has a number of advantages, it does not generalize to complex nondiscrete systems, and it obscures the underlying mathematical connections between computational and physical theory. Moreover, it can lead to inaccurate models of more complex phenomena such as concurrency. In this paper, we describe the current directions and initial results of our efforts to build connections between programming language theory and semantics and physical theory. The first and most mature of these efforts aims to develop a denotational semantic model that expands upon the mathematical formulation of quantum systems to provide a denotational foundation for concurrent languages. The second effort aims to generalize the notion of type systems to a probability inference system based on Bayesian probability. The third and final effort aims to develop an understanding of the dynamics of concurrent processes, with the goal of reasoning about the real behavior of processes in greater detail. In each of these efforts, we aim to draw connections between computing and other scientific disciplines.
编程语言的理论和语义通常使用抽象的数学模型来表述,这些模型与任何物理理论都没有明显的联系。虽然这种方法有许多优点,但它不能推广到复杂的非离散系统,并且它模糊了计算理论和物理理论之间的潜在数学联系。此外,它可能导致更复杂现象(如并发性)的不准确模型。在本文中,我们描述了当前的方向和初步结果,我们努力建立连接之间的编程语言理论和语义和物理理论。这些努力的第一个也是最成熟的目标是开发一个指称语义模型,扩展量子系统的数学公式,为并发语言提供指称基础。第二步的目标是将类型系统的概念推广到基于贝叶斯概率的概率推理系统。第三个也是最后一个努力的目的是发展对并发进程动态的理解,其目标是更详细地推理进程的真实行为。在这些努力中,我们的目标是在计算和其他科学学科之间建立联系。
{"title":"Building connections between theories of computing and physical systems","authors":"Eric L. McCorkle","doi":"10.1145/2509578.2509587","DOIUrl":"https://doi.org/10.1145/2509578.2509587","url":null,"abstract":"The theory and semantics of programming languages are typically formulated using abstract mathematical models that have no obvious connection to any physical theory. While this approach has a number of advantages, it does not generalize to complex nondiscrete systems, and it obscures the underlying mathematical connections between computational and physical theory. Moreover, it can lead to inaccurate models of more complex phenomena such as concurrency. In this paper, we describe the current directions and initial results of our efforts to build connections between programming language theory and semantics and physical theory. The first and most mature of these efforts aims to develop a denotational semantic model that expands upon the mathematical formulation of quantum systems to provide a denotational foundation for concurrent languages. The second effort aims to generalize the notion of type systems to a probability inference system based on Bayesian probability. The third and final effort aims to develop an understanding of the dynamics of concurrent processes, with the goal of reasoning about the real behavior of processes in greater detail. In each of these efforts, we aim to draw connections between computing and other scientific disciplines.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"108 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":"122524210","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}
引用次数: 0
Content over container: object-oriented programming with multiplicities 容器之上的内容:具有多样性的面向对象编程
F. Steimann
In object-oriented programs, the relationship of an object to many objects is usually implemented using a collection. This is in contrast to a relationship to one object, which is usually realized as a direct value. However, using collections for relationships to many objects does not only mean that accessing the related objects always requires accessing the collection first, it also presents a lurking maintenance problem that manifests itself when a relationship needs to be changed from to-one to to-many or vice versa. To address these issues, we suggest the extension of object-oriented programming with multiplicities, that is, with expressions that evaluate to an arbitrary number of objects not wrapped in a container.
在面向对象的程序中,一个对象与许多对象之间的关系通常使用集合来实现。这与与一个对象的关系形成对比,后者通常被实现为直接值。然而,对多对象的关系使用集合不仅意味着访问相关对象总是需要首先访问集合,而且还会带来潜在的维护问题,当需要将关系从一对更改为对多或反之亦然时,这个问题就会显现出来。为了解决这些问题,我们建议扩展具有多样性的面向对象编程,也就是说,使用计算为任意数量的未包装在容器中的对象的表达式。
{"title":"Content over container: object-oriented programming with multiplicities","authors":"F. Steimann","doi":"10.1145/2509578.2509582","DOIUrl":"https://doi.org/10.1145/2509578.2509582","url":null,"abstract":"In object-oriented programs, the relationship of an object to many objects is usually implemented using a collection. This is in contrast to a relationship to one object, which is usually realized as a direct value. However, using collections for relationships to many objects does not only mean that accessing the related objects always requires accessing the collection first, it also presents a lurking maintenance problem that manifests itself when a relationship needs to be changed from to-one to to-many or vice versa. To address these issues, we suggest the extension of object-oriented programming with multiplicities, that is, with expressions that evaluate to an arbitrary number of objects not wrapped in a container.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"174 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":"132530254","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}
引用次数: 15
Conversational programming: exploring interactive program analysis 会话编程:探索交互式程序分析
A. Repenning
Our powerful computers help very little in debugging the program we have so we can change it into the program we want. We introduce Conversational Programming as a way to harness our computing power to inspect program meaning through a combination of partial program execution and semantic program annotation. A programmer in our approach interactively selects highly autonomous "agents" in a program world as conversation topics and then changes the world to explore the potential behaviors of a selected agent in different scenarios. In this way, the programmer proactively knows how their code affects program execution as they explore various contexts. This paper describes conversational programming through design principles and use cases.
我们强大的计算机在调试程序方面帮助很小,所以我们可以把它变成我们想要的程序。我们介绍会话编程,作为一种利用我们的计算能力,通过部分程序执行和语义程序注释的组合来检查程序含义的方法。在我们的方法中,程序员在程序世界中交互式地选择高度自治的“代理”作为对话主题,然后改变世界以探索所选代理在不同场景中的潜在行为。通过这种方式,程序员可以在探索各种上下文时主动了解他们的代码如何影响程序执行。本文通过设计原则和用例描述对话式编程。
{"title":"Conversational programming: exploring interactive program analysis","authors":"A. Repenning","doi":"10.1145/2509578.2509591","DOIUrl":"https://doi.org/10.1145/2509578.2509591","url":null,"abstract":"Our powerful computers help very little in debugging the program we have so we can change it into the program we want. We introduce Conversational Programming as a way to harness our computing power to inspect program meaning through a combination of partial program execution and semantic program annotation. A programmer in our approach interactively selects highly autonomous \"agents\" in a program world as conversation topics and then changes the world to explore the potential behaviors of a selected agent in different scenarios. In this way, the programmer proactively knows how their code affects program execution as they explore various contexts. This paper describes conversational programming through design principles and use cases.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"296 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":"132691531","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}
引用次数: 16
Usable live programming 可用的现场编程
Sean McDirmid
Programming today involves code editing mixed with bouts of debugging to get feedback on code execution. For programming to be more fluid, editing and debugging should occur concurrently as live programming. This paper describes how live execution feedback can be woven into the editor by making places in program execution, not just code, navigable so that evaluation results can be probed directly within the code editor. A pane aside the editor also traces execution with entries that are similarly navigable, enabling quick problem diagnosis. Both probes and traces are refreshed continuously during editing, and are easily configured based on debugging needs. We demonstrate the usefulness of this live programming experience with a prototype.
今天的编程包括代码编辑和调试,以获得代码执行的反馈。为了使编程更加流畅,编辑和调试应该作为实时编程同时进行。本文描述了如何将实时执行反馈编织到编辑器中,通过使程序执行(而不仅仅是代码)的位置可导航,从而可以在代码编辑器中直接探测评估结果。编辑器旁边的窗格还使用类似可导航的条目跟踪执行情况,从而支持快速诊断问题。探针和跟踪都在编辑过程中不断刷新,并且很容易根据调试需要进行配置。我们用一个原型来演示这种实时编程经验的有用性。
{"title":"Usable live programming","authors":"Sean McDirmid","doi":"10.1145/2509578.2509585","DOIUrl":"https://doi.org/10.1145/2509578.2509585","url":null,"abstract":"Programming today involves code editing mixed with bouts of debugging to get feedback on code execution. For programming to be more fluid, editing and debugging should occur concurrently as live programming. This paper describes how live execution feedback can be woven into the editor by making places in program execution, not just code, navigable so that evaluation results can be probed directly within the code editor. A pane aside the editor also traces execution with entries that are similarly navigable, enabling quick problem diagnosis. Both probes and traces are refreshed continuously during editing, and are easily configured based on debugging needs. We demonstrate the usefulness of this live programming experience with a prototype.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"287 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":"114349797","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}
引用次数: 96
KScript and KSWorld: a time-aware and mostly declarative language and interactive GUI framework KScript和KSWorld:一种具有时间意识且主要是声明性的语言和交互式GUI框架
Y. Ohshima, A. Lunzer, B. Freudenberg, T. Kaehler
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是一种动态语言,基于函数式响应式编程(FRP)的声明式和时间感知数据流风格的执行模型,扩展了对程序元素之间松散耦合的支持和高度的程序可重构性。KSWorld是使用KScript构建的。KSWorld中图形小部件的字段或槽是响应变量。可以以本地化的方式添加或修改这些变量的定义,从而允许对小部件和整个应用程序的视觉和行为方面进行动态定制。因此,KSWorld环境支持探索性的应用程序构建:用户通过直接操作交互式地构建外观,然后附加并细化响应变量定义,以实现所需的总体行为。我们将演示如何使用KSWorld为一般图形文档构建编辑器,包括作为活动文章的动态文档。用于文档的图形化构建块与用于构建编辑器本身的图形化构建块相同,从而支持一个引导过程,在这个过程中,可以使用编辑器的最早工作版本为其自己的界面创建进一步的组件。作为衡量复杂性目标进展的一种方法,我们提供了KSWorld中代码行数的概述。KScript编译器、FRP求值器、框架、文档模型和文档编辑器的总代码目前约为10,000行。
{"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":"https://doi.org/10.1145/2509578.2509590","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.\u0000 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.\u0000 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.\u0000 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.\u0000 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.0,"publicationDate":"2013-10-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131462414","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}
引用次数: 15
The power of interoperability: why objects are inevitable 互操作性的力量:为什么对象是不可避免的
Jonathan Aldrich
Three years ago in this venue, Cook argued that in their essence, objects are what Reynolds called procedural data structures. His observation raises a natural question: if procedural data structures are the essence of objects, has this contributed to the empirical success of objects, and if so, how? This essay attempts to answer that question. After reviewing Cook's definition, I propose the term service abstractions to capture the essential nature of objects. This terminology emphasizes, following Kay, that objects are not primarily about representing and manipulating data, but are more about providing services in support of higher-level goals. Using examples taken from object-oriented frameworks, I illustrate the unique design leverage that service abstractions provide: the ability to define abstractions that can be extended, and whose extensions are interoperable in a first-class way. The essay argues that the form of interoperable extension supported by service abstractions is essential to modern software: many modern frameworks and ecosystems could not have been built without service abstractions. In this sense, the success of objects was not a coincidence: it was an inevitable consequence of their service abstraction nature.
三年前在这里,库克提出,从本质上讲,对象就是雷诺兹所说的过程数据结构。他的观察提出了一个自然的问题:如果程序数据结构是对象的本质,这是否有助于对象的经验成功,如果是,如何?本文试图回答这个问题。在回顾了Cook的定义之后,我建议使用术语服务抽象来捕捉对象的本质。按照Kay的说法,这个术语强调的是,对象主要不是表示和操作数据,而是提供服务以支持更高级别的目标。使用来自面向对象框架的示例,我说明了服务抽象提供的独特设计优势:定义可以扩展的抽象的能力,其扩展以一流的方式可互操作。本文认为,由服务抽象支持的可互操作扩展的形式对现代软件至关重要:如果没有服务抽象,许多现代框架和生态系统就无法构建。从这个意义上说,对象的成功不是巧合:这是其服务抽象本质的必然结果。
{"title":"The power of interoperability: why objects are inevitable","authors":"Jonathan Aldrich","doi":"10.1145/2509578.2514738","DOIUrl":"https://doi.org/10.1145/2509578.2514738","url":null,"abstract":"Three years ago in this venue, Cook argued that in their essence, objects are what Reynolds called procedural data structures. His observation raises a natural question: if procedural data structures are the essence of objects, has this contributed to the empirical success of objects, and if so, how?\u0000 This essay attempts to answer that question. After reviewing Cook's definition, I propose the term service abstractions to capture the essential nature of objects. This terminology emphasizes, following Kay, that objects are not primarily about representing and manipulating data, but are more about providing services in support of higher-level goals. Using examples taken from object-oriented frameworks, I illustrate the unique design leverage that service abstractions provide: the ability to define abstractions that can be extended, and whose extensions are interoperable in a first-class way. The essay argues that the form of interoperable extension supported by service abstractions is essential to modern software: many modern frameworks and ecosystems could not have been built without service abstractions. In this sense, the success of objects was not a coincidence: it was an inevitable consequence of their service abstraction nature.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"126 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":"128198651","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}
引用次数: 30
One VM to rule them all 一个VM统治所有VM
Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, G. Richards, Doug Simon, M. Wolczko
Building high-performance virtual machines is a complex and expensive undertaking; many popular languages still have low-performance implementations. We describe a new approach to virtual machine (VM) construction that amortizes much of the effort in initial construction by allowing new languages to be implemented with modest additional effort. The approach relies on abstract syntax tree (AST) interpretation where a node can rewrite itself to a more specialized or more general node, together with an optimizing compiler that exploits the structure of the interpreter. The compiler uses speculative assumptions and deoptimization in order to produce efficient machine code. Our initial experience suggests that high performance is attainable while preserving a modular and layered architecture, and that new high-performance language implementations can be obtained by writing little more than a stylized interpreter.
构建高性能虚拟机是一项复杂而昂贵的工作;许多流行的语言仍然有低性能的实现。我们描述了一种构建虚拟机(VM)的新方法,通过允许以适度的额外工作来实现新语言,从而摊平了初始构建中的大部分工作。该方法依赖于抽象语法树(AST)解释,其中节点可以将自身重写为更专门化或更通用的节点,并使用利用解释器结构的优化编译器。编译器使用推测性假设和反优化来生成高效的机器码。我们最初的经验表明,在保留模块化和分层体系结构的情况下可以实现高性能,并且可以通过编写一个程式化的解释器来获得新的高性能语言实现。
{"title":"One VM to rule them all","authors":"Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, G. Richards, Doug Simon, M. Wolczko","doi":"10.1145/2509578.2509581","DOIUrl":"https://doi.org/10.1145/2509578.2509581","url":null,"abstract":"Building high-performance virtual machines is a complex and expensive undertaking; many popular languages still have low-performance implementations. We describe a new approach to virtual machine (VM) construction that amortizes much of the effort in initial construction by allowing new languages to be implemented with modest additional effort. The approach relies on abstract syntax tree (AST) interpretation where a node can rewrite itself to a more specialized or more general node, together with an optimizing compiler that exploits the structure of the interpreter. The compiler uses speculative assumptions and deoptimization in order to produce efficient machine code. Our initial experience suggests that high performance is attainable while preserving a modular and layered architecture, and that new high-performance language implementations can be obtained by writing little more than a stylized interpreter.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"233 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":"131512477","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}
引用次数: 311
Usable security as a static-analysis problem: modeling and reasoning about user permissions in social-sharing systems 可用安全性作为一个静态分析问题:社交共享系统中用户权限的建模和推理
Hannah Quay-de la Vallee, James M. Walsh, William Zimrin, Kathi Fisler, S. Krishnamurthi
The privacy policies of many websites, especially those designed for sharing data, are a product of many inputs. They are defined by the program underlying the website, by user configurations (such as privacy settings), and by the interactions that interfaces enable with the site. A website's security thus depends partly on users' ability to effectively use security mechanisms provided through the interface. Questions about the effectiveness of an interface are typically left to manual evaluation by user-experience experts. However, interfaces are generated by programs and user input is received and processed by programs. This suggests that aspects of usable security could also be approached as a program-analysis problem. This paper establishes a foundation on which to build formal analyses for usable security. We define a formal model for data-sharing websites. We adapt a set of design principles for usable security to modern websites and formalize them with respect to our model. In the formalization, we decompose each principle into two parts: one amenable to formal analysis, and another that requires manual evaluation by a designer. We demonstrate the potential of this approach through a preliminary analysis of models of actual sites.
许多网站的隐私政策,特别是那些为共享数据而设计的隐私政策,是多方投入的产物。它们由网站底层的程序、用户配置(如隐私设置)以及界面与网站的交互来定义。因此,网站的安全性部分取决于用户有效使用通过界面提供的安全机制的能力。关于界面有效性的问题通常留给用户体验专家手动评估。然而,接口是由程序产生的,用户输入是由程序接收和处理的。这表明可用安全性的各个方面也可以作为程序分析问题来处理。本文为构建可用安全性的形式化分析奠定了基础。我们定义了一个数据共享网站的正式模型。我们为现代网站的可用安全性调整了一套设计原则,并根据我们的模型形式化了它们。在形式化中,我们将每个原则分解为两个部分:一个适合形式化分析,另一个需要设计者手动评估。我们通过对实际场地的模型进行初步分析,证明了这种方法的潜力。
{"title":"Usable security as a static-analysis problem: modeling and reasoning about user permissions in social-sharing systems","authors":"Hannah Quay-de la Vallee, James M. Walsh, William Zimrin, Kathi Fisler, S. Krishnamurthi","doi":"10.1145/2509578.2509589","DOIUrl":"https://doi.org/10.1145/2509578.2509589","url":null,"abstract":"The privacy policies of many websites, especially those designed for sharing data, are a product of many inputs. They are defined by the program underlying the website, by user configurations (such as privacy settings), and by the interactions that interfaces enable with the site. A website's security thus depends partly on users' ability to effectively use security mechanisms provided through the interface.\u0000 Questions about the effectiveness of an interface are typically left to manual evaluation by user-experience experts. However, interfaces are generated by programs and user input is received and processed by programs. This suggests that aspects of usable security could also be approached as a program-analysis problem.\u0000 This paper establishes a foundation on which to build formal analyses for usable security. We define a formal model for data-sharing websites. We adapt a set of design principles for usable security to modern websites and formalize them with respect to our model. In the formalization, we decompose each principle into two parts: one amenable to formal analysis, and another that requires manual evaluation by a designer. We demonstrate the potential of this approach through a preliminary analysis of models of actual sites.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"4 5 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":"124291511","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}
引用次数: 3
Model-based, event-driven programming paradigm for interactive web applications 交互式web应用程序的基于模型、事件驱动的编程范例
Aleksandar Milicevic, D. Jackson, Miloš Gligorić, D. Marinov
Applications are increasingly distributed and event-driven. Advances in web frameworks have made it easier to program standalone servers and their clients, but these applications remain hard to write. A model-based programming paradigm is proposed that allows a programmer to represent a distributed application as if it were a simple sequential program, with atomic actions updating a single, shared global state. A runtime environment executes the program on a collection of clients and servers, automatically handling (and hiding from the programmer) complications such as network communication (including server push), serialization, concurrency and races, persistent storage of data, and queuing and coordination of events.
应用程序越来越多地是分布式和事件驱动的。web框架的进步使得编写独立服务器及其客户端变得更加容易,但是这些应用程序仍然很难编写。提出了一种基于模型的编程范例,它允许程序员将分布式应用程序表示为一个简单的顺序程序,并使用原子操作更新单个共享的全局状态。运行时环境在一组客户机和服务器上执行程序,自动处理(并对程序员隐藏)诸如网络通信(包括服务器推送)、序列化、并发和竞争、数据的持久存储以及事件的排队和协调等复杂问题。
{"title":"Model-based, event-driven programming paradigm for interactive web applications","authors":"Aleksandar Milicevic, D. Jackson, Miloš Gligorić, D. Marinov","doi":"10.1145/2509578.2509588","DOIUrl":"https://doi.org/10.1145/2509578.2509588","url":null,"abstract":"Applications are increasingly distributed and event-driven. Advances in web frameworks have made it easier to program standalone servers and their clients, but these applications remain hard to write. A model-based programming paradigm is proposed that allows a programmer to represent a distributed application as if it were a simple sequential program, with atomic actions updating a single, shared global state. A runtime environment executes the program on a collection of clients and servers, automatically handling (and hiding from the programmer) complications such as network communication (including server push), serialization, concurrency and races, persistent storage of data, and queuing and coordination of events.","PeriodicalId":168332,"journal":{"name":"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software","volume":"1 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":"131899846","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}
引用次数: 24
期刊
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