Proceedings of the 10th ACM Symposium on Dynamic languages最新文献

筛选
英文 中文
Proceedings of the 10th ACM Symposium on Dynamic languages 第10届美国计算机学会动态语言研讨会论文集
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-20 DOI: 10.1145/2661088
A. Black, L. Tratt
{"title":"Proceedings of the 10th ACM Symposium on Dynamic languages","authors":"A. Black, L. Tratt","doi":"10.1145/2661088","DOIUrl":"https://doi.org/10.1145/2661088","url":null,"abstract":"The 10th Dynamic Languages Symposium (DLS) at SPLASH 2014 is the premier forum for researchers and practitioners to share knowledge and research on dynamic languages, their implementation, and applications. The influence of dynamic languages -- from Lisp to Smalltalk to Python to Javascript -- on real-world practice and research continues to grow. \u0000 \u0000This year DLS received 28 high quality submissions, of which 13 have been accepted for presentation. The Program Committee were active in their discussions, not only selecting good papers but helping those papers improve via the two-round process employed this year. We believe many papers benefited from this process. However, that this year's DLS has accepted more papers than any previous year is more directly a consequence of the high quality submissions we received. Research in this area is at its most active for many years, and the volume and quality of outputs reflects that. \u0000 \u0000We are lucky this year to have an intriguing invited talk from Stefan Hanenberg, which will be followed by technical sessions. There is surely something in the list of accepted papers for everyone with an interest in dynamic languages!","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"30 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127056875","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
Dynamic detection of object capability violations through model checking 通过模型检查动态检测对象能力违例
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-14 DOI: 10.1145/2661088.2661099
Dustin Rhodes, Tim Disney, C. Flanagan
{"title":"Dynamic detection of object capability violations through model checking","authors":"Dustin Rhodes, Tim Disney, C. Flanagan","doi":"10.1145/2661088.2661099","DOIUrl":"https://doi.org/10.1145/2661088.2661099","url":null,"abstract":"In this paper we present a new tool called DOCaT (Dynamic Object Capability Tracer), a model checker for JavaScript that detects capability leaks in an object capability system. DOCaT includes an editor that highlights the sections of code that can be potentially transferred to untrusted third-party code along with a trace showing how the code could be leaked in an actual execution. This code highlighting provides a simple way of visualizing the references untrusted code potentially has access to and helps programmers to discover if their code is leaking more capabilities then required. DOCaT is implemented using a combination of source code rewriting (using Sweet.js, a JavaScript macro system), dynamic behavioral intercession (Proxies, introduced in ES6, the most recent version of JavaScript), and model checking. Together these methods are able to locate common ways for untrusted code to elevate its authority.","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"79 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127589052","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
Using JavaScript and WebCL for numerical computations: a comparative study of native and web technologies 使用JavaScript和WebCL进行数值计算:原生技术和web技术的比较研究
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-14 DOI: 10.1145/2661088.2661090
Faiz Khan, Vincent Foley-Bourgon, Sujay Kathrotia, Erick Lavoie, L. Hendren
{"title":"Using JavaScript and WebCL for numerical computations: a comparative study of native and web technologies","authors":"Faiz Khan, Vincent Foley-Bourgon, Sujay Kathrotia, Erick Lavoie, L. Hendren","doi":"10.1145/2661088.2661090","DOIUrl":"https://doi.org/10.1145/2661088.2661090","url":null,"abstract":"From its modest beginnings as a tool to validate forms, JavaScript is now an industrial-strength language used to power online applications such as spreadsheets, IDEs, image editors and even 3D games. Since all modern web browsers support JavaScript, it provides a medium that is both easy to distribute for developers and easy to access for users. This paper provides empirical data to answer the question: Is JavaScript fast enough for numerical computations? By measuring and comparing the runtime performance of benchmarks representative of a wide variety of scientific applications, we show that sequential JavaScript is within a factor of 2 of native code. Parallel code using WebCL shows speed improvements of up to 2.28 over JavaScript for the majority of the benchmarks.","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125972627","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
On the use of type predicates in object-oriented software: the case of smalltalk 论面向对象软件中类型谓词的使用:以smalltalk为例
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-14 DOI: 10.1145/2661088.2661091
Oscar Callaú, R. Robbes, É. Tanter, David Röthlisberger, Alexandre Bergel
{"title":"On the use of type predicates in object-oriented software: the case of smalltalk","authors":"Oscar Callaú, R. Robbes, É. Tanter, David Röthlisberger, Alexandre Bergel","doi":"10.1145/2661088.2661091","DOIUrl":"https://doi.org/10.1145/2661088.2661091","url":null,"abstract":"Object-orientation relies on polymorphism to express behavioral variants. As opposed to traditional procedural design, explicit type-based conditionals should be avoided. This message is conveyed in introductory material on object orientation, as well as in object-oriented reengineering patterns. Is this principle followed in practice? In other words, are type predicates actually used in object-oriented software, and if so, to which extent? Answering these questions will assist practitioners and researchers with providing information about the state of the practice, and informing the active research program of retrofitting type systems, clarifying whether complex flow-sensitive typing approaches are necessary. Other areas, such as refactoring and teaching object orientation, can also benefit from empirical evidence on the matter. We report on a study of the use of type predicates in a large base of over 4 million lines of Smalltalk code. Our study shows that type predicates are in fact widely used to do explicit type dispatch, suggesting that flow-sensitive typing approaches are necessary for a type system retrofitted for a dynamic object-oriented language.","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"130 17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132702951","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
SqueakJS: a modern and practical smalltalk that runs in any browser SqueakJS:一个现代和实用的聊天工具,可以在任何浏览器中运行
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-14 DOI: 10.1145/2661088.2661100
B. Freudenberg, D. Ingalls, T. Felgentreff, Tobias Pape, R. Hirschfeld
{"title":"SqueakJS: a modern and practical smalltalk that runs in any browser","authors":"B. Freudenberg, D. Ingalls, T. Felgentreff, Tobias Pape, R. Hirschfeld","doi":"10.1145/2661088.2661100","DOIUrl":"https://doi.org/10.1145/2661088.2661100","url":null,"abstract":"We report our experience in implementing SqueakJS, a bit-compatible implementation of Squeak/Smalltalk written in pure JavaScript. SqueakJS runs entirely in the Web browser with a virtual filesystem that can be directed to a server or client-side storage. Our implementation is notable for simplicity and performance gained through adaptation to the host object memory and deployment leverage gained through the Lively Web development environment. We present several novel techniques as well as performance measurements for the resulting virtual machine. Much of this experience is potentially relevant to preserving other dynamic language systems and making them available in a browser-based environment.","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122579013","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}
引用次数: 13
Dynamic page sharing optimization for the R language R语言的动态页面共享优化
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-14 DOI: 10.1145/2661088.2661094
Helena Kotthaus, Ingo Korb, M. Engel, P. Marwedel
{"title":"Dynamic page sharing optimization for the R language","authors":"Helena Kotthaus, Ingo Korb, M. Engel, P. Marwedel","doi":"10.1145/2661088.2661094","DOIUrl":"https://doi.org/10.1145/2661088.2661094","url":null,"abstract":"Dynamic languages such as R are increasingly used to process .large data sets. Here, the R interpreter induces a large memory overhead due to wasteful memory allocation policies. If an application's working set exceeds the available physical memory, the OS starts to swap, resulting in slowdowns of a several orders of magnitude. Thus, memory optimizations for R will be beneficial to many applications. Existing R optimizations are mostly based on dynamic compilation or native libraries. Both methods are futile when the OS starts to page out memory. So far, only a few, data-type or application specific memory optimizations for R exist. To remedy this situation, we present a low-overhead page sharing approach for R that significantly reduces the interpreter's memory overhead. Concentrating on the most rewarding optimizations avoids the high runtime overhead of existing generic approaches for memory deduplication or compression. In addition, by applying knowledge of interpreter data structures and memory allocation patterns, our approach is not constrained to specific R applications and is transparent to the R interpreter. Our page sharing optimization enables us to reduce the memory consumption by up to 53.5% with an average of 18.0% for a set of real-world R benchmarks with a runtime overhead of only 5.3% on average. In cases where page I/O can be avoided, significant speedups are achieved.","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115517524","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}
引用次数: 12
ACDC-JS: explorative benchmarking of javascript memory management ACDC-JS: javascript内存管理的探索性基准测试
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-14 DOI: 10.1145/2661088.2661089
M. Aigner, Thomas Hütter, C. Kirsch, Alexander Miller, H. Payer, M. Preishuber
{"title":"ACDC-JS: explorative benchmarking of javascript memory management","authors":"M. Aigner, Thomas Hütter, C. Kirsch, Alexander Miller, H. Payer, M. Preishuber","doi":"10.1145/2661088.2661089","DOIUrl":"https://doi.org/10.1145/2661088.2661089","url":null,"abstract":"We present ACDC-JS, an open-source JavaScript memory management benchmarking tool. ACDC-JS incorporates a heap model based on real web applications and may be configured to expose virtually any relevant performance characteristics of JavaScript memory management systems. ACDC-JS is based on ACDC, a benchmarking tool for C/C++ that models periodic allocation and deallocation behavior (AC) as well as persistent memory (DC). We identify important characteristics of JavaScript mutator behavior and propose a configurable heap model based on typical distributions of these characteristics as foundation for ACDC-JS. We describe heap analyses of 13 real web applications extending existing work on JavaScript behavior analysis. Our experimental results show that ACDC-JS enables performance benchmarking and debugging of state-of-the-art JavaScript virtual machines such as V8 and SpiderMonkey by exposing key aspects of their memory management performance.","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121578410","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}
引用次数: 7
Design and evaluation of gradual typing for python python渐进式类型的设计与评价
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-14 DOI: 10.1145/2661088.2661101
Michael M. Vitousek, A. Kent, Jeremy G. Siek, J. Baker
{"title":"Design and evaluation of gradual typing for python","authors":"Michael M. Vitousek, A. Kent, Jeremy G. Siek, J. Baker","doi":"10.1145/2661088.2661101","DOIUrl":"https://doi.org/10.1145/2661088.2661101","url":null,"abstract":"Combining static and dynamic typing within the same language offers clear benefits to programmers. It provides dynamic typing in situations that require rapid prototyping, heterogeneous data structures, and reflection, while supporting static typing when safety, modularity, and efficiency are primary concerns. Siek and Taha (2006) introduced an approach to combining static and dynamic typing in a fine-grained manner through the notion of type consistency in the static semantics and run-time casts in the dynamic semantics. However, many open questions remain regarding the semantics of gradually typed languages. In this paper we present Reticulated Python, a system for experimenting with gradual-typed dialects of Python. The dialects are syntactically identical to Python 3 but give static and dynamic semantics to the type annotations already present in Python 3. Reticulated Python consists of a typechecker and a source-to-source translator from Reticulated Python to Python 3. Using Reticulated Python, we evaluate a gradual type system and three approaches to the dynamic semantics of mutable objects: the traditional semantics based on Siek and Taha (2007) and Herman et al. (2007) and two new designs. We evaluate these designs in the context of several third-party Python programs.","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116422021","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}
引用次数: 129
Contracts for domain-specific languages in Ruby Ruby中特定领域语言的契约
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-14 DOI: 10.1145/2661088.2661092
T. Stephen Strickland, Brianna M. Ren, Jeffrey S. Foster
{"title":"Contracts for domain-specific languages in Ruby","authors":"T. Stephen Strickland, Brianna M. Ren, Jeffrey S. Foster","doi":"10.1145/2661088.2661092","DOIUrl":"https://doi.org/10.1145/2661088.2661092","url":null,"abstract":"This paper concerns object-oriented embedded DSLs, which are popular in the Ruby community but have received little attention in the research literature. Ruby DSLs implement language keywords as implicit method calls to self; language structure is enforced by adjusting which object is bound to self in different scopes. While Ruby DSLs are powerful and elegant, they suffer from a lack of specification. In this paper, we introduce contracts for Ruby DSLs, which allow us to attribute blame appropriately when there are inconsistencies between an implementation and client. We formalize Ruby DSL contract checking in DSL, a core calculus that uses premethods with instance evaluation to enforce contracts. We then describe RDL, an implementation of Ruby DSL contracts. Finally, we present two tools that automatically infer RDL contracts: TypeInfer infers simple, type-like contracts based on observed method calls, and DSLInfer infers DSL keyword scopes and nesting by generating and testing candidate DSL usages based on initial examples. The type contracts generated by TypeInfer work well enough, though they are limited in precision by the small number of tests, while DSLInfer finds almost all DSL structure. Our goal is to help users understand a DSL from example programs.","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"152 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132685602","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
Typed objects in JavaScript JavaScript中的类型化对象
Proceedings of the 10th ACM Symposium on Dynamic languages Pub Date : 2014-10-14 DOI: 10.1145/2661088.2661095
Nicholas D. Matsakis, David Herman, Dmitry Lomov
{"title":"Typed objects in JavaScript","authors":"Nicholas D. Matsakis, David Herman, Dmitry Lomov","doi":"10.1145/2661088.2661095","DOIUrl":"https://doi.org/10.1145/2661088.2661095","url":null,"abstract":"JavaScript's typed arrays have proven to be a crucial API for many JS applications, particularly those working with large amounts of data or emulating other languages. Unfortunately, the current typed array API offers no means of abstraction. Programmers are supplied with a simple byte buffer that can be viewed as an array of integers or floats, but nothing more. This paper presents a generalization of the typed arrays API entitled typed objects. The typed objects API is slated for inclusion in the upcoming ES7 standard. The API gives users the ability to define named types, making typed arrays much easier to work with. In particular, it is often trivial to replace uses of existing JavaScript objects with typed objects, resulting in better memory consumption and more predictable performance. The advantages of the typed object specification go beyond convenience, however. By supporting opacity---that is, the ability to deny access to the raw bytes of a typed object---the new typed object specification makes it possible to store objects as well as scalar data and also enables more optimization by JIT compilers.","PeriodicalId":244838,"journal":{"name":"Proceedings of the 10th ACM Symposium on Dynamic languages","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131046477","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}
引用次数: 2
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信