Collective program analysis
Popularity of data-driven software engineering has led to an increasing demand on the infrastructures to support efficient execution of tasks that require deeper source code analysis. While task optimization and parallelization are the adopted solutions, other research directions are less explored....
Saved in:
Published in | 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE) pp. 620 - 631 |
---|---|
Main Authors | , |
Format | Conference Proceeding |
Language | English |
Published |
New York, NY, USA
ACM
27.05.2018
|
Series | ACM Conferences |
Subjects | |
Online Access | Get full text |
Cover
Loading…
Abstract | Popularity of data-driven software engineering has led to an increasing demand on the infrastructures to support efficient execution of tasks that require deeper source code analysis. While task optimization and parallelization are the adopted solutions, other research directions are less explored. We present collective program analysis (CPA), a technique for scaling large scale source code analyses, especially those that make use of control and data flow analysis, by leveraging analysis specific similarity. Analysis specific similarity is about, whether two or more programs can be considered similar for a given analysis. The key idea of collective program analysis is to cluster programs based on analysis specific similarity, such that running the analysis on one candidate in each cluster is sufficient to produce the result for others. For determining analysis specific similarity and clustering analysis-equivalent programs, we use a sparse representation and a canonical labeling scheme. Our evaluation shows that for a variety of source code analyses on a large dataset of programs, substantial reduction in the analysis time can be achieved; on average a 69% reduction when compared to a baseline and on average a 36% reduction when compared to a prior technique. We also found that a large amount of analysis-equivalent programs exists in large datasets. |
---|---|
AbstractList | Popularity of data-driven software engineering has led to an increasing demand on the infrastructures to support efficient execution of tasks that require deeper source code analysis. While task optimization and parallelization are the adopted solutions, other research directions are less explored. We present collective program analysis (CPA), a technique for scaling large scale source code analyses, especially those that make use of control and data flow analysis, by leveraging analysis specific similarity. Analysis specific similarity is about, whether two or more programs can be considered similar for a given analysis. The key idea of collective program analysis is to cluster programs based on analysis specific similarity, such that running the analysis on one candidate in each cluster is sufficient to produce the result for others. For determining analysis specific similarity and clustering analysis-equivalent programs, we use a sparse representation and a canonical labeling scheme. Our evaluation shows that for a variety of source code analyses on a large dataset of programs, substantial reduction in the analysis time can be achieved; on average a 69% reduction when compared to a baseline and on average a 36% reduction when compared to a prior technique. We also found that a large amount of analysis-equivalent programs exists in large datasets. |
Author | Rajan, Hridesh Upadhyaya, Ganesha |
Author_xml | – sequence: 1 givenname: Ganesha surname: Upadhyaya fullname: Upadhyaya, Ganesha email: ganeshau@iastate.edu organization: Iowa State University – sequence: 2 givenname: Hridesh surname: Rajan fullname: Rajan, Hridesh email: hridesh@iastate.edu organization: Iowa State University |
BookMark | eNqNkDtPwzAUhc1LooTMDF06siT4-pWbEUXlIVVigdly7BsUSJoqrpD670nVTEzoDGf4js7w3bDL7bAlxu6A5wBKP0hADlrnxxZanLG0LHACXGojEc7ZYqKYgRD64g-7ZmmMX5xzYVAhmAVbVkPXkd-3P7TajcPn6PqV27ruENt4y64a10VK507Yx9P6vXrJNm_Pr9XjJnMCcZ8hFSQ1mqB4o0rjjamxEUI5FUQdoPDaSwWEQnuSZXA16WCMCIGw0Q0YmbDl6bclIrsb296NB4tKS5iSsPsTdb639TB8RwvcHk3Y2YSdTUzT_J9TW48tNfIXTt1ZXg |
CODEN | IEEPAD |
ContentType | Conference Proceeding |
Copyright | 2018 ACM |
Copyright_xml | – notice: 2018 ACM |
DBID | 6IE 6IH CBEJK RIE RIO |
DOI | 10.1145/3180155.3180252 |
DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Xplore Digital Library IEEE Proceedings Order Plans (POP) 1998-present |
DatabaseTitleList | |
Database_xml | – sequence: 1 dbid: RIE name: IEEE Xplore Digital Library url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/ sourceTypes: Publisher |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISBN | 9781450356381 1450356389 |
EISSN | 1558-1225 |
EndPage | 631 |
ExternalDocumentID | 8453131 |
Genre | orig-research |
GroupedDBID | 6IE 6IF 6IG 6IL 6IM 6IN AAJGR ABLEC ABQGA ACM ADPZR ALMA_UNASSIGNED_HOLDINGS APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK GUFHI IEGSK IJVOP LHSKQ OCL RIB RIC RIE RIL RIO -~X .4S .DC 123 23M 29O 5VS 6IH 6IK 8US ADZIZ AFFNX ARCSS AVWKF CHZPO EDO FEDTE I-F I07 IPLJI JC5 M43 RIG RNS XOL |
ID | FETCH-LOGICAL-a288t-8e7e3586d40f496c66b8f224a4d2bd17c5c341e825ce39dabe5d662dde8f5f163 |
IEDL.DBID | RIE |
ISBN | 9781450356381 1450356389 |
IngestDate | Wed Jun 26 19:27:13 EDT 2024 Fri Sep 13 11:04:35 EDT 2024 |
IsDoiOpenAccess | false |
IsOpenAccess | true |
IsPeerReviewed | false |
IsScholarly | true |
Keywords | Boa source code analysis clustering |
Language | English |
License | Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org. |
LinkModel | DirectLink |
MeetingName | ICSE '18: 40th International Conference on Software Engineering |
MergedId | FETCHMERGED-LOGICAL-a288t-8e7e3586d40f496c66b8f224a4d2bd17c5c341e825ce39dabe5d662dde8f5f163 |
OpenAccessLink | https://dl.acm.org/doi/pdf/10.1145/3180155.3180252 |
PageCount | 12 |
ParticipantIDs | acm_books_10_1145_3180155_3180252_brief acm_books_10_1145_3180155_3180252 ieee_primary_8453131 |
PublicationCentury | 2000 |
PublicationDate | 20180527 2018-May |
PublicationDateYYYYMMDD | 2018-05-27 2018-05-01 |
PublicationDate_xml | – month: 05 year: 2018 text: 20180527 day: 27 |
PublicationDecade | 2010 |
PublicationPlace | New York, NY, USA |
PublicationPlace_xml | – name: New York, NY, USA |
PublicationSeriesTitle | ACM Conferences |
PublicationTitle | 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE) |
PublicationTitleAbbrev | ICSE |
PublicationYear | 2018 |
Publisher | ACM |
Publisher_xml | – name: ACM |
SSID | ssj0002684816 ssj0006499 |
Score | 2.122541 |
Snippet | Popularity of data-driven software engineering has led to an increasing demand on the infrastructures to support efficient execution of tasks that require... |
SourceID | ieee acm |
SourceType | Publisher |
StartPage | 620 |
SubjectTerms | Analytical models Boa Cloning Clustering Labeling Software and its engineering -- Software creation and management -- Software verification and validation -- Formal software verification Software and its engineering -- Software notations and tools -- Software maintenance tools Software engineering Source code analysis Syntactics Task analysis Transfer functions |
Title | Collective program analysis |
URI | https://ieeexplore.ieee.org/document/8453131 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV3fS8NADA7bnnyauolzKhUEX2zXH3e367M4hqD44GBv5e6agoibzPbFv96k7SaKoE8t5QpHmku-pMkXgMsQE0thR-Irpvokj09nLpTOF0ZTHBcZJizhaosHNV-Iu6VcduB61wuDiHXxGQZ8W__Lz9eu4lTZRAvSGG6a7k7TtOnV2uVTmLVEM9RprbAiKN9S-URCTkh1GR0EfI25y6hr3Ou3iSq1Q5n14X67laaO5CWoShu4jx8sjf_d6z4Mv1r3vMedUzqADq4Oob-d3eC1R3kA4zpjUBs7Xs81Wt6WoGQIi9nt083cbwcl-CbWuvQ1TjGRWuUiLESqnFJWF-Sbjchjm0dTJx05K6Rg0GGS5saizJWKybLpQhaEyI6gt1qv8Bg8eo0CCOnSJNSiUJE1Wlv6yhTnFAStcAQXJLiMI4D3rGlqllkr3KwV7giu_lyT2c0zFiMYsOSyt4ZZI2uFdvL74zHsEVzRTbnhKfTKTYVnBAlKe17rwid9iK0p |
link.rule.ids | 310,311,783,787,792,793,799,27937,55086 |
linkProvider | IEEE |
linkToHtml | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LS8NAEB5qPeipaivW-oggeDFpHrvb7VmUqm3x0EJvy-5mAyK2UtOLv96ZJK0ogp4SwgaWyezMN5OZbwAuQ5cYDDsSXxDVJ3p8PHMhtz7TEuO4SBNhCVVbjMVgyh5mfFaD600vjHOuKD5zAd0W__LThV1RqqwrGWoMNU1vI66WouzW2mRUiLdEEtip7LBAMF-R-USMd1F5CR8EdI2pz2hL29dvM1UKl3LXgNF6M2UlyUuwyk1gP37wNP53t3vQ-mre8542bmkfam5-AI319AavOsxN6BQ5g8Lc0Xqq0vLWFCUtmN7dTm4GfjUqwdexlLkvXc8lXIqUhRnrCyuEkRl6Z83S2KRRz3KL7sphOGhd0k-1cTwVIkbbJjOeISY7hPp8MXdH4OFrGEJw209CyTIRGS2lwe-MkU6G4Mq14QIFpygGeFdlWzNXlXBVJdw2XP25Rpnls8va0CTJqbeSW0NVQjv-_fE57Awmo6Ea3o8fO7CL4EWWxYcnUM-XK3eKACE3Z4VefALB7rB0 |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2018+IEEE%2FACM+40th+International+Conference+on+Software+Engineering+%28ICSE%29&rft.atitle=Collective+Program+Analysis&rft.au=Upadhyaya%2C+Ganesha&rft.au=Rajan%2C+Hridesh&rft.date=2018-05-01&rft.pub=ACM&rft.eissn=1558-1225&rft.spage=620&rft.epage=631&rft_id=info:doi/10.1145%2F3180155.3180252&rft.externalDocID=8453131 |
thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450356381/lc.gif&client=summon&freeimage=true |
thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450356381/mc.gif&client=summon&freeimage=true |
thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450356381/sc.gif&client=summon&freeimage=true |