On-the-Fly Static Analysis via Dynamic Bidirected Dyck Reachability

Dyck reachability is a principled, graph-based formulation of a plethora of static analyses. Bidirected graphs are used for capturing dataflow through mutable heap data, and are usual formalisms of demand-driven points-to and alias analyses. The best (offline) algorithm runs in O(m+n · α(n)) time, w...

Full description

Saved in:
Bibliographic Details
Published inProceedings of ACM on programming languages Vol. 8; no. POPL; pp. 1239 - 1268
Main Authors Krishna, Shankaranarayanan, Lal, Aniket, Pavlogiannis, Andreas, Tuppe, Omkar
Format Journal Article
LanguageEnglish
Published New York, NY, USA ACM 02.01.2024
Subjects
Online AccessGet full text

Cover

Loading…
Abstract Dyck reachability is a principled, graph-based formulation of a plethora of static analyses. Bidirected graphs are used for capturing dataflow through mutable heap data, and are usual formalisms of demand-driven points-to and alias analyses. The best (offline) algorithm runs in O(m+n · α(n)) time, where n is the number of nodes and m is the number of edges in the flow graph, which becomes O(n2) in the worst case. In the everyday practice of program analysis, the analyzed code is subject to continuous change, with source code being added and removed. On-the-fly static analysis under such continuous updates gives rise to dynamic Dyck reachability, where reachability queries run on a dynamically changing graph, following program updates. Naturally, executing the offline algorithm in this online setting is inadequate, as the time required to process a single update is prohibitively large. In this work we develop a novel dynamic algorithm for bidirected Dyck reachability that has O(n · α(n)) worst-case performance per update, thus beating the O(n2) bound, and is also optimal in certain settings. We also implement our algorithm and evaluate its performance on on-the-fly data-dependence and alias analyses, and compare it with two best known alternatives, namely (i) the optimal offline algorithm, and (ii) a fully dynamic Datalog solver. Our experiments show that our dynamic algorithm is consistently, and by far, the top performing algorithm, exhibiting speedups in the order of 1000X. The running time of each update is almost always unnoticeable to the human eye, making it ideal for the on-the-fly analysis setting.
AbstractList Dyck reachability is a principled, graph-based formulation of a plethora of static analyses. Bidirected graphs are used for capturing dataflow through mutable heap data, and are usual formalisms of demand-driven points-to and alias analyses. The best (offline) algorithm runs in O(m+n · α(n)) time, where n is the number of nodes and m is the number of edges in the flow graph, which becomes O(n2) in the worst case. In the everyday practice of program analysis, the analyzed code is subject to continuous change, with source code being added and removed. On-the-fly static analysis under such continuous updates gives rise to dynamic Dyck reachability, where reachability queries run on a dynamically changing graph, following program updates. Naturally, executing the offline algorithm in this online setting is inadequate, as the time required to process a single update is prohibitively large. In this work we develop a novel dynamic algorithm for bidirected Dyck reachability that has O(n · α(n)) worst-case performance per update, thus beating the O(n2) bound, and is also optimal in certain settings. We also implement our algorithm and evaluate its performance on on-the-fly data-dependence and alias analyses, and compare it with two best known alternatives, namely (i) the optimal offline algorithm, and (ii) a fully dynamic Datalog solver. Our experiments show that our dynamic algorithm is consistently, and by far, the top performing algorithm, exhibiting speedups in the order of 1000X. The running time of each update is almost always unnoticeable to the human eye, making it ideal for the on-the-fly analysis setting.
Dyck reachability is a principled, graph-based formulation of a plethora of static analyses. Bidirected graphs are used for capturing dataflow through mutable heap data, and are usual formalisms of demand-driven points-to and alias analyses. The best (offline) algorithm runs in O ( m + n · α ( n ) ) time, where n is the number of nodes and m is the number of edges in the flow graph, which becomes O ( n 2 ) in the worst case. In the everyday practice of program analysis, the analyzed code is subject to continuous change, with source code being added and removed. On-the-fly static analysis under such continuous updates gives rise to dynamic Dyck reachability , where reachability queries run on a dynamically changing graph, following program updates. Naturally, executing the offline algorithm in this online setting is inadequate, as the time required to process a single update is prohibitively large. In this work we develop a novel dynamic algorithm for bidirected Dyck reachability that has O ( n · α ( n ) ) worst-case performance per update, thus beating the O ( n 2 ) bound, and is also optimal in certain settings. We also implement our algorithm and evaluate its performance on on-the-fly data-dependence and alias analyses, and compare it with two best known alternatives, namely (i) the optimal offline algorithm, and (ii) a fully dynamic Datalog solver. Our experiments show that our dynamic algorithm is consistently, and by far, the top performing algorithm, exhibiting speedups in the order of 1000X. The running time of each update is almost always unnoticeable to the human eye, making it ideal for the on-the-fly analysis setting.
ArticleNumber 42
Author Krishna, Shankaranarayanan
Lal, Aniket
Tuppe, Omkar
Pavlogiannis, Andreas
Author_xml – sequence: 1
  givenname: Shankaranarayanan
  orcidid: 0000-0003-0925-398X
  surname: Krishna
  fullname: Krishna, Shankaranarayanan
  email: krishnas@cse.iitb.ac.in
  organization: IIT Bombay, Mumbai, India
