首页 > 最新文献

Summit on Advances in Programming Languages最新文献

英文 中文
What is a Secure Programming Language? 什么是安全编程语言?
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2019.3
C. Cifuentes, G. Bierman
Our most sensitive and important software systems are written in programming languages that are inherently insecure, making the security of the systems themselves extremely challenging. It is often said that these systems were written with the best tools available at the time, so over time with newer languages will come more security. But we contend that all of today’s mainstream programming languages are insecure, including even the most recent ones that come with claims that they are designed to be “secure”. Our real criticism is the lack of a common understanding of what “secure” might mean in the context of programming language design. We propose a simple data-driven definition for a secure programming language: that it provides first-class language support to address the causes for the most common, significant vulnerabilities found in real-world software. To discover what these vulnerabilities actually are, we have analysed the National Vulnerability Database and devised a novel categorisation of the software defects reported in the database. This leads us to propose three broad categories, which account for over 50% of all reported software vulnerabilities, that as a minimum any secure language should address. While most mainstream languages address at least one of these categories, interestingly, we find that none address all three. Looking at today’s real-world software systems, we observe a paradigm shift in design and implementation towards service-oriented architectures, such as microservices. Such systems consist of many fine-grained processes, typically implemented in multiple languages, that communicate over the network using simple web-based protocols, often relying on multiple software environments such as databases. In traditional software systems, these features are the most common locations for security vulnerabilities, and so are often kept internal to the system. In microservice systems, these features are no longer internal but external, and now represent the attack surface of the software system as a whole. The need for secure programming languages is probably greater now than it has ever been.
我们最敏感和最重要的软件系统是用编程语言编写的,这些语言本质上是不安全的,这使得系统本身的安全性极具挑战性。人们常说,这些系统是用当时可用的最佳工具编写的,因此随着时间的推移,使用更新的语言将带来更多的安全性。但是我们认为,今天所有的主流编程语言都是不安全的,甚至包括那些声称它们被设计为“安全”的最新语言。我们真正的批评是缺乏对“安全”在编程语言设计上下文中可能意味着什么的共同理解。我们为安全编程语言提出了一个简单的数据驱动定义:它提供一流的语言支持,以解决在现实软件中发现的最常见、最重要的漏洞的原因。为了发现这些漏洞究竟是什么,我们分析了国家漏洞数据库,并设计了一个新的数据库中报告的软件缺陷分类。这导致我们提出了三大类,它们占所有报告的软件漏洞的50%以上,这是任何安全语言至少应该解决的问题。虽然大多数主流语言至少能解决其中一个问题,但有趣的是,我们发现没有一个语言能同时解决这三个问题。看看当今现实世界的软件系统,我们观察到设计和实现向面向服务的体系结构(如微服务)的范式转变。这样的系统由许多细粒度的进程组成,通常用多种语言实现,使用简单的基于web的协议在网络上进行通信,通常依赖于数据库等多种软件环境。在传统的软件系统中,这些特性是安全漏洞最常见的位置,因此通常保留在系统内部。在微服务系统中,这些特征不再是内部的,而是外部的,现在代表了整个软件系统的攻击面。现在对安全编程语言的需求可能比以往任何时候都要大。
{"title":"What is a Secure Programming Language?","authors":"C. Cifuentes, G. Bierman","doi":"10.4230/LIPIcs.SNAPL.2019.3","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2019.3","url":null,"abstract":"Our most sensitive and important software systems are written in programming languages that are inherently insecure, making the security of the systems themselves extremely challenging. It is often said that these systems were written with the best tools available at the time, so over time with newer languages will come more security. But we contend that all of today’s mainstream programming languages are insecure, including even the most recent ones that come with claims that they are designed to be “secure”. Our real criticism is the lack of a common understanding of what “secure” might mean in the context of programming language design. We propose a simple data-driven definition for a secure programming language: that it provides first-class language support to address the causes for the most common, significant vulnerabilities found in real-world software. To discover what these vulnerabilities actually are, we have analysed the National Vulnerability Database and devised a novel categorisation of the software defects reported in the database. This leads us to propose three broad categories, which account for over 50% of all reported software vulnerabilities, that as a minimum any secure language should address. While most mainstream languages address at least one of these categories, interestingly, we find that none address all three. Looking at today’s real-world software systems, we observe a paradigm shift in design and implementation towards service-oriented architectures, such as microservices. Such systems consist of many fine-grained processes, typically implemented in multiple languages, that communicate over the network using simple web-based protocols, often relying on multiple software environments such as databases. In traditional software systems, these features are the most common locations for security vulnerabilities, and so are often kept internal to the system. In microservice systems, these features are no longer internal but external, and now represent the attack surface of the software system as a whole. The need for secure programming languages is probably greater now than it has ever been.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114839213","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}
引用次数: 6
Go Meta! A Case for Generative Programming and DSLs in Performance Critical Systems 去元!性能关键系统中生成式编程和dsl的案例
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2015.238
Tiark Rompf, Kevin J. Brown, HyoukJoong Lee, Arvind K. Sujeeth, Manohar Jonnalagedda, Nada Amin, Georg Ofenbeck, A. Stojanov, Yannis Klonatos, Mohammad Dashti, Christoph E. Koch, Markus Püschel, K. Olukotun
Most performance critical software is developed using very low-level techniques. We argue that this needs to change, and that generative programming is an effective avenue to enable the use of high-level languages and programming techniques in many such circumstances.
大多数性能关键型软件都是使用非常低级的技术开发的。我们认为这种情况需要改变,生成式编程是在许多这样的情况下使用高级语言和编程技术的有效途径。
{"title":"Go Meta! A Case for Generative Programming and DSLs in Performance Critical Systems","authors":"Tiark Rompf, Kevin J. Brown, HyoukJoong Lee, Arvind K. Sujeeth, Manohar Jonnalagedda, Nada Amin, Georg Ofenbeck, A. Stojanov, Yannis Klonatos, Mohammad Dashti, Christoph E. Koch, Markus Püschel, K. Olukotun","doi":"10.4230/LIPIcs.SNAPL.2015.238","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.238","url":null,"abstract":"Most performance critical software is developed using very low-level techniques. We argue that this needs to change, and that generative programming is an effective avenue to enable the use of high-level languages and programming techniques in many such circumstances.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123634263","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
Yedalog: Exploring Knowledge at Scale Yedalog:大规模探索知识
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2015.63
Brian Chin, D. V. Dincklage, V. Ercegovac, Peter Hawkins, Mark S. Miller, F. Och, Christopher Olston, Fernando C Pereira
With huge progress on data processing frameworks, human programmers are frequently the bottleneck when analyzing large repositories of data. We introduce Yedalog, a declarative programming language that allows programmers to mix data-parallel pipelines and computation seamlessly in a single language. By contrast, most existing tools for data-parallel computation embed a sublanguage of data-parallel pipelines in a general-purpose language, or vice versa. Yedalog extends Datalog, incorporating not only computational features from logic programming, but also features for working with data structured as nested records. Yedalog programs can run both on a single machine, and distributed across a cluster in batch and interactive modes, allowing programmers to mix dierent modes of execution easily. 1998 ACM Subject Classification D.3.2 Data-flow languages, Constraint and Logic Languages
随着数据处理框架的巨大进步,在分析大型数据存储库时,人类程序员经常成为瓶颈。我们介绍Yedalog,一种声明式编程语言,它允许程序员在一种语言中无缝地混合数据并行管道和计算。相比之下,大多数现有的数据并行计算工具在通用语言中嵌入数据并行管道的子语言,反之亦然。Yedalog扩展了Datalog,不仅包含了逻辑编程的计算特性,还包含了处理作为嵌套记录结构的数据的特性。Yedalog程序既可以在单台机器上运行,也可以以批处理和交互模式分布在集群上,允许程序员轻松地混合不同的执行模式。1998 ACM学科分类D.3.2数据流语言、约束和逻辑语言
{"title":"Yedalog: Exploring Knowledge at Scale","authors":"Brian Chin, D. V. Dincklage, V. Ercegovac, Peter Hawkins, Mark S. Miller, F. Och, Christopher Olston, Fernando C Pereira","doi":"10.4230/LIPIcs.SNAPL.2015.63","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.63","url":null,"abstract":"With huge progress on data processing frameworks, human programmers are frequently the bottleneck when analyzing large repositories of data. We introduce Yedalog, a declarative programming language that allows programmers to mix data-parallel pipelines and computation seamlessly in a single language. By contrast, most existing tools for data-parallel computation embed a sublanguage of data-parallel pipelines in a general-purpose language, or vice versa. Yedalog extends Datalog, incorporating not only computational features from logic programming, but also features for working with data structured as nested records. Yedalog programs can run both on a single machine, and distributed across a cluster in batch and interactive modes, allowing programmers to mix dierent modes of execution easily. 1998 ACM Subject Classification D.3.2 Data-flow languages, Constraint and Logic Languages","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129727994","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}
引用次数: 33
A Tour of Gallifrey, a Language for Geodistributed Programming 加利弗里之旅,一种地理分布编程语言
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2019.11
Mae Milano, Rolph Recto, Tom Magrino, A. Myers
Programming efficient distributed, concurrent systems requires new abstractions that go beyond traditional sequential programming. But programmers already have trouble getting sequential code right, so simplicity is essential. The core problem is that low-latency, high-availability access to data requires replication of mutable state. Keeping replicas fully consistent is expensive, so the question is how to expose asynchronously replicated objects to programmers in a way that allows them to reason simply about their code. We propose an answer to this question in our ongoing work designing a new language, Gallifrey, which provides orthogonal replication through restrictions with merge strategies , contingencies for conflicts arising from concurrency, and branches , a novel concurrency control construct inspired by version control, to contain provisional behavior
编写高效的分布式并发系统需要超越传统顺序编程的新抽象。但是程序员已经很难正确编写顺序代码,所以简单性是必不可少的。核心问题是,对数据的低延迟、高可用性访问需要复制可变状态。保持副本完全一致的成本很高,因此问题是如何向程序员公开异步复制的对象,使他们能够简单地推断自己的代码。我们在正在进行的设计新语言Gallifrey的工作中提出了这个问题的答案,Gallifrey通过合并策略的限制、并发性引起的冲突的偶然性和分支(受版本控制启发的新型并发控制构造)来提供正交复制,以包含临时行为
{"title":"A Tour of Gallifrey, a Language for Geodistributed Programming","authors":"Mae Milano, Rolph Recto, Tom Magrino, A. Myers","doi":"10.4230/LIPIcs.SNAPL.2019.11","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2019.11","url":null,"abstract":"Programming efficient distributed, concurrent systems requires new abstractions that go beyond traditional sequential programming. But programmers already have trouble getting sequential code right, so simplicity is essential. The core problem is that low-latency, high-availability access to data requires replication of mutable state. Keeping replicas fully consistent is expensive, so the question is how to expose asynchronously replicated objects to programmers in a way that allows them to reason simply about their code. We propose an answer to this question in our ongoing work designing a new language, Gallifrey, which provides orthogonal replication through restrictions with merge strategies , contingencies for conflicts arising from concurrency, and branches , a novel concurrency control construct inspired by version control, to contain provisional behavior","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125088538","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
Title, Table of Contents, Preface, List of Authors 标题,目录,前言,作者名单
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2015.i
Thomas M. Ball, R. Bodík, S. Krishnamurthi, Benjamin S. Lerner, Greg Morriset
{"title":"Title, Table of Contents, Preface, List of Authors","authors":"Thomas M. Ball, R. Bodík, S. Krishnamurthi, Benjamin S. Lerner, Greg Morriset","doi":"10.4230/LIPIcs.SNAPL.2015.i","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.i","url":null,"abstract":"","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114138569","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
A Theory AB Toolbox AB理论工具箱
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2015.129
Marco Gaboardi, Justin Hsu
Randomized algorithms are a staple of the theoretical computer science literature. By careful use of randomness, algorithms can achieve properties that are simply not possible with deterministic algorithms. Today, these properties are proved on paper, by theoretical computer scientists; we investigate formally verifying these proofs. The main challenges are two: proofs about algorithms can be quite complex, using various facts from probability theory; and proofs are highly customized - two proofs of the same property for two algorithms can be completely different. To overcome these challenges, we propose taking inspiration from paper proofs, by building common tools - abstractions, reasoning principles, perhaps even notations - into a formal verification toolbox. To give an idea of our approach, we consider three common patterns in paper proofs: the union bound, concentration bounds, and martingale arguments.
随机算法是理论计算机科学文献的主要内容。通过谨慎地使用随机性,算法可以实现确定性算法根本无法实现的特性。今天,理论计算机科学家在纸上证明了这些特性;我们研究正式验证这些证明。主要的挑战有两个:关于算法的证明可能非常复杂,需要使用概率论中的各种事实;而且证明是高度自定义的——两个算法的相同性质的两个证明可以完全不同。为了克服这些挑战,我们建议从纸质证明中获得灵感,通过构建通用工具——抽象、推理原则,甚至可能是符号——到正式的验证工具箱中。为了说明我们的方法,我们考虑了纸上证明的三种常见模式:联合界、集中界和鞅论证。
{"title":"A Theory AB Toolbox","authors":"Marco Gaboardi, Justin Hsu","doi":"10.4230/LIPIcs.SNAPL.2015.129","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.129","url":null,"abstract":"Randomized algorithms are a staple of the theoretical computer science literature. By careful use of randomness, algorithms can achieve properties that are simply not possible with deterministic algorithms. Today, these properties are proved on paper, by theoretical computer scientists; we investigate formally verifying these proofs. \u0000 \u0000The main challenges are two: proofs about algorithms can be quite complex, using various facts from probability theory; and proofs are highly customized - two proofs of the same property for two algorithms can be completely different. To overcome these challenges, we propose taking inspiration from paper proofs, by building common tools - abstractions, reasoning principles, perhaps even notations - into a formal verification toolbox. To give an idea of our approach, we consider three common patterns in paper proofs: the union bound, concentration bounds, and martingale arguments.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129403396","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
Taming the Static Analysis Beast 驯服静态分析野兽
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2017.18
J. Toman, D. Grossman
While industrial-strength static analysis over large, real-world codebases has become commonplace, so too have difficult-to-analyze language constructs, large libraries, and popular frameworks. These features make constructing and evaluating a novel, sound analysis painful, error-prone, and tedious. We motivate the need for research to address these issues by highlighting some of the many challenges faced by static analysis developers in today's software ecosystem. We then propose our short- and long-term research agenda to make static analysis over modern software less burdensome.
虽然对大型实际代码库进行工业强度的静态分析已经变得司空见惯,但难以分析的语言结构、大型库和流行框架也是如此。这些特性使得构建和评估一个新颖、合理的分析变得痛苦、容易出错和乏味。我们通过强调静态分析开发人员在当今的软件生态系统中所面临的许多挑战,激发了解决这些问题的研究需求。然后,我们提出了我们的短期和长期研究议程,以使现代软件上的静态分析减少负担。
{"title":"Taming the Static Analysis Beast","authors":"J. Toman, D. Grossman","doi":"10.4230/LIPIcs.SNAPL.2017.18","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2017.18","url":null,"abstract":"While industrial-strength static analysis over large, real-world codebases has become commonplace, so too have difficult-to-analyze language constructs, large libraries, and popular frameworks. These features make constructing and evaluating a novel, sound analysis painful, error-prone, and tedious. We motivate the need for research to address these issues by highlighting some of the many challenges faced by static analysis developers in today's software ecosystem. We then propose our short- and long-term research agenda to make static analysis over modern software less burdensome.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129837259","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}
引用次数: 20
Coupling Memory and Computation for Locality Management 局部性管理的耦合内存和计算
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2015.1
Umut A. Acar, G. Blelloch, M. Fluet, Stefan K. Muller, R. Raghunathan
We articulate the need for managing (data) locality automatically rather than leaving it to the programmer, especially in parallel programming systems. To this end, we propose techniques for coupling tightly the computation (including the thread scheduler) and the memory manager so that data and computation can be positioned closely in hardware. Such tight coupling of computation and memory management is in sharp contrast with the prevailing practice of considering each in isolation. For example, memory-management techniques usually abstract the computation as an unknown "mutator", which is treated as a "black box". As an example of the approach, in this paper we consider a specific class of parallel computations, nested-parallel computations. Such computations dynamically create a nesting of parallel tasks. We propose a method for organizing memory as a tree of heaps reflecting the structure of the nesting. More specifically, our approach creates a heap for a task if it is separately scheduled on a processor. This allows us to couple garbage collection with the structure of the computation and the way in which it is dynamically scheduled on the processors. This coupling enables taking advantage of locality in the program by mapping it to the locality of the hardware. For example for improved locality a heap can be garbage collected immediately after its task finishes when the heap contents is likely in cache.
我们阐明了自动管理(数据)局部性的需要,而不是把它留给程序员,尤其是在并行编程系统中。为此,我们提出了将计算(包括线程调度器)和内存管理器紧密耦合的技术,以便数据和计算可以紧密地定位在硬件中。计算和内存管理的这种紧密耦合与孤立地考虑两者的流行做法形成鲜明对比。例如,内存管理技术通常将计算抽象为未知的“mutator”,将其视为“黑匣子”。作为该方法的一个例子,在本文中我们考虑了一类特殊的并行计算,嵌套并行计算。这种计算动态地创建并行任务的嵌套。我们提出了一种将内存组织为反映嵌套结构的堆树的方法。更具体地说,如果任务在处理器上单独调度,我们的方法会为任务创建一个堆。这允许我们将垃圾收集与计算结构以及在处理器上动态调度的方式结合起来。这种耦合可以通过将程序映射到硬件的局部性来利用程序中的局部性。例如,为了改进局部性,可以在堆内容可能在缓存中时,在其任务完成后立即对堆进行垃圾收集。
{"title":"Coupling Memory and Computation for Locality Management","authors":"Umut A. Acar, G. Blelloch, M. Fluet, Stefan K. Muller, R. Raghunathan","doi":"10.4230/LIPIcs.SNAPL.2015.1","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.1","url":null,"abstract":"We articulate the need for managing (data) locality automatically rather than leaving it to the programmer, especially in parallel programming systems. To this end, we propose techniques for coupling tightly the computation (including the thread scheduler) and the memory manager so that data and computation can be positioned closely in hardware. Such tight coupling of computation and memory management is in sharp contrast with the prevailing practice of considering each in isolation. For example, memory-management techniques usually abstract the computation as an unknown \"mutator\", which is treated as a \"black box\". As an example of the approach, in this paper we consider a specific class of parallel computations, nested-parallel computations. Such computations dynamically create a nesting of parallel tasks. We propose a method for organizing memory as a tree of heaps reflecting the structure of the nesting. More specifically, our approach creates a heap for a task if it is separately scheduled on a processor. This allows us to couple garbage collection with the structure of the computation and the way in which it is dynamically scheduled on the processors. This coupling enables taking advantage of locality in the program by mapping it to the locality of the hardware. For example for improved locality a heap can be garbage collected immediately after its task finishes when the heap contents is likely in cache.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126853196","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}
引用次数: 6
InterPoll: Crowd-Sourced Internet Polls InterPoll:众包网络民意调查
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2015.156
B. Livshits, Todd Mytkowicz
Crowd-sourcing is increasingly being used to provide answers to online polls and surveys. However, existing systems, while taking care of the mechanics of attracting crowd workers, poll building, and payment, provide little to help the survey-maker or pollster in obtaining statistically significant results devoid of even the obvious selection biases. This paper proposes InterPoll, a platform for programming of crowd-sourced polls. Pollsters express polls as embedded LINQ queries and the runtime correctly reasons about uncertainty in those polls, only polling as many people as required to meet statistical guarantees. To optimize the cost of polls, InterPoll performs query optimization, as well as bias correction and power analysis. The goal of InterPoll is to provide a system that can be reliably used for research into marketing, social and political science questions. This paper highlights some of the existing challenges and how InterPoll is designed to address most of them. In this paper we summarize some of the work we have already done and give an outline for future work.
众包越来越多地被用于提供在线投票和调查的答案。然而,现有的系统虽然照顾到吸引群众工作人员、建立民意调查和支付的机制,但在帮助调查者或民意调查者获得没有明显选择偏见的统计上有意义的结果方面提供的帮助很少。本文提出了一个众包民意调查的编程平台InterPoll。民意测验者将民意测验表达为嵌入式LINQ查询,运行时正确地推断这些民意测验中的不确定性,只对满足统计保证所需的人数进行民意测验。为了优化民意调查的成本,InterPoll执行查询优化,以及偏差校正和功率分析。InterPoll的目标是提供一个可以可靠地用于研究市场营销、社会和政治科学问题的系统。本文重点介绍了目前存在的一些挑战,以及InterPoll是如何设计来解决这些挑战的。本文总结了我们已经做的一些工作,并对今后的工作进行了展望。
{"title":"InterPoll: Crowd-Sourced Internet Polls","authors":"B. Livshits, Todd Mytkowicz","doi":"10.4230/LIPIcs.SNAPL.2015.156","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2015.156","url":null,"abstract":"Crowd-sourcing is increasingly being used to provide answers to online polls and surveys. However, existing systems, while taking care of the mechanics of attracting crowd workers, poll building, and payment, provide little to help the survey-maker or pollster in obtaining statistically significant results devoid of even the obvious selection biases. \u0000 \u0000This paper proposes InterPoll, a platform for programming of crowd-sourced polls. Pollsters express polls as embedded LINQ queries and the runtime correctly reasons about uncertainty in those polls, only polling as many people as required to meet statistical guarantees. To optimize the cost of polls, InterPoll performs query optimization, as well as bias correction and power analysis. The goal of InterPoll is to provide a system that can be reliably used for research into marketing, social and political science questions. \u0000 \u0000This paper highlights some of the existing challenges and how InterPoll is designed to address most of them. \u0000 \u0000In this paper we summarize some of the work we have already done and give an outline for future work.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129645427","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
Let's Fix OpenGL 让我们修复OpenGL
Pub Date : 1900-01-01 DOI: 10.4230/LIPIcs.SNAPL.2017.14
Adrian Sampson
From windowing systems to virtual reality, real-time graphics code is ubiquitous. Programming models for constructing graphics software, however, have largely escaped the attention of programming languages researchers. This essay introduces the programming model of OpenGL, a ubiquitous API for real-time graphics applications, for a language-oriented audience. It highlights six broad problems with the programming model and connects them to traditions in PL research. The issues range from classic pitfalls, where established thinking can apply, to new open problems, where novel research is needed.
从窗口系统到虚拟现实,实时图形代码无处不在。然而,用于构建图形软件的编程模型在很大程度上没有引起编程语言研究者的注意。本文为面向语言的读者介绍了OpenGL的编程模型,OpenGL是一种用于实时图形应用的通用API。它强调了编程模型的六个广泛问题,并将它们与PL研究中的传统联系起来。这些问题的范围从经典的陷阱(既有的思维可以适用)到新的开放问题(需要新颖的研究)。
{"title":"Let's Fix OpenGL","authors":"Adrian Sampson","doi":"10.4230/LIPIcs.SNAPL.2017.14","DOIUrl":"https://doi.org/10.4230/LIPIcs.SNAPL.2017.14","url":null,"abstract":"From windowing systems to virtual reality, real-time graphics code is ubiquitous. Programming models for constructing graphics software, however, have largely escaped the attention of programming languages researchers. This essay introduces the programming model of OpenGL, a ubiquitous API for real-time graphics applications, for a language-oriented audience. It highlights six broad problems with the programming model and connects them to traditions in PL research. The issues range from classic pitfalls, where established thinking can apply, to new open problems, where novel research is needed.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122070143","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}
引用次数: 5
期刊
Summit on Advances in Programming Languages
全部 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