European Conference on Object-Oriented Programming最新文献

筛选
英文 中文
Towards Practical Gradual Typing 走向实用渐进式打字
European Conference on Object-Oriented Programming Pub Date : 2015-07-01 DOI: 10.4230/LIPIcs.ECOOP.2015.4
Asumu Takikawa, Daniel Feltey, Earl Dean, M. Flatt, R. Findler, Sam Tobin-Hochstadt, M. Felleisen
{"title":"Towards Practical Gradual Typing","authors":"Asumu Takikawa, Daniel Feltey, Earl Dean, M. Flatt, R. Findler, Sam Tobin-Hochstadt, M. Felleisen","doi":"10.4230/LIPIcs.ECOOP.2015.4","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2015.4","url":null,"abstract":"Over the past 20 years, programmers have embraced dynamically-typed programming languages. By now, they have also come to realize that programs in these languages lack reliable type information for software engineering purposes. Gradual typing addresses this problem; it empowers programmers to annotate an existing system with sound type information on a piecemeal basis. This paper presents an implementation of a gradual type system for a full-featured class-based language as well as a novel performance evaluation framework for gradual typing.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134378667","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}
引用次数: 37
The Love/Hate Relationship with the C Preprocessor: An Interview Study C预处理器的爱/恨关系:一项访谈研究
European Conference on Object-Oriented Programming Pub Date : 2015-07-01 DOI: 10.4230/LIPIcs.ECOOP.2015.495
Flávio M. Medeiros, Christian Kästner, Márcio Ribeiro, Sarah Nadi, Rohit Gheyi
{"title":"The Love/Hate Relationship with the C Preprocessor: An Interview Study","authors":"Flávio M. Medeiros, Christian Kästner, Márcio Ribeiro, Sarah Nadi, Rohit Gheyi","doi":"10.4230/LIPIcs.ECOOP.2015.495","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2015.495","url":null,"abstract":"The C preprocessor has received strong criticism in academia, among others regarding separation of concerns, error proneness, and code obfuscation, but is widely used in practice. Many (mostly academic) alternatives to the preprocessor exist, but have not been adopted in practice. Since developers continue to use the preprocessor despite all criticism and research, we ask how practitioners perceive the C preprocessor. We performed interviews with 40 developers, used grounded theory to analyze the data, and cross-validated the results with data from a survey among 202 developers, repository mining, and results from previous studies. In particular, we investigated four research questions related to why the preprocessor is still widely used in practice, common problems, alternatives, and the impact of undisciplined annotations. Our study shows that developers are aware of the criticism the C preprocessor receives, but use it nonetheless, mainly for portability and variability. Many developers indicate that they regularly face preprocessor-related problems and preprocessor-related bugs. The majority of our interviewees do not see any current C-native technologies that can entirely replace the C preprocessor. However, developers tend to mitigate problems with guidelines, even though those guidelines are not enforced consistently. We report the key insights gained from our study and discuss implications for practitioners and researchers on how to better use the C preprocessor to minimize its negative impact.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"63 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116299981","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}
引用次数: 80
Optimization Coaching for JavaScript JavaScript优化指导
European Conference on Object-Oriented Programming Pub Date : 2015-07-01 DOI: 10.4230/LIPIcs.ECOOP.2015.271
Vincent St-Amour, Shu-yu Guo
{"title":"Optimization Coaching for JavaScript","authors":"Vincent St-Amour, Shu-yu Guo","doi":"10.4230/LIPIcs.ECOOP.2015.271","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2015.271","url":null,"abstract":"The performance of dynamic object-oriented programming languages such as JavaScript depends heavily on highly optimizing just-in-time compilers. Such compilers, like all compilers, can silently fall back to generating conservative, low-performance code during optimization. As a result, programmers may inadvertently cause performance issues on users’ systems by making seemingly inoensive changes to programs. This paper shows how to solve the problem of silent optimization failures. It specifically explains how to create a so-called optimization coach for an object-oriented just-in-time-compiled programming language. The development and evaluation build on the SpiderMonkey JavaScript engine, but the results should generalize to a variety of similar platforms.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133974953","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}
引用次数: 9
Transparent Object Proxies in JavaScript JavaScript中的透明对象代理
European Conference on Object-Oriented Programming Pub Date : 2015-04-30 DOI: 10.4230/LIPIcs.ECOOP.2015.149
M. Keil, Sankha Narayan Guria, Andreas Schlegel, Manuel Geffken, Peter Thiemann
{"title":"Transparent Object Proxies in JavaScript","authors":"M. Keil, Sankha Narayan Guria, Andreas Schlegel, Manuel Geffken, Peter Thiemann","doi":"10.4230/LIPIcs.ECOOP.2015.149","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2015.149","url":null,"abstract":"Proxies are the swiss army knives of object adaptation. They introduce a level of indirection to intercept select operations on a target object and divert them as method calls to a handler. Proxies have many uses like implementing access control, enforcing contracts, virtualizing resources. \u0000One important question in the design of a proxy API is whether a proxy object should inherit the identity of its target. Apparently proxies should have their own identity for security-related applications whereas other applications, in particular contract systems, require transparent proxies that compare equal to their target objects. \u0000We examine the issue with transparency in various use cases for proxies, discuss different approaches to obtain transparency, and propose two designs that require modest modifications in the JavaScript engine and cannot be bypassed by the programmer. \u0000We implement our designs in the SpiderMonkey JavaScript interpreter and bytecode compiler. Our evaluation shows that these modifications of have no statistically significant impact on the benchmark performance of the JavaScript engine. Furthermore, we demonstrate that contract systems based on wrappers require transparent proxies to avoid interference with program execution in realistic settings.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-04-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125208220","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
Trust, but Verify: Two-Phase Typing for Dynamic Languages 信任,但要验证:动态语言的两阶段类型
European Conference on Object-Oriented Programming Pub Date : 2015-04-01 DOI: 10.4230/LIPIcs.ECOOP.2015.52
Panagiotis Vekris, B. Cosman, Ranjit Jhala
{"title":"Trust, but Verify: Two-Phase Typing for Dynamic Languages","authors":"Panagiotis Vekris, B. Cosman, Ranjit Jhala","doi":"10.4230/LIPIcs.ECOOP.2015.52","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2015.52","url":null,"abstract":"A key challenge when statically typing so-called dynamic languages is the ubiquity of value-based overloading, where a given function can dynamically reflect upon and behave according to the types of its arguments. Thus, to establish basic types, the analysis must reason precisely about values, but in the presence of higher-order functions and polymorphism, this reasoning itself can require basic types. In this paper we address this chicken-and-egg problem by introducing the framework of two-phased typing. The first “trust” phase performs classical, i.e. flow-, path- and value-insensitive type checking to assign basic types to various program expressions. When the check inevitably runs into “errors” due to value-insensitivity, it wraps problematic expressions with DEAD-casts, which explicate the trust obligations that must be discharged by the second phase. The second phase uses refinement typing, a flow- and path-sensitive analysis, that decorates the first phase’s types with logical predicates to track value relationships and thereby verify the casts and establish other correctness properties for dynamically typed languages.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117307062","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
Capture-Avoiding and Hygienic Program Transformations 避免捕获和卫生的程序转换
European Conference on Object-Oriented Programming Pub Date : 2014-08-01 DOI: 10.1007/978-3-662-44202-9_20
Sebastian Erdweg, T. Storm, Yi Dai
{"title":"Capture-Avoiding and Hygienic Program Transformations","authors":"Sebastian Erdweg, T. Storm, Yi Dai","doi":"10.1007/978-3-662-44202-9_20","DOIUrl":"https://doi.org/10.1007/978-3-662-44202-9_20","url":null,"abstract":"","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"299 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121454132","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}
引用次数: 19
An Executable Formal Semantics of PHP PHP的可执行形式语义
European Conference on Object-Oriented Programming Pub Date : 2014-08-01 DOI: 10.1007/978-3-662-44202-9_23
Daniele Filaretti, S. Maffeis
{"title":"An Executable Formal Semantics of PHP","authors":"Daniele Filaretti, S. Maffeis","doi":"10.1007/978-3-662-44202-9_23","DOIUrl":"https://doi.org/10.1007/978-3-662-44202-9_23","url":null,"abstract":"","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"65 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114921803","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}
引用次数: 52
Understanding TypeScript 理解打印稿
European Conference on Object-Oriented Programming Pub Date : 2014-08-01 DOI: 10.1007/978-3-662-44202-9_11
G. Bierman, M. Abadi, Mads Torgersen
{"title":"Understanding TypeScript","authors":"G. Bierman, M. Abadi, Mads Torgersen","doi":"10.1007/978-3-662-44202-9_11","DOIUrl":"https://doi.org/10.1007/978-3-662-44202-9_11","url":null,"abstract":"","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"200 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114981552","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}
引用次数: 180
Sound and Complete Subtyping between Coinductive Types for Object-Oriented Languages 面向对象语言中共归纳类型间的完备子类型
European Conference on Object-Oriented Programming Pub Date : 2014-08-01 DOI: 10.1007/978-3-662-44202-9_12
D. Ancona, A. Corradi
{"title":"Sound and Complete Subtyping between Coinductive Types for Object-Oriented Languages","authors":"D. Ancona, A. Corradi","doi":"10.1007/978-3-662-44202-9_12","DOIUrl":"https://doi.org/10.1007/978-3-662-44202-9_12","url":null,"abstract":"","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115815387","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}
引用次数: 18
Safely Composable Type-Specific Languages 可安全组合的特定类型语言
European Conference on Object-Oriented Programming Pub Date : 2014-08-01 DOI: 10.1007/978-3-662-44202-9_5
Cyrus Omar, Darya Kurilova, L. Nistor, Benjamin Chung, A. Potanin, Jonathan Aldrich
{"title":"Safely Composable Type-Specific Languages","authors":"Cyrus Omar, Darya Kurilova, L. Nistor, Benjamin Chung, A. Potanin, Jonathan Aldrich","doi":"10.1007/978-3-662-44202-9_5","DOIUrl":"https://doi.org/10.1007/978-3-662-44202-9_5","url":null,"abstract":"","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"98 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116542634","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}
引用次数: 44
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学术文献互助群
群 号:604180095
Book学术官方微信