– sequence: 2
  givenname: Aniket
  orcidid: 0009-0007-2581-2856
  surname: Lal
  fullname: Lal, Aniket
  email: aniketlal@cse.iitb.ac.in
  organization: IIT Bombay, Mumbai, India
– sequence: 3
  givenname: Andreas
  orcidid: 0000-0002-8943-0722
  surname: Pavlogiannis
  fullname: Pavlogiannis, Andreas
  email: pavlogiannis@cs.au.dk
  organization: Aarhus University, Aarhus, Denmark
– sequence: 4
  givenname: Omkar
  orcidid: 0009-0004-1197-5556
  surname: Tuppe
  fullname: Tuppe, Omkar
  email: omkarvtuppe@cse.iitb.ac.in
  organization: IIT Bombay, Mumbai, India
BookMark eNptkM1LAzEUxINUsNbi3dPePEWTbHaze6zVqlAo-HFeXt4mNLofkgRh_3u3tIqIpxnm_XgMc0omXd8ZQs45u-JcZtdpnoqikEdkKqTKKJeCT375EzIP4Y0xxstUFmk5JctNR-PW0FUzJM8RosNk0UEzBBeSTwfJ7dBBO4Y3rnbeYDT1GOF78mQAt6Bd4-JwRo4tNMHMDzojr6u7l-UDXW_uH5eLNQWhVKSccaGBlTlgxkHwXCsJOROpLjjWozEa0CjQFqGwmFsppCxUxqTI0Cqdzgjd_0Xfh-CNrdDtKvdd9OCairNqN0J1GGHkL__wH9614Id_yIs9Cdj-QN_HL-0JZD0
CitedBy_id crossref_primary_10_1145_3725214
Cites_doi 10.1145/1167473.1167488
10.1145/3498702
10.1145/3290361
10.1145/3385412.3386021
10.1145/3360574
10.1145/3531130.3533345
10.1145/502874.502888
10.1145/3093333.3009848
10.1016/S0747-7171(89)80018-5
10.1145/2771783.2771803
10.1145/2970276.2970298
10.1145/1328897.1328460
10.1109/ASE.2019.00091
10.1007/3540543961_22
10.1145/2676726.2676979
10.1145/237721.237727
10.1145/141471.141542
10.1109/ASE.2015.9
10.1007/978-1-4615-2207-2_8
10.1145/3498724
10.1145/3293606
10.1145/3428193
10.1145/2914770.2837624
10.1145/378795.378802
10.4230/LIPIcs.ICALP.2022.124
10.1109/32.56098
10.1145/3428246
10.1145/3428195
10.1145/3498673
10.1145/2568225.2568243
10.1016/j.ipl.2021.106135
10.1145/502090.502095
10.1145/1639949.1640108
10.1145/3434315
10.1145/265910.265914
10.1145/3571252
10.1145/3583660.3583664
10.1145/1328438.1328464
10.1145/2259051.2259052
10.1145/199448.199462
10.1145/2491956.2462159
10.1007/978-3-642-11970-5_8
10.1145/360204.360208
10.1145/345099.345137
10.1007/978-3-642-03013-0_6
10.1145/3158118
10.1007/978-3-031-24950-1_9
10.1007/978-3-662-54434-1_33
10.1145/1133255.1134027
10.1109/LICS.1997.614960
10.1145/1094811.1094817
10.1145/2676726.2676997
10.1145/2259016.2259050
10.1145/298514.298576
10.1007/978-3-030-44914-8_5
10.1145/2001420.2001440
10.1145/215465.215466
10.5555/525066
10.1145/222132.222146
10.1007/11688839_5
10.1145/195274.195287
ContentType Journal Article
Copyright Owner/Author
Copyright_xml – notice: Owner/Author
DBID AAYXX
CITATION
DOI 10.1145/3632884
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 1268
ExternalDocumentID 10_1145_3632884
3632884
GrantInformation_xml – fundername: SERB MATRICS
  grantid: MTR/2019/000095
– fundername: VILLUM FONDEN
  grantid: VIL42117
