Software repositories contain an enormous amount of information such as revisions and bugs. Analyzing this data requires knowledge in mining software repositories and a large amount of infrastructure. We present our infrastructure Boa to ease such analyses. Our results show writing analyses with our framework is simpler and executes faster.
{"title":"Boa: analyzing ultra-large-scale code corpus","authors":"Robert Dyer, H. Nguyen, Hridesh Rajan, T. Nguyen","doi":"10.1145/2384716.2384752","DOIUrl":"https://doi.org/10.1145/2384716.2384752","url":null,"abstract":"Software repositories contain an enormous amount of information such as revisions and bugs. Analyzing this data requires knowledge in mining software repositories and a large amount of infrastructure. We present our infrastructure Boa to ease such analyses. Our results show writing analyses with our framework is simpler and executes faster.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"78 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134187944","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}
A. Black, T. D'Hondt, D. Kimelman, M. Rinard, D. Ungar
Massively-parallel systems are coming: core counts keep rising whether conventional cores as in multicore and manycore systems, or specialized cores as in GPUs. Conventional wisdom has been to utilize this parallelism by reducing synchronization to the minimum required to preserve determinism in particular, by eliminating data races. However, Amdahl's law implies that on highly-parallel systems even a small amount of synchronization that introduces serialization will limit scaling. Thus, we are forced to confront the trade-off between synchronization and the ability of an implementation to scale performance with the number of processors: synchronization inherently limits parallelism. This workshop focuses on harnessing parallelism by limiting synchronization, even to the point where programs will compute inconsistent or approximate rather than exact answers.
{"title":"Workshop on relaxing synchronization for multicore and manycore scalability (RACES 2012)","authors":"A. Black, T. D'Hondt, D. Kimelman, M. Rinard, D. Ungar","doi":"10.1145/2384716.2384779","DOIUrl":"https://doi.org/10.1145/2384716.2384779","url":null,"abstract":"Massively-parallel systems are coming: core counts keep rising whether conventional cores as in multicore and manycore systems, or specialized cores as in GPUs. Conventional wisdom has been to utilize this parallelism by reducing synchronization to the minimum required to preserve determinism in particular, by eliminating data races. However, Amdahl's law implies that on highly-parallel systems even a small amount of synchronization that introduces serialization will limit scaling. Thus, we are forced to confront the trade-off between synchronization and the ability of an implementation to scale performance with the number of processors: synchronization inherently limits parallelism. This workshop focuses on harnessing parallelism by limiting synchronization, even to the point where programs will compute inconsistent or approximate rather than exact answers.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134001115","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}
We present a pattern language containing all security patterns that have been published in various venues. Ours is the first pattern language that covers an entire problem domain; to our best knowledge, it is also the largest in software.
{"title":"The nature of order: from security patterns to a pattern language","authors":"M. Hafiz, Paul Adamczyk","doi":"10.1145/2384716.2384746","DOIUrl":"https://doi.org/10.1145/2384716.2384746","url":null,"abstract":"We present a pattern language containing all security patterns that have been published in various venues. Ours is the first pattern language that covers an entire problem domain; to our best knowledge, it is also the largest in software.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125195814","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}
Fork/Join is a parallel programming model that implicitly assumes uniform memory access. The transition from multi- to many-core architectures will render this assumption invalid, and consequently it is likely that Fork/Join in its current form will not scale. This research investigates implementations for Fork/Join to allow the transition to many-core.
{"title":"How to achieve scalable fork/join on many-core architectures?","authors":"M. D. Wael, T. V. Cutsem","doi":"10.1145/2384716.2384751","DOIUrl":"https://doi.org/10.1145/2384716.2384751","url":null,"abstract":"Fork/Join is a parallel programming model that implicitly assumes uniform memory access. The transition from multi- to many-core architectures will render this assumption invalid, and consequently it is likely that Fork/Join in its current form will not scale. This research investigates implementations for Fork/Join to allow the transition to many-core.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120975766","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}
Refactoring is a transformation that preserves the external behavior of a program and improves its internal quality. Usually, compilation errors and behavioral changes are avoided by preconditions. However, defining and implementing preconditions is a complex task. As a result, even mainstream refactoring engines contain critical bugs. We propose an automated approach for testing of Java refactoring engines based on program generation.
{"title":"Automated behavioral testing of refactoring engines","authors":"Gustavo Soares","doi":"10.1145/2384716.2384737","DOIUrl":"https://doi.org/10.1145/2384716.2384737","url":null,"abstract":"Refactoring is a transformation that preserves the external behavior of a program and improves its internal quality. Usually, compilation errors and behavioral changes are avoided by preconditions. However, defining and implementing preconditions is a complex task. As a result, even mainstream refactoring engines contain critical bugs. We propose an automated approach for testing of Java refactoring engines based on program generation.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115398103","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}
The inherent dynamism of JavaScript (e.g., runtime code generation, prototyping, and function variadicity) renders static analyses inadequate. To address this shortcoming, we analyze JavaScript programs by means of blended analysis, a technique combining dynamic and static analyses. Our empirical findings indicate that blended analysis can effectively analyze realistic JavaScript applications.
{"title":"Blended analysis for JavaScript: a practical framework to analyze dynamic features","authors":"Shiyi Wei","doi":"10.1145/2384716.2384758","DOIUrl":"https://doi.org/10.1145/2384716.2384758","url":null,"abstract":"The inherent dynamism of JavaScript (e.g., runtime code generation, prototyping, and function variadicity) renders static analyses inadequate. To address this shortcoming, we analyze JavaScript programs by means of blended analysis, a technique combining dynamic and static analyses. Our empirical findings indicate that blended analysis can effectively analyze realistic JavaScript applications.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114781341","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}
This demonstration will provide an overview of OpenRefactory/C, an infrastructure for developing source-level program transformations for C programs. OpenRefactory/C is platform independent; however, the demonstration will be on the Eclipse platform. We will highlight the features of the infrastructure, outline the problems it solves, show the program analyses support that we have built for this infrastructure, and show traditional refactorings as well as advanced security-oriented program transformations that cannot be developed in any other C IDEs.
{"title":"OpenRefactory/C: an infrastructure for developing program transformations for C programs","authors":"M. Hafiz, J. Overbey","doi":"10.1145/2384716.2384730","DOIUrl":"https://doi.org/10.1145/2384716.2384730","url":null,"abstract":"This demonstration will provide an overview of OpenRefactory/C, an infrastructure for developing source-level program transformations for C programs. OpenRefactory/C is platform independent; however, the demonstration will be on the Eclipse platform. We will highlight the features of the infrastructure, outline the problems it solves, show the program analyses support that we have built for this infrastructure, and show traditional refactorings as well as advanced security-oriented program transformations that cannot be developed in any other C IDEs.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116552658","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}
This is a design track overview tutorial that provides a foundation for exploring and applying the DCI (Data, Context and Interaction) paradigm. DCI is a means to supporting full object orientation that restores much of the original object vision that has been lost by class-based design and programming. DCI focuses on objects and their relationships to the roles of human mental models by which end users and programmers reason about them generally. DCI leads to an architecture that extends contemporary object-oriented programming from its data-centric structure to focus more on the business value of system-level operations.
{"title":"The data, context and interaction paradigm","authors":"J. Coplien, Trygve Reenskaug","doi":"10.1145/2384716.2384782","DOIUrl":"https://doi.org/10.1145/2384716.2384782","url":null,"abstract":"This is a design track overview tutorial that provides a foundation for exploring and applying the DCI (Data, Context and Interaction) paradigm. DCI is a means to supporting full object orientation that restores much of the original object vision that has been lost by class-based design and programming. DCI focuses on objects and their relationships to the roles of human mental models by which end users and programmers reason about them generally. DCI leads to an architecture that extends contemporary object-oriented programming from its data-centric structure to focus more on the business value of system-level operations.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123469880","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}
The search for sound principles for object-oriented languages has given rise to considerable research during the last few decades, leading to a better understanding of the key concepts of object-oriented languages and to important developments in type theory, semantics, program verification, and program development. The purpose of this workshop is to provide a forum for discussing new ideas in the foundations of object-oriented languages and provide feedback to authors. Submissions to this workshop were invited in the general area of foundations of object-oriented languages, object-oriented languages, including integration with other paradigms and extensions, such as aspects, components, and meta-programming.
{"title":"19th international workshop on foundations of object-oriented languages (FOOL'12)","authors":"Jeremy G. Siek, Jonathan Aldrich, J. Boyland","doi":"10.1145/2384716.2384785","DOIUrl":"https://doi.org/10.1145/2384716.2384785","url":null,"abstract":"The search for sound principles for object-oriented languages has given rise to considerable research during the last few decades, leading to a better understanding of the key concepts of object-oriented languages and to important developments in type theory, semantics, program verification, and program development. The purpose of this workshop is to provide a forum for discussing new ideas in the foundations of object-oriented languages and provide feedback to authors. Submissions to this workshop were invited in the general area of foundations of object-oriented languages, object-oriented languages, including integration with other paradigms and extensions, such as aspects, components, and meta-programming.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126296360","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}
Decomposing a software system into smaller, more manageable clusters provides an insight for better comprehension of large systems for software engineers. However, invocation-awareness and dynamic view are two features which are not supported by existed software clustering visualization tools. In this paper, we presents a novel tool, named SCuV, to partition the Software into invocation-aware clusters, Cluster them with nested containment & invocation hierarchy and Visualize the clustering result in granularity-adjustable way.
{"title":"SCuV: a novel software clustering and visualization tool","authors":"Xiaomin Xu, Sheng Huang, Yanghua Xiao, Wei Wang","doi":"10.1145/2384716.2384731","DOIUrl":"https://doi.org/10.1145/2384716.2384731","url":null,"abstract":"Decomposing a software system into smaller, more manageable clusters provides an insight for better comprehension of large systems for software engineers. However, invocation-awareness and dynamic view are two features which are not supported by existed software clustering visualization tools. In this paper, we presents a novel tool, named SCuV, to partition the Software into invocation-aware clusters, Cluster them with nested containment & invocation hierarchy and Visualize the clustering result in granularity-adjustable way.","PeriodicalId":194590,"journal":{"name":"ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity","volume":"52 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131288276","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}