{"title":"Mining source code repositories with boa","authors":"Robert Dyer, H. Nguyen, Hridesh Rajan, T. Nguyen","doi":"10.1145/2508075.2514570","DOIUrl":"https://doi.org/10.1145/2508075.2514570","url":null,"abstract":"Mining source code has become a common task for researchers and yielded significant benefits for the software engineering community. Mining source code however is a very difficult and time consuming task. The Boa language and infrastructure was designed to ease mining of project and revision metadata. Recently Boa was extended to support mining source code and currently contains source code for over 23k Java projects, including full revision histories. In this demonstration we pose source code mining tasks and give solutions using Boa. We then execute these programs via our web-based infrastructure and show how to easily make the results available for future researchers.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115259077","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}
{"title":"Session details: Wavefront and wavefront experience","authors":"D. Mancl, E. Guerra","doi":"10.1145/3245142","DOIUrl":"https://doi.org/10.1145/3245142","url":null,"abstract":"","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124778034","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}
{"title":"Tackling the efficiency problem of gradual typing","authors":"Esteban Allende","doi":"10.1145/2508075.2514884","DOIUrl":"https://doi.org/10.1145/2508075.2514884","url":null,"abstract":"The popularity of dynamic languages and their use in the construction of large and complex software systems makes the possibility to fortify grown prototypes or scripts using the guarantees of a static type system appealing. While research in combining static and dynamic typing started more than twenty years ago, recent years have seen a lot of proposals of either static type systems for dynamic languages, or partial type systems that allow a combination of both approaches [2–6, 8, 10, 14]. Gradual typing [11, 12] is a partial typing technique proposed by Siek and Taha that allows developers to define which sections of code are statically typed and which are dynamically typed, at a very fine level of granularity, by selectively placing type annotations where desired. The type system ensures that dynamic code does not violate the assumptions made in statically-typed code. This makes it possible to choose between the flexibility provided by a dynamic type system, and the robustness of a static type system. The semantics of a gradually-typed language is typically given by translation to an intermediate language with casts, i.e. runtime type checks that control the boundaries between typed and untyped code. A major challenge in the adoption of gradually-typed languages is the cost of these casts, especially in a higher-order setting. Theoretical approaches have been developed to tackle the space dimension [7, 13], but execution time is also an issue. This has led certain languages to favor a coarse-grained integration of typed and untyped code [15] or to consider a weaker form of integration that avoids costly casts [16].","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125740660","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}
{"title":"Finding the missing eclipse perspective: the runtime perspective","authors":"Andrew Giang, Marwan Abi-Antoun","doi":"10.1145/2508075.2514575","DOIUrl":"https://doi.org/10.1145/2508075.2514575","url":null,"abstract":"When evolving object-oriented code, developers need to understand both the code structure and the runtime structure. However, Integrated Development Environments such as Eclipse still predominantly emphasize the code structure. We propose to add to Eclipse a Runtime Perspective to complement the existing perspectives such as the Java code perspective and the debugging perspective, and to present to developers a hierarchical abstract runtime structure in terms of abstract objects and relations between them.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114724666","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}
{"title":"PyLOM: a language and run-time system for planning applications","authors":"Scotty Smith, Gedare Bloom, R. Simha","doi":"10.1145/2508075.2522608","DOIUrl":"https://doi.org/10.1145/2508075.2522608","url":null,"abstract":"Controlling software systems autonomously has been a challenging research area. Modern autonomous systems are guided by a plan, which is a sequence of actions to take to achieve a goal. Many planning algorithms exist today to produce plans given a problem definition and goal. To ease programmability of autonomous systems, many languages have been developed for defining problems and goals. However, planning algorithms tend to need to be customized not only for the problem definition language, but also for the problem definition itself. This work presents a new problem definition language called PyLOM, an interpreted, object-oriented language. The PyLOM run-time system uses generic algorithms, which do not need to be customized for each problem definition. Thus, PyLOM separates problem definitions from planning algorithms to ease programmability and software reuse. The choice of an object-oriented language also is intended to aid programmability, since prior problem definition languages adopt a functional programming style.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125171144","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}
{"title":"Secure development tool adoption in open-source","authors":"Jim Witschey","doi":"10.1145/2508075.2514872","DOIUrl":"https://doi.org/10.1145/2508075.2514872","url":null,"abstract":"Although the use of secure software development tools can help developers build more secure software, many developers do not use these tools. In previous work, a colleague conducted interviews with professional developers to develop a qualitative model of factors that influence developers' decisions to use or not use security tools. In the work described in this abstract, I conducted interviews with open-source software developers to evaluate how our findings generalize outside of corporate software development populations. With the data from these interviews, I aim to gain insight into open-source software developers' behavior and values. I aim to refine, expand, and generalize our security tool adoption model so it may be used to foster wider adoption of security tools.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125206221","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}
{"title":"ZipPy on truffle: a fast and simple implementation of python","authors":"Christian Wimmer, Stefan Brunthaler","doi":"10.1145/2508075.2514572","DOIUrl":"https://doi.org/10.1145/2508075.2514572","url":null,"abstract":"Building high-performance virtual machines is a complex and expensive undertaking; many popular languages still have low-performance implementations. We present 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 (named Truffle) relies on tree-rewriting abstract syntax tree (AST) interpretation, together with an optimizing compiler (named Graal) that exploits the structure of the interpreter. The compiler uses speculative assumptions and deoptimization in order to produce efficient machine code. We illustrate the concepts of Truffle by the means of our open-source implementation of Python (named ZipPy). To show that Truffle supports a variety of programming language paradigms, we also present prototype implementations of other languages.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127247737","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}
{"title":"The poor man's proof assistant: using prolog to develop formal language theoretic proofs","authors":"J. Eremondi","doi":"10.1145/2508075.2508088","DOIUrl":"https://doi.org/10.1145/2508075.2508088","url":null,"abstract":"While proving a theorem from a set of axioms is undecidable in first order logic, recent development has produced several tools which serve as automated theorem provers. However, often these systems are too complex for a given problem. Their usefulness is outweighed by the difficulty of learning a new tool or translating results into computer-readable form. I describe tools developed in Prolog to partially characterize the shuffle-inclusion problem. These tools allowed for rapid development of proofs with little intellectual overhead. While focused around a specific problem, the techniques described are general, and well suited to many problems on discrete structures.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"113 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127570702","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}
{"title":"On the implications of language constructs for concurrent execution in the energy efficiency of multicore applications","authors":"G. Pinto, F. C. Filho","doi":"10.1145/2508075.2508097","DOIUrl":"https://doi.org/10.1145/2508075.2508097","url":null,"abstract":"Our study analyzed the performance and energy consumption of multicore applications, using a number of techniques to manage concurrent execution. We concluded that language constructs for concurrent execution can impact energy consumption. Nonetheless, the tradeoff between performance and energy consumption in multicore applications is not as obvious as it seems.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122791145","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}
{"title":"A screen-oriented representation for mobile applications","authors":"Aharon Abadi, Y. Feldman, K. Shagin","doi":"10.1145/2508075.2508090","DOIUrl":"https://doi.org/10.1145/2508075.2508090","url":null,"abstract":"Program analysis plays an important role in a variety of software engineering processes, such as automated code refactoring, compiler optimizations, and program slicing. The internal program representation used by the program analysis algorithm affects the power and efficiency of the analysis. In particular, representations that contain data-flow information alongside control flow are known to be especially useful. While there are many popular internal program representations with data-flow information for traditional languages and platforms, few specifically target mobile applications. In this paper, we propose a new data-flow-enabled representation that addresses the screen-oriented nature of a mobile application and explores its potential. We consider a mobile application to be a reactive system whose states are the screens, and whose events are user actions, incoming communication, or anything else that causes transition from one screen to another. The resulting representation is a finite state machine extended with data-flow information. We suggest that this representation can greatly contribute to optimization, refactoring, and understanding of mobile applications.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131456914","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}