GroupedDBID AAKMM
AAYFX
ACM
AEFXT
AEJOY
AIKLT
AKRVB
ALMA_UNASSIGNED_HOLDINGS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
CITATION
ID FETCH-LOGICAL-a277t-1012ba096ac51a216b74a6023b81cd602ebace7abfca8fc6f42448750425cf7b3
ISSN 2475-1421
IngestDate Thu Jul 10 08:23:25 EDT 2025
Thu Apr 24 23:07:49 EDT 2025
Mon Jul 07 16:40:28 EDT 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue POPL
Keywords static analysis
dynamic algorithms
CFL reachability
Language English
License This work is licensed under a Creative Commons Attribution International 4.0 License.
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a277t-1012ba096ac51a216b74a6023b81cd602ebace7abfca8fc6f42448750425cf7b3
ORCID 0009-0004-1197-5556
0000-0003-0925-398X
0009-0007-2581-2856
0000-0002-8943-0722
OpenAccessLink https://dl.acm.org/doi/10.1145/3632884
PageCount 30
ParticipantIDs crossref_citationtrail_10_1145_3632884
crossref_primary_10_1145_3632884
acm_primary_3632884
PublicationCentury 2000
PublicationDate 2024-01-02
PublicationDateYYYYMMDD 2024-01-02
PublicationDate_xml – month: 01
  year: 2024
  text: 2024-01-02
  day: 02
PublicationDecade 2020
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationTitle Proceedings of ACM on programming languages
PublicationTitleAbbrev ACM PACMPL
PublicationYear 2024
Publisher ACM
Publisher_xml – name: ACM
References (bib69) 2008
(bib5) 2006
(bib62) 2009
(bib6) 2012
(bib13) 2015
(bib7) 2009; 44
(bib22) 1991
(bib32) 2006
(bib63) 2011
(bib46) 1997
(bib56) 1996
(bib40) 2018
(bib68) 2017; 52
(bib1) 2003
(bib34) 2020
(bib54) 2006; 41
(bib37) 2020; 4
(bib52) 2012
(bib8) 1990; 16
(bib59) 2015
(bib17) 2022b
(bib25) 1995
(bib42) 2020; 4
(bib16) 1997; 44
(bib65) 2009
(bib67) 2013
(bib43) 2023; 9
(bib15) 2022; 6
(bib48) 1995
(bib2) 2008
(bib33) 2022; 6
(bib41) 2010
(bib60) 2020
(bib12) 2020
(bib24) 2001; 48
(bib61) 2019
(bib4) 2014
(bib49) 1994; 19
(bib51) 2019
(bib35) 2019; 41
(bib66) 1984
(bib3) 1996
(bib53) 2019; 3
(bib64) 1990
(bib21) 2001
(bib11) 2016; 51
(bib44) 2001
(bib10) 2018; 2
(bib28) 2022; 6
(bib58) 2017
(bib19) 2023
(bib18) 2022a
(bib45) 1995a
(bib23) 1992
(bib38) 2021; 5
(bib39) 2020; 4
(bib50) 1995b
(bib57) 2016
(bib29) 2023; 7
(bib26) 2015
(bib47) 2000; 22
(bib9) 2021; 171
(bib31) 2015
(bib55) 2005
(bib20) 1997
(bib14) 2008; 43
(bib27) 1989; 7
(bib30) 2023
(bib36) 2019; 3
Reps Thomas (e_1_3_1_47_1) 1997
e_1_3_1_60_1
e_1_3_1_22_1
e_1_3_1_45_1
e_1_3_1_24_1
Yuan Hao (e_1_3_1_66_1) 2009
e_1_3_1_68_1
e_1_3_1_8_1
e_1_3_1_62_1
e_1_3_1_20_1
e_1_3_1_43_1
e_1_3_1_64_1
e_1_3_1_4_1
e_1_3_1_6_1
e_1_3_1_26_1
e_1_3_1_49_1
e_1_3_1_28_1
e_1_3_1_2_1
e_1_3_1_70_1
e_1_3_1_34_1
e_1_3_1_55_1
e_1_3_1_36_1
e_1_3_1_57_1
e_1_3_1_30_1
e_1_3_1_51_1
e_1_3_1_11_1
e_1_3_1_32_1
e_1_3_1_53_1
e_1_3_1_17_1
e_1_3_1_15_1
e_1_3_1_38_1
e_1_3_1_19_1
e_1_3_1_61_1
e_1_3_1_44_1
e_1_3_1_67_1
e_1_3_1_23_1
e_1_3_1_69_1
e_1_3_1_25_1
e_1_3_1_46_1
e_1_3_1_9_1
e_1_3_1_40_1
Møller Anders (e_1_3_1_41_1) 2018
e_1_3_1_63_1
e_1_3_1_42_1
e_1_3_1_65_1
e_1_3_1_21_1
e_1_3_1_5_1
e_1_3_1_7_1
e_1_3_1_27_1
e_1_3_1_48_1
e_1_3_1_3_1
e_1_3_1_29_1
Ryzhyk Leonid (e_1_3_1_52_1) 2019
e_1_3_1_50_1
Tang Hao (e_1_3_1_59_1) 2017
e_1_3_1_10_1
e_1_3_1_33_1
e_1_3_1_56_1
e_1_3_1_35_1
e_1_3_1_58_1
Chatterjee Krishnendu (e_1_3_1_13_1) 2020
e_1_3_1_14_1
e_1_3_1_12_1
e_1_3_1_31_1
e_1_3_1_54_1
e_1_3_1_18_1
e_1_3_1_16_1
e_1_3_1_37_1
e_1_3_1_39_1
References_xml – start-page: 169
  year: 2006
  end-page: 190
  ident: bib5
  publication-title: OOPSLA ’06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications
  doi: 10.1145/1167473.1167488
– start-page: 880
  year: 2017
  end-page: 908
  ident: bib58
  publication-title: Programming Languages and Systems
– volume: 6
  start-page: 29
  year: 2022
  ident: bib15
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3498702
– volume: 3
  start-page: 29
  year: 2019
  ident: bib53
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3290361
– start-page: 56
  year: 2019
  end-page: 67
  ident: bib51
  article-title: Differential Datalog
  publication-title: Datalog 2.0 2019 - 3rd International Workshop on the Resurgence of Datalog in Academia and Industry (CEUR Workshop Proceedings, Vol. 2368)
– volume: 22
  start-page: 162
  issue: 1
  year: 2000
  end-page: 186
  ident: bib47
  article-title: Undecidability of Context-sensitive Data-dependence Analysis
  publication-title: ACM Trans. Program. Lang. Syst
– volume: 19
  start-page: 11
  issue: 5
  year: 1994
  end-page: 20
  ident: bib49
  article-title: Speeding Up Slicing
  publication-title: SIGSOFT Softw. Eng. Notes
– volume: 41
  start-page: 387
  issue: 6
  year: 2006
  end-page: 400
  ident: bib54
  article-title: Refinement-based Context-sensitive Points-to Analysis for Java
  publication-title: SIGPLAN Not
– year: 2005
  ident: bib55
  article-title: Demand-driven Points-to Analysis for Java
  publication-title: OOPSLA
– start-page: 112
  year: 2020
  end-page: 140
  ident: bib12
  publication-title: Programming Languages and Systems
– start-page: 780
  year: 2020
  end-page: 793
  ident: bib34
  publication-title: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (London, UK) (PLDI 2020)
  doi: 10.1145/3385412.3386021
– year: 2012
  ident: bib6
  publication-title: SOAP
– start-page: 98
  year: 2009
  end-page: 122
  ident: bib62
  article-title: Scaling CFL-Reachability-Based Points-To Analysis Using Context-Sensitive Must-Not-Alias Analysis
  publication-title: Proceedings of the 23rd European Conference on ECOOP 2009 — Object-Oriented Programming (Genoa)
– volume: 3
  start-page: 29
  year: 2019
  ident: bib36
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3360574
– start-page: 1
  year: 2022a
  end-page: 15
  ident: bib18
  publication-title: Proceedings of the 37th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS ’22)
  doi: 10.1145/3531130.3533345
– start-page: 132
  year: 1984
  end-page: 143
  ident: bib66
  publication-title: Proceedings of the 1984 SIGPLAN Symposium on Compiler Construction (Montreal, Canada) (SIGPLAN ’84)
  doi: 10.1145/502874.502888
– start-page: 177
  year: 2023
  end-page: 202
  ident: bib19
  publication-title: Verification, Model Checking, and Abstract Interpretation
– start-page: 175
  year: 2009
  end-page: 189
  ident: bib65
  article-title: An Efficient Algorithm for Solving the Dyck-CFL Reachability Problem on Trees
  publication-title: Proceedings of the 18th European Symposium on Programming Languages and Systems: Held As Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009 (ESOP)
– year: 2013
  ident: bib67
– year: 1996
  ident: bib3
  publication-title: Software Change Impact Analysis
– volume: 52
  start-page: 344
  issue: 1
  year: 2017
  end-page: 358
  ident: bib68
  article-title: Context-Sensitive Data-Dependence Analysis via Linear Conjunctive Language Reachability
  publication-title: SIGPLAN Not
  doi: 10.1145/3093333.3009848
– year: 2018
  ident: bib40
  publication-title: Static Program Analysis
– volume: 7
  start-page: 427
  issue: 3-4
  year: 1989
  end-page: 444
  ident: bib27
  article-title: On the Relationship of Congruence Closureand Unification
  publication-title: Journal of Symbolic Computation
  doi: 10.1016/S0747-7171(89)80018-5
– start-page: 106
  year: 2015
  end-page: 117
  ident: bib26
  publication-title: Proceedings of the 2015 International Symposium on Software Testing and Analysis (Baltimore, MD, USA) (ISSTA 2015)
  doi: 10.1145/2771783.2771803
– start-page: 320
  year: 2016
  end-page: 331
  ident: bib57
  publication-title: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (Singapore, Singapore) (ASE ’16)
  doi: 10.1145/2970276.2970298
– volume: 43
  start-page: 159
  issue: 1
  year: 2008
  end-page: 169
  ident: bib14
  article-title: Subcubic Algorithms for Recursive State Machines
  publication-title: SIGPLAN Not
  doi: 10.1145/1328897.1328460
– year: 2008
  ident: bib2
  article-title: SPECjvm2008 Benchmark Suit
– start-page: 936
  year: 2019
  end-page: 948
  ident: bib61
  publication-title: Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering (San Diego, California) (ASE ’19)
  doi: 10.1109/ASE.2019.00091
– start-page: 448
  year: 1991
  end-page: 472
  ident: bib22
  publication-title: Functional Programming Languages and Computer Architecture (Lecture Notes in Computer Science)
  doi: 10.1007/3540543961_22
– start-page: 230
  year: 1990
  end-page: 242
  ident: bib64
  article-title: Graph-theoretic Methods in Database Theory
  publication-title: Proceedings of the Ninth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PODS)
– start-page: 97
  year: 2015
  end-page: 109
  ident: bib13
  publication-title: Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
  doi: 10.1145/2676726.2676979
– start-page: 32
  year: 1996
  end-page: 41
  ident: bib56
  publication-title: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (St. Petersburg Beach, Florida, USA) (POPL ’96)
  doi: 10.1145/237721.237727
– start-page: 205
  year: 1992
  end-page: 215
  ident: bib23
  publication-title: Proceedings of the 1992 ACM Conference on LISP and Functional Programming (LFP ’92)
  doi: 10.1145/141471.141542
– start-page: 54
  year: 2001
  end-page: 66
  ident: bib44
  article-title: Type-base Flow Analysis: From Polymorphic Subtyping to CFL-reachability
  publication-title: Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL)
– start-page: 83
  year: 2015
  end-page: 95
  ident: bib59
  article-title: Summary-Based Context-Sensitive Data-Dependence Analysis in Presence of Callbacks
  publication-title: Proceedings of the 42Nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL)
– start-page: 619
  year: 2015
  end-page: 629
  ident: bib31
  publication-title: Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering (Lincoln, Nebraska) (ASE ’15)
  doi: 10.1109/ASE.2015.9
– start-page: 47
  year: 2006
  end-page: 64
  ident: bib32
  article-title: Context-Sensitive Points-to Analysis: Is It Worth It?
  publication-title: Proceedings of the 15th International Conference on Compiler Construction (CC)
– start-page: 163
  year: 1995b
  end-page: 196
  ident: bib50
  publication-title: Demand Interprocedural Program Analysis Using Logic Databases
  doi: 10.1007/978-1-4615-2207-2_8
– year: 2003
  ident: bib1
  article-title: T. J. Watson Libraries for Analysis (WALA)
– volume: 6
  start-page: 29
  year: 2022
  ident: bib33
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3498724
– year: 2020
  ident: bib60
  article-title: Dynamic connectivity data structure by Holm, de Lichtenberg, and Thorup
– volume: 41
  start-page: 31
  issue: 1
  year: 2019
  ident: bib35
  article-title: Rethinking Incremental and Parallel Pointer Analysis
  publication-title: ACM Trans. Program. Lang. Syst
  doi: 10.1145/3293606
– start-page: 197
  year: 2008
  end-page: 208
  ident: bib69
  publication-title: Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’08)
– volume: 4
  start-page: 28 pages
  year: 2020
  ident: bib37
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3428193
– volume: 51
  start-page: 733
  issue: 1
  year: 2016
  end-page: 747
  ident: bib11
  article-title: Algorithms for Algebraic Path Properties in Concurrent Systems of Constant Treewidth Components
  publication-title: SIGPLAN Not
  doi: 10.1145/2914770.2837624
– start-page: 5
  year: 1997
  end-page: 19
  ident: bib46
  article-title: Program Analysis via Graph Reachability
  publication-title: Proceedings of the 1997 International Symposium on Logic Programming (ILPS)
– start-page: 24
  year: 2001
  end-page: 34
  ident: bib21
  publication-title: Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation
  doi: 10.1145/378795.378802
– start-page: 124:1
  year: 2022b
  end-page: 124:20
  ident: bib17
  publication-title: 49th International Colloquium on Automata, Languages, and Programming (ICALP 2022) (Leibniz International Proceedings in Informatics (LIPIcs), Vol. 229)
  doi: 10.4230/LIPIcs.ICALP.2022.124
– year: 1995
  ident: bib48
  publication-title: POPL
– year: 2023
  ident: bib30
  article-title: On-The-Fly Static Analysis via Dynamic Bidirected Dyck Reachability
– volume: 16
  start-page: 723
  issue: 7
  year: 1990
  end-page: 728
  ident: bib8
  article-title: A critical analysis of incremental iterative data flow analysis algorithms
  publication-title: IEEE Transactions on Software Engineering
  doi: 10.1109/32.56098
– volume: 4
  start-page: 29
  year: 2020
  ident: bib39
  article-title: FlowCFL: Generalized Type-Based Reachability Analysis: Graph Reduction and Equivalence of CFL-Based and Type-Based Reachability
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3428246
– volume: 4
  start-page: 28
  year: 2020
  ident: bib42
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3428195
– volume: 6
  start-page: 26
  year: 2022
  ident: bib28
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3498673
– start-page: 1
  year: 1995a
  end-page: 11
  ident: bib45
  publication-title: Proceedings of the 1995 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation (PEPM ’95)
– volume: 2
  start-page: 30
  year: 2018
  ident: bib10
  publication-title: Proc. ACM Program. Lang
– start-page: 342
  year: 1997
  ident: bib20
  publication-title: Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science (LICS ’97)
– start-page: 264
  year: 2012
  end-page: 274
  ident: bib52
  publication-title: Proceedings of the Tenth International Symposium on Code Generation and Optimization (CGO ’12)
– start-page: 288
  year: 2014
  end-page: 298
  ident: bib4
  publication-title: Proceedings of the 36th International Conference on Software Engineering (Hyderabad, India) (ICSE 2014)
  doi: 10.1145/2568225.2568243
– start-page: 155
  year: 2011
  end-page: 165
  ident: bib63
  article-title: Demand-driven Context-sensitive Alias Analysis for Java
  publication-title: Proceedings of the 2011 International Symposium on Software Testing and Analysis (ISSTA)
– start-page: 124
  year: 2010
  end-page: 144
  ident: bib41
  publication-title: Compiler Construction
– volume: 171
  year: 2021
  ident: bib9
  article-title: Tight bounds for reachability problems on one-counter and pushdown systems
  publication-title: Inform. Process. Lett
  doi: 10.1016/j.ipl.2021.106135
– volume: 48
  start-page: 723
  issue: 4
  year: 2001
  end-page: 760
  ident: bib24
  article-title: Poly-Logarithmic Deterministic Fully-Dynamic Algorithms for Connectivity, Minimum Spanning Tree, 2-Edge, and Biconnectivity
  publication-title: J. ACM
  doi: 10.1145/502090.502095
– volume: 44
  start-page: 243
  issue: 10
  year: 2009
  end-page: 262
  ident: bib7
  article-title: Strictly Declarative Specification of Sophisticated Points-to Analyses
  publication-title: SIGPLAN Not
  doi: 10.1145/1639949.1640108
– year: 1995
  ident: bib25
  article-title: Demand Interprocedural Dataflow Analysis
  publication-title: SIGSOFT Softw. Eng. Notes
– volume: 5
  start-page: 29 pages
  year: 2021
  ident: bib38
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3434315
– volume: 44
  start-page: 669
  issue: 5
  year: 1997
  end-page: 696
  ident: bib16
  article-title: Sparsification—a Technique for Speeding up Dynamic Graph Algorithms
  publication-title: J. ACM
  doi: 10.1145/265910.265914
– volume: 7
  start-page: 27
  year: 2023
  ident: bib29
  publication-title: Proc. ACM Program. Lang
  doi: 10.1145/3571252
– volume: 9
  start-page: 5
  issue: 4
  year: 2023
  end-page: 25
  ident: bib43
  article-title: CFL/Dyck Reachability: An Algorithmic Perspective
  publication-title: ACM SIGLOG News
  doi: 10.1145/3583660.3583664
– ident: e_1_3_1_27_1
  doi: 10.1145/2771783.2771803
– ident: e_1_3_1_24_1
  doi: 10.1145/141471.141542
– ident: e_1_3_1_28_1
  doi: 10.1016/S0747-7171(89)80018-5
– ident: e_1_3_1_17_1
  doi: 10.1145/265910.265914
– ident: e_1_3_1_36_1
  doi: 10.1145/3293606
– ident: e_1_3_1_39_1
  doi: 10.1145/3434315
– ident: e_1_3_1_57_1
  doi: 10.1145/237721.237727
– ident: e_1_3_1_70_1
  doi: 10.1145/1328438.1328464
– ident: e_1_3_1_2_1
– ident: e_1_3_1_7_1
  doi: 10.1145/2259051.2259052
– ident: e_1_3_1_49_1
  doi: 10.1145/199448.199462
– ident: e_1_3_1_23_1
  doi: 10.1007/3540543961_22
– ident: e_1_3_1_51_1
  doi: 10.1007/978-1-4615-2207-2_8
– ident: e_1_3_1_68_1
  doi: 10.1145/2491956.2462159
– ident: e_1_3_1_42_1
  doi: 10.1007/978-3-642-11970-5_8
– ident: e_1_3_1_19_1
  doi: 10.1145/3531130.3533345
– ident: e_1_3_1_45_1
  doi: 10.1145/360204.360208
– start-page: 175
  year: 2009
  ident: e_1_3_1_66_1
  article-title: An Efficient Algorithm for Solving the Dyck-CFL Reachability Problem on Trees
  publication-title: Proceedings of the 18th European Symposium on Programming Languages and Systems: Held As Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009 (ESOP)
– ident: e_1_3_1_40_1
  doi: 10.1145/3428246
– ident: e_1_3_1_48_1
  doi: 10.1145/345099.345137
– start-page: 5
  year: 1997
  ident: e_1_3_1_47_1
  article-title: Program Analysis via Graph Reachability
  publication-title: Proceedings of the 1997 International Symposium on Logic Programming (ILPS)
– ident: e_1_3_1_32_1
  doi: 10.1109/ASE.2015.9
– ident: e_1_3_1_62_1
  doi: 10.1109/ASE.2019.00091
– ident: e_1_3_1_63_1
  doi: 10.1007/978-3-642-03013-0_6
– ident: e_1_3_1_11_1
  doi: 10.1145/3158118
– ident: e_1_3_1_69_1
  doi: 10.1145/3093333.3009848
– volume-title: Static Program Analysis
  year: 2018
  ident: e_1_3_1_41_1
– ident: e_1_3_1_37_1
  doi: 10.1145/3360574
– ident: e_1_3_1_25_1
  doi: 10.1145/502090.502095
– ident: e_1_3_1_12_1
  doi: 10.1145/2914770.2837624
– ident: e_1_3_1_20_1
  doi: 10.1007/978-3-031-24950-1_9
– start-page: 880
  volume-title: Programming Languages and Systems
  year: 2017
  ident: e_1_3_1_59_1
  doi: 10.1007/978-3-662-54434-1_33
– ident: e_1_3_1_55_1
  doi: 10.1145/1133255.1134027
– ident: e_1_3_1_21_1
  doi: 10.1109/LICS.1997.614960
– ident: e_1_3_1_34_1
  doi: 10.1145/3498724
– ident: e_1_3_1_8_1
  doi: 10.1145/1639949.1640108
– ident: e_1_3_1_61_1
– ident: e_1_3_1_56_1
  doi: 10.1145/1094811.1094817
– ident: e_1_3_1_60_1
  doi: 10.1145/2676726.2676997
– ident: e_1_3_1_18_1
  doi: 10.4230/LIPIcs.ICALP.2022.124
– ident: e_1_3_1_53_1
  doi: 10.1145/2259016.2259050
– ident: e_1_3_1_65_1
  doi: 10.1145/298514.298576
– ident: e_1_3_1_22_1
  doi: 10.1145/378795.378802
– ident: e_1_3_1_58_1
  doi: 10.1145/2970276.2970298
– ident: e_1_3_1_38_1
  doi: 10.1145/3428193
– start-page: 112
  volume-title: Programming Languages and Systems
  year: 2020
  ident: e_1_3_1_13_1
  doi: 10.1007/978-3-030-44914-8_5
– ident: e_1_3_1_16_1
  doi: 10.1145/3498702
– start-page: 56
  year: 2019
  ident: e_1_3_1_52_1
  article-title: Differential Datalog
  publication-title: Datalog 2.0 2019 - 3rd International Workshop on the Resurgence of Datalog in Academia and Industry (CEUR Workshop Proceedings, Vol. 2368)
– ident: e_1_3_1_64_1
  doi: 10.1145/2001420.2001440
– ident: e_1_3_1_9_1
  doi: 10.1109/32.56098
– ident: e_1_3_1_14_1
  doi: 10.1145/2676726.2676979
– ident: e_1_3_1_46_1
  doi: 10.1145/215465.215466
– ident: e_1_3_1_5_1
  doi: 10.1145/2568225.2568243
– ident: e_1_3_1_6_1
  doi: 10.1145/1167473.1167488
– ident: e_1_3_1_67_1
  doi: 10.1145/502874.502888
– ident: e_1_3_1_54_1
  doi: 10.1145/3290361
– ident: e_1_3_1_4_1
  doi: 10.5555/525066
– ident: e_1_3_1_10_1
  doi: 10.1016/j.ipl.2021.106135
– ident: e_1_3_1_26_1
  doi: 10.1145/222132.222146
– ident: e_1_3_1_44_1
  doi: 10.1145/3583660.3583664
– ident: e_1_3_1_3_1
– ident: e_1_3_1_31_1
– ident: e_1_3_1_35_1
  doi: 10.1145/3385412.3386021
– ident: e_1_3_1_43_1
  doi: 10.1145/3428195
– ident: e_1_3_1_30_1
  doi: 10.1145/3571252
– ident: e_1_3_1_33_1
  doi: 10.1007/11688839_5
– ident: e_1_3_1_15_1
  doi: 10.1145/1328897.1328460
– ident: e_1_3_1_50_1
  doi: 10.1145/195274.195287
– ident: e_1_3_1_29_1
  doi: 10.1145/3498673
SSID ssj0001934839
Score 2.2429388
Snippet Dyck reachability is a principled, graph-based formulation of a plethora of static analyses. Bidirected graphs are used for capturing dataflow through mutable...
SourceID crossref
acm
SourceType Enrichment Source
Index Database
Publisher
StartPage 1239
SubjectTerms Program analysis
Software and its engineering
Software verification and validation
Theory and algorithms for application domains
Theory of computation
SubjectTermsDisplay Software and its engineering -- Software verification and validation
Theory of computation -- Program analysis
Theory of computation -- Theory and algorithms for application domains
Title On-the-Fly Static Analysis via Dynamic Bidirected Dyck Reachability
URI https://dl.acm.org/doi/10.1145/3632884
Volume 8
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV3db9MwELfKeOEFxgBRYMgPiJfJY0mcxH3cOqYJUVqJTtpbdXYSUXXNqtFO6h72yr-9u9hJvDKJj4dYkWVbie90dz7f3Y-xD3j0z5XSINJMFZSSEwk8RihhZCJ7GZrYpqrOP_iWnJ7JL-fxeafzy4taWi31vrl5MK_kf6iKfUhXypL9B8o2i2IHviN9sUUKY_tXNB6WAu03cXKxrozGqWlrjFxPYe_Yos3vHU2t4kLb8nhtqIIsGFef-96l7qhRZlV8x2F_QFcJLoJrTj6F2rvZ3gARQL1NK_v-A8oZoOrDZ41tG-sDNhCgnM78bOtrkrqEmPSzCayEZt3xarGoXK3D-QyufNdEKCvXhOetDGUai0DaFOj9_IE-J4KVx2mj4eirJ1FRs_Y87RyEFoXnd8kvqUhGlEShsphz92trb-i8JhLR5mXHEzfxEXsc4nmDoDAGt56zrhdJVaHSNZ9vE7Bp7ic3l-wbM_fsG89QGW-zp-6EwQ8tuzxnnbzcYc9q9A7uhPkL1m-5h1vu4TX3cOQe7riHt9zDiXu4zz0v2dnJ53H_VDhIDQH4X0tB1dw04LEVTBxAGCQ6lZCg3aZVYDJ8yTWYPAVdGFCFSQrKg1QEARDGpkh19IptlZdl_ppxSZY2aCpzrSX0CGggB5TmBGGQHRxkXbaD2zFZ2KIp9QZ32cd6eybGVaEnMJSLyQYluow3A-s1Noa8-fOQt-xJy5jv2NbyapXvohW51O8rCt8Bhvlvnw
linkProvider ISSN International Centre
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%3Ajournal&rft.genre=article&rft.atitle=On-the-Fly+Static+Analysis+via+Dynamic+Bidirected+Dyck+Reachability&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Krishna%2C+Shankaranarayanan&rft.au=Lal%2C+Aniket&rft.au=Pavlogiannis%2C+Andreas&rft.au=Tuppe%2C+Omkar&rft.date=2024-01-02&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=8&rft.issue=POPL&rft.spage=1239&rft.epage=1268&rft_id=info:doi/10.1145%2F3632884&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3632884
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon