SSA Translation Is an Abstract Interpretation
Static single assignment (SSA) form is a popular intermediate representation that helps implement useful static analyses, including global value numbering (GVN), sparse dataflow analyses, or SMT-based abstract interpretation or model checking. However, the precision of the SSA translation itself dep...
Uloženo v:
| Vydáno v: | Proceedings of ACM on programming languages Ročník 7; číslo POPL; s. 1895 - 1924 |
|---|---|
| Hlavní autor: | |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
New York, NY, USA
ACM
09.01.2023
|
| Edice: | POPL 2023 - the 50th ACM SIGPLAN Symposium on Principles of Programming Languages |
| Témata: | |
| ISSN: | 2475-1421, 2475-1421 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | Static single assignment (SSA) form is a popular intermediate representation that helps implement useful static analyses, including global value numbering (GVN), sparse dataflow analyses, or SMT-based abstract interpretation or model checking. However, the precision of the SSA translation itself depends on static analyses, and a priori static analysis is even indispensable in the case of low-level input languages like machine code. To solve this chicken-and-egg problem, we propose to turn the SSA translation into a standard static analysis based on abstract interpretation. This allows the SSA translation to be combined with other static analyses in a single pass, taking advantage of the fact that it is more precise to combine analyses than applying passes in sequence. We illustrate the practicality of these results by writing a simple dataflow analysis that performs SSA translation, optimistic global value numbering, sparse conditional constant propagation, and loop-invariant code motion in a single small pass; and by presenting a multi-language static analyzer for both C and machine code that uses the SSA abstract domain as its main intermediate representation. |
|---|---|
| AbstractList | Static single assignment (SSA) form is a popular intermediate representation that helps implement useful static analyses, including global value numbering (GVN), sparse dataflow analyses, or SMT-based abstract interpretation or model checking. However, the precision of the SSA translation itself depends on static analyses, and a priori static analysis is even indispensable in the case of low-level input languages like machine code. To solve this chicken-and-egg problem, we propose to turn the SSA translation into a standard static analysis based on abstract interpretation. This allows the SSA translation to be combined with other static analyses in a single pass, taking advantage of the fact that it is more precise to combine analyses than applying passes in sequence. We illustrate the practicality of these results by writing a simple dataflow analysis that performs SSA translation, optimistic global value numbering, sparse conditional constant propagation, and loop-invariant code motion in a single small pass; and by presenting a multi-language static analyzer for both C and machine code that uses the SSA abstract domain as its main intermediate representation. Static single assignment (SSA) form is a popular intermediate representation that helps implement useful static analyses, including global value numbering (GVN), sparse dataflow analyses, or SMT-based abstract interpretation or model checking. However, the precision of the SSA translation itself depends on static analyses, and a priori static analysis is even indispensable in the case of low-level input languages like machine code. To solve this chicken-and-egg problem, we propose to turn the SSA translation into a standard static analysis based on abstract interpretation. This allows the SSA translation to be combined with other static analyses in a single pass, taking advantage of the fact that it is more precise to combine analyses than applying passes in sequence. We illustrate the practicality of these results by writing a simple dataflow analysis that performs SSA translation, optimistic global value numbering, sparse conditional constant propagation, and loop-invariant code motion in a single small pass; and by presenting a multi-language static analyzer for both C and machine code that uses the SSA abstract domain as its main intermediate representation. |
| ArticleNumber | 65 |
| Author | Lemerre, Matthieu |
| Author_xml | – sequence: 1 givenname: Matthieu orcidid: 0000-0002-1081-0467 surname: Lemerre fullname: Lemerre, Matthieu email: matthieu.lemerre@cea.fr organization: Université Paris-Saclay - CEA LIST, France |
| BackLink | https://cea.hal.science/cea-03849637$$DView record in HAL |
| BookMark | eNpl0M1LwzAUAPAgE5xzePfUm3io5jVJkxzLcK5Q8LB5Dq9pipWuHUkR_O-tdhPR03vwfryvSzLr-s4Rcg30HoCLByYkJEKdkXnCpYiBJzD7lV-QZQhvlFLQjCum5yTebrNo57ELLQ5N30V5iLCLsjIMHu0Q5d3g_MG74bt6Rc5rbINbHuOCvKwfd6tNXDw_5ausiJEBDHHptJVWgBNcpRVnQtEqBVkqWSZS1EogK3WVaucAdIq1BFsC2NrxSlAukS3I3dT3FVtz8M0e_YfpsTGbrDDWoaFMcZ0y-Z6MNp6s9X0I3tXGNtO24wVNa4Car9eY42tGf_vHnwb8lzeTRLv_QafiJ3VoadE |
| CitedBy_id | crossref_primary_10_1007_s10703_024_00456_z crossref_primary_10_1145_3729298 crossref_primary_10_1002_spe_70014 crossref_primary_10_1145_3656392 crossref_primary_10_1145_3571258 |
| Cites_doi | 10.1145/2579080 10.1145/3434304 10.1145/512950.512973 10.1007/s10703-021-00366-4 10.1145/3571258 10.1007/978-3-030-41600-3_1 10.1145/3178372.3179503 10.1007/978-3-319-48989-6_15 10.1007/BFb0039704 10.1007/978-3-540-93900-9_19 10.1145/2103656.2103709 10.1145/1516507.1516510 10.1145/360933.360975 10.1145/360248.360252 10.1007/3-540-48294-6_15 10.1007/978-3-030-94583-1_10 10.1145/115372.115320 10.1007/978-3-642-14052-5_26 10.1007/978-3-540-24622-0_21 10.1145/103135.103136 10.1007/978-3-540-30579-8_11 10.1007/978-3-642-37051-9_6 10.1145/503272.503298 10.1007/978-3-319-52234-0_7 10.29007/dc9b 10.1007/978-3-642-54807-9_2 10.1145/278283.278285 10.1145/1863523.1863539 10.1145/1993498.1993532 10.1145/512927.512945 10.1145/99583.99594 10.1109/RTAS52030.2021.00011 10.1007/978-3-662-48288-9_9 10.1016/0022-0000(86)90031-0 10.1007/978-3-030-94583-1_11 10.1007/978-3-662-49122-5_4 10.1007/978-3-540-27864-1_17 10.1007/11609773_23 10.1145/202529.202532 10.1145/567752.567778 10.1007/3-540-46423-9_8 10.1145/201059.201061 10.1007/978-3-540-24730-2_15 10.1016/j.entcs.2012.11.003 10.1145/2892208.2892211 10.1016/S0022-0000(75)80056-0 10.1145/199448.199464 10.1007/3-540-36377-7_5 10.1145/503272.503290 10.1145/73560.73561 10.1016/j.ipl.2004.10.015 10.1145/73560.73562 10.1145/2038642.2038662 10.3233/FI-1996-263401 10.1016/S0304-3975(00)00313-3 10.1145/3554341 10.1145/202530.202534 10.1017/CBO9780511811449 10.1145/197320.197331 10.1137/0211007 10.1007/978-3-540-77505-8_23 10.1007/978-3-319-21690-4_20 10.1007/978-3-642-18275-4_6 10.1145/3316482.3326354 |
| ContentType | Journal Article |
| Copyright | Owner/Author Distributed under a Creative Commons Attribution 4.0 International License |
| Copyright_xml | – notice: Owner/Author – notice: Distributed under a Creative Commons Attribution 4.0 International License |
| DBID | AAYXX CITATION 1XC VOOES |
| DOI | 10.1145/3571258 |
| DatabaseName | CrossRef Hyper Article en Ligne (HAL) Hyper Article en Ligne (HAL) (Open Access) |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 1924 |
| ExternalDocumentID | oai:HAL:cea-03849637v2 10_1145_3571258 3571258 |
| GroupedDBID | AAKMM AAYFX ACM ADPZR AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS GUFHI LHSKQ M~E OK1 ROL AAYXX AEFXT AEJOY CITATION 1XC EBS VOOES |
| ID | FETCH-LOGICAL-a311t-be9c7c51e5486d43580d617b87b275f85a3b9d69ee1196af71cb11cfe4d5047a3 |
| ISICitedReferencesCount | 6 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000910847500065&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 2475-1421 |
| IngestDate | Tue Oct 14 20:39:31 EDT 2025 Sat Nov 29 07:54:30 EST 2025 Tue Nov 18 20:44:38 EST 2025 Mon Mar 17 16:30:35 EDT 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | POPL |
| Keywords | Static Single Assignment (SSA) Cyclic term graph Abstract interpretation Theory of computation → Program analysis Formal software verification CCS Concepts: • Software and its engineering → Compilers Abstraction Program verification Equational logic and rewriting Static Single Assignment (SSA) |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Distributed under a Creative Commons Attribution 4.0 International License: http://creativecommons.org/licenses/by/4.0 |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-a311t-be9c7c51e5486d43580d617b87b275f85a3b9d69ee1196af71cb11cfe4d5047a3 |
| ORCID | 0000-0002-1081-0467 |
| OpenAccessLink | https://cea.hal.science/cea-03849637 |
| PageCount | 30 |
| ParticipantIDs | hal_primary_oai_HAL_cea_03849637v2 crossref_citationtrail_10_1145_3571258 crossref_primary_10_1145_3571258 acm_primary_3571258 |
| PublicationCentury | 2000 |
| PublicationDate | 2023-01-09 |
| PublicationDateYYYYMMDD | 2023-01-09 |
| PublicationDate_xml | – month: 01 year: 2023 text: 2023-01-09 day: 09 |
| PublicationDecade | 2020 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationSeriesTitle | POPL 2023 - the 50th ACM SIGPLAN Symposium on Principles of Programming Languages |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationTitleAbbrev | ACM PACMPL |
| PublicationYear | 2023 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| References | Zena M Ariola and Jan Willem Klop. 1996. Equational term graph rewriting. Fundamenta Informaticae, 26, 3, 4 (1996), 207–240. https://doi.org/10.3233/FI-1996-263401 10.3233/FI-1996-263401 Gary A Kildall. 1973. A unified approach to global program optimization. In 1st annual ACM SIGACT-SIGPLAN Symposium on Principles of programming languages (POPL 1973). https://doi.org/10.1145/512927.512945 10.1145/512927.512945 François Bourdoncle. 1993. Efficient chaotic iteration strategies with widenings. In Formal Methods in Programming and their Applications. 128–141. https://doi.org/10.1007/BFb0039704 10.1007/BFb0039704 Patrick Cousot. 1977. Asynchronous iterative methods for solving a fixed point system of monotone equations in a complete lattice. Laboratoire IMAG, Université scientifique et médicale de Grenoble, Grenoble, France. https://www.di.ens.fr/~cousot/publications.www/Cousot-IMAG-RR88-Sep-1977.pdf Patrick Cousot. 2002. Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. Theor. Comput. Sci., 277, 1-2 (2002), 47–103. https://doi.org/10.1016/S0304-3975(00)00313-3 10.1016/S0304-3975(00)00313-3 Benjamin Farinier, Robin David, Sébastien Bardin, and Matthieu Lemerre. 2018. Arrays Made Simpler: An Efficient, Scalable and Thorough Preprocessing. In 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning, Gilles Barthe, Geoff Sutcliffe, and Margus Veanes (Eds.) (EPiC Series in Computing, Vol. 57). EasyChair, 363–380. https://doi.org/10.29007/dc9b 10.29007/dc9b Patrick Cousot. 1978. Méthodes itératives de construction et d’approximation de points fixes d’opérateurs monotones sur un treillis, analyse sémantique de programmes (in French). Ph.D. Dissertation. Université Joseph Fourier. Grenoble, France. https://www.di.ens.fr/~cousot/publications.www/CousotTheseEsSciences1978.pdf Thomas Reinbacher and Jörg Brauer. 2011. Precise control flow reconstruction using boolean logic. In 11th International Conference on Embedded Software, Samarjit Chakraborty, Ahmed Jerraya, Sanjoy K. Baruah, and Sebastian Fischmeister (Eds.) (EMSOFT 2011). ACM, 117–126. https://doi.org/10.1145/2038642.2038662 10.1145/2038642.2038662 Bor-Yuh Evan Chang and Xavier Rival. 2013. Modular Construction of Shape-Numeric Analyzers. In Festschrift for Dave Schmidt, Anindya Banerjee, Olivier Danvy, Kyung-Goo Doh, and John Hatcliff (Eds.) (EPTCS, Vol. 129). https://doi.org/10.48550/arXiv.1309.5138 Greg Nelson. 1980. Techniques for program verification. Ph.D. Dissertation. Stanford University, CA, USA. Julien Henry, David Monniaux, and Matthieu Moy. 2012. PAGAI: a path sensitive static analyzer. In Tools for Automatic Program Analysis (TAPAS), Bertrand Jeannet (Ed.). https://doi.org/10.1016/j.entcs.2012.11.003 10.1016/j.entcs.2012.11.003 Gilles Barthe, Delphine Demange, and David Pichardie. 2014. Formal Verification of an SSA-Based Middle-End for CompCert. ACM Trans. Program. Lang. Syst., 36, 1 (2014), 4:1–4:35. https://doi.org/10.1145/2579080 10.1145/2579080 Edsger W. Dijkstra. 1975. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM, 18, 8 (1975), aug, 453–457. https://doi.org/10.1145/360933.360975 10.1145/360933.360975 Olivier Nicole, Matthieu Lemerre, and Xavier Rival. 2021. Binsec/Codex, an abstract interpreter to verify safety and security properties of systems code. https://binsec.github.io/assets/publications/papers/2021-rtas-technical-report-analysis.pdf Matthieu Journault, Antoine Miné, Raphaël Monat, and Abdelraouf Ouadjaout. 2019. Combinations of Reusable Abstract Domains for a Multilingual Static Analyzer. In 11th International Conference on Verified Software Theories, Tools, and Experiments - Revised Selected Papers, Supratik Chakraborty and Jorge A. Navas (Eds.) (Lecture Notes in Computer Science, Vol. 12031). Springer, 1–18. https://doi.org/10.1007/978-3-030-41600-3_1 10.1007/978-3-030-41600-3_1 Oliver Rüthing, Jens Knoop, and Bernhard Steffen. 1999. Detecting Equalities of Variables: Combining Efficiency with Precision. In 6th Static Analysis Symposium – SAS ’99, Agostino Cortesi and Gilberto Filé (Eds.) (Lecture Notes in Computer Science, Vol. 1694). Springer, 232–247. https://doi.org/10.1007/3-540-48294-6_15 10.1007/3-540-48294-6_15 Matthias Braun, Sebastian Buchwald, Sebastian Hack, Roland Leiß a, Christoph Mallon, and Andreas Zwinkau. 2013. Simple and Efficient Construction of Static Single Assignment Form. In 22nd International Conference on Compiler Construction (CC 2013). https://doi.org/10.1007/978-3-642-37051-9_6 10.1007/978-3-642-37051-9_6 Hugo Illous, Matthieu Lemerre, and Xavier Rival. 2021. A relational shape abstract domain. Formal Methods Syst. Des., 57, 3 (2021), 343–400. https://doi.org/10.1007/s10703-021-00366-4 10.1007/s10703-021-00366-4 André Luiz Camargos Tavares, Benoit Boissinot, Fernando Magno Quintão Pereira, and Fabrice Rastello. 2014. Parameterized Construction of Program Representations for Sparse Dataflow Analyses. In 23rd International Conference on Compiler Construction – CC 2014, Albert Cohen (Ed.) (Lecture Notes in Computer Science, Vol. 8409). Springer, 18–39. https://doi.org/10.1007/978-3-642-54807-9_2 10.1007/978-3-642-54807-9_2 Delphine Demange, Yon Fernández de Retana, and David Pichardie. 2018. Semantic reasoning about the sea of nodes. In 27th International Conference on Compiler Construction, Christophe Dubach and Jingling Xue (Eds.) (CC 2018). ACM, 163–173. https://doi.org/10.1145/3178372.3179503 10.1145/3178372.3179503 Cliff Click and Michael Paleczny. 1995. A simple graph-based intermediate representation. ACM Sigplan Notices, 30, 3 (1995), 35–49. https://doi.org/10.1145/202530.202534 10.1145/202530.202534 Jacobus Willem de Bakker and Lambert Meertens. 1975. On the Completeness of the Inductive Assertion Method. J. Comput. Syst. Sci., 11, 3 (1975), 323–357. https://doi.org/10.1016/S0022-0000(75)80056-0 10.1016/S0022-0000(75)80056-0 Fabrice Rastello. 2016. SSA-based Compiler Design (1st ed.). Springer Publishing Company, Incorporated. John H. Reif and Robert Endre Tarjan. 1982. Symbolic Program Analysis in Almost-Linear Time. SIAM J. Comput., 11, 1 (1982), 81–93. https://doi.org/10.1137/0211007 10.1137/0211007 K.R.M. Leino. 2005. Efficient weakest preconditions. Inform. Process. Lett., 93, 6 (2005), 281–288. https://doi.org/10.1016/j.ipl.2004.10.015 10.1016/j.ipl.2004.10.015 Davide Sangiorgi. 2009. On the origins of bisimulation and coinduction. ACM Trans. Program. Lang. Syst., 31, 4 (2009), 15:1–15:41. https://doi.org/10.1145/1516507.1516510 10.1145/1516507.1516510 Sumit Gulwani and George C. Necula. 2004. A Polynomial-Time Algorithm for Global Value Numbering. In Static Analysis Symposium, Roberto Giacobazzi (Ed.) (SAS 2004). Springer, 212–227. https://doi.org/10.1007/978-3-540-27864-1_17 10.1007/978-3-540-27864-1_17 James Stanier. 2016. Graphs and Gating Functions (1st ed.). Antoine Miné. 2006. Symbolic methods to enhance the precision of numerical abstract domains. In International Workshop on Verification, Model Checking, and Abstract Interpretation (VMCAI 2006). 348–363. https://doi.org/10.1007/11609773_23 10.1007/11609773_23 Barry K Rosen, Mark N Wegman, and F Kenneth Zadeck. 1988. Global value numbers and redundant computations. In 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL 1988). 12–27. https://doi.org/10.1145/73560.73562 10.1145/73560.73562 Sorin Lerner, David Grove, and Craig Chambers. 2002. Composing dataflow analyses and transformations. In 29th SIGPLAN-SIGACT Symposium on Principles of Programming Languages, John Launchbury and John C. Mitchell (Eds.) (POPL 2002). ACM, 270–282. https://doi.org/10.1145/503272.503298 10.1145/503272.503298 Jianzhou Zhao, Santosh Nagarakatte, Milo M. K. Martin, and Steve Zdancewic. 2012. Formalizing the LLVM intermediate representation for verified program transformations. In 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, John Field and Michael Hicks (Eds.) (POPL 2012). 427–440. https://doi.org/10.1145/2103656.2103709 10.1145/2103656.2103709 Mark N. Wegman and F. Kenneth Zadeck. 1991. Constant Propagation with Conditional Branches. ACM Trans. Program. Lang. Syst., 13, 2 (1991), 181–210. https://doi.org/10.1145/103135.103136 10.1145/103135.103136 Johannes Kinder, Florian Zuleger, and Helmut Veith. 2009. An Abstract Interpretation-Based Framework for Control Flow Reconstruction from Binaries. In Verification, Model Checking, and Abstract Interpretation, Neil D. Jones and Markus Müller-Olm (Eds.) (VMCAI 2009). Springer, 214–228. https://doi.org/10.1007/978-3-540-93900-9_19 10.1007/978-3-540-93900-9_19 Thomas W. Reps, Shmuel Sagiv, and Greta Yorsh. 2004. Symbolic Implementation of the Best Transformer. In 5th International Conference on Verification, Model Checking, and Abstract Interpretation – VMCAI 2004, Bernhard Steffen and Giorgio Levi (Eds.) (Lecture Notes in Computer Science, Vol. 2937). Springer, 252–266. https://doi.org/10.1007/978-3-540-24622-0_21 10.1007/978-3-540-24622-0_21 Sébastien Bardin, Philippe Herrmann, and Franck Védrine. 2011. Refinement-Based CFG Reconstruction from Unstructured Programs. In 12th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI 2011, Vol. 6538). Springer, 54–69. https://doi.org/10.1007/978-3-642-18275-4_6 10.1007/978-3-642-18275-4_6 Adel Djoudi, Sébastien Bardin, and Éric Goubault. 2016. Recovering High-Level Conditions from Binary Programs. In : 21st International Symposium on Formal Methods (FM 2016). 235–253. https://doi.org/10.1007/978-3-319-48989-6_15 10.1007/978-3-319-48989-6_15 Chris Okasaki and Andrew Gill. 1998. Fast Mergeable Integer Maps. In Workshop on ML. 77–86. Sebastian Buchwald, Denis Lohner, and Sebastian Ullrich. 2016. Verified construction of static single assignment form. In 25th International Conference on Compiler Construction (CC 2016). ACM, 67–76. https://doi.org/10.1145/2892208.2892211 10.1145/2892208.2892211 David Brumley Stanier James (e_1_2_1_71_1) Cooper Keith D (e_1_2_1_22_1) e_1_2_1_20_1 e_1_2_1_41_1 e_1_2_1_66_1 e_1_2_1_68_1 e_1_2_1_45_1 e_1_2_1_62_1 e_1_2_1_43_1 e_1_2_1_64_1 e_1_2_1_28_1 e_1_2_1_49_1 e_1_2_1_26_1 e_1_2_1_47_1 Schneider Sigurd (e_1_2_1_69_1) Rastello Fabrice (e_1_2_1_60_1) e_1_2_1_31_1 e_1_2_1_77_1 e_1_2_1_8_1 e_1_2_1_56_1 Okasaki Chris (e_1_2_1_58_1) 1998 e_1_2_1_6_1 e_1_2_1_12_1 e_1_2_1_35_1 e_1_2_1_50_1 e_1_2_1_4_1 e_1_2_1_10_1 e_1_2_1_33_1 e_1_2_1_52_1 e_1_2_1_75_1 e_1_2_1_2_1 e_1_2_1_16_1 e_1_2_1_37_1 e_1_2_1_18_1 Evan Chang Bor-Yuh (e_1_2_1_17_1) Brumley David (e_1_2_1_14_1) 2013 e_1_2_1_42_1 e_1_2_1_40_1 e_1_2_1_67_1 e_1_2_1_46_1 e_1_2_1_61_1 e_1_2_1_21_1 e_1_2_1_44_1 e_1_2_1_63_1 e_1_2_1_27_1 e_1_2_1_25_1 e_1_2_1_48_1 e_1_2_1_29_1 Hack Sebastian (e_1_2_1_39_1) e_1_2_1_70_1 e_1_2_1_7_1 e_1_2_1_30_1 e_1_2_1_55_1 e_1_2_1_76_1 e_1_2_1_5_1 e_1_2_1_57_1 e_1_2_1_78_1 e_1_2_1_3_1 e_1_2_1_13_1 e_1_2_1_34_1 e_1_2_1_51_1 e_1_2_1_72_1 e_1_2_1_1_1 e_1_2_1_11_1 e_1_2_1_32_1 e_1_2_1_53_1 e_1_2_1_74_1 e_1_2_1_38_1 e_1_2_1_15_1 e_1_2_1_36_1 Cousot Patrick (e_1_2_1_23_1) 1977 e_1_2_1_59_1 e_1_2_1_9_1 e_1_2_1_19_1 |
| References_xml | – reference: Patrick Cousot. 1977. Asynchronous iterative methods for solving a fixed point system of monotone equations in a complete lattice. Laboratoire IMAG, Université scientifique et médicale de Grenoble, Grenoble, France. https://www.di.ens.fr/~cousot/publications.www/Cousot-IMAG-RR88-Sep-1977.pdf – reference: André Luiz Camargos Tavares, Benoit Boissinot, Fernando Magno Quintão Pereira, and Fabrice Rastello. 2014. Parameterized Construction of Program Representations for Sparse Dataflow Analyses. In 23rd International Conference on Compiler Construction – CC 2014, Albert Cohen (Ed.) (Lecture Notes in Computer Science, Vol. 8409). Springer, 18–39. https://doi.org/10.1007/978-3-642-54807-9_2 10.1007/978-3-642-54807-9_2 – reference: Mark N. Wegman and F. Kenneth Zadeck. 1991. Constant Propagation with Conditional Branches. ACM Trans. Program. Lang. Syst., 13, 2 (1991), 181–210. https://doi.org/10.1145/103135.103136 10.1145/103135.103136 – reference: Patrick Cousot and Radhia Cousot. 1977. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In 4th ACM Symposium on Principles of Programming Languages (POPL 1977). 238–252. https://doi.org/10.1145/512950.512973 10.1145/512950.512973 – reference: Julien Henry, David Monniaux, and Matthieu Moy. 2012. PAGAI: a path sensitive static analyzer. In Tools for Automatic Program Analysis (TAPAS), Bertrand Jeannet (Ed.). https://doi.org/10.1016/j.entcs.2012.11.003 10.1016/j.entcs.2012.11.003 – reference: Olivier Nicole, Matthieu Lemerre, and Xavier Rival. 2021. Binsec/Codex, an abstract interpreter to verify safety and security properties of systems code. https://binsec.github.io/assets/publications/papers/2021-rtas-technical-report-analysis.pdf – reference: Gilles Barthe, Delphine Demange, and David Pichardie. 2014. Formal Verification of an SSA-Based Middle-End for CompCert. ACM Trans. Program. Lang. Syst., 36, 1 (2014), 4:1–4:35. https://doi.org/10.1145/2579080 10.1145/2579080 – reference: Bor-Yuh Evan Chang and Xavier Rival. 2013. Modular Construction of Shape-Numeric Analyzers. In Festschrift for Dave Schmidt, Anindya Banerjee, Olivier Danvy, Kyung-Goo Doh, and John Hatcliff (Eds.) (EPTCS, Vol. 129). https://doi.org/10.48550/arXiv.1309.5138 – reference: Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. 1991. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Trans. Program. Lang. Syst., 13, 4 (1991), oct, 451–490. https://doi.org/10.1145/115372.115320 10.1145/115372.115320 – reference: Sorin Lerner, David Grove, and Craig Chambers. 2002. Composing dataflow analyses and transformations. In 29th SIGPLAN-SIGACT Symposium on Principles of Programming Languages, John Launchbury and John C. Mitchell (Eds.) (POPL 2002). ACM, 270–282. https://doi.org/10.1145/503272.503298 10.1145/503272.503298 – reference: Thomas W. Reps, Shmuel Sagiv, and Greta Yorsh. 2004. Symbolic Implementation of the Best Transformer. In 5th International Conference on Verification, Model Checking, and Abstract Interpretation – VMCAI 2004, Bernhard Steffen and Giorgio Levi (Eds.) (Lecture Notes in Computer Science, Vol. 2937). Springer, 252–266. https://doi.org/10.1007/978-3-540-24622-0_21 10.1007/978-3-540-24622-0_21 – reference: Richard Kelsey. 1995. A Correspondence between Continuation Passing Style and Static Single Assignment Form. In Proceedings ACM SIGPLAN Workshop on Intermediate Representations (IR’95), Michael D. Ernst (Ed.). ACM, 13–23. https://doi.org/10.1145/202529.202532 10.1145/202529.202532 – reference: Arie Gurfinkel, Temesghen Kahsai, Anvesh Komuravelli, and Jorge A Navas. 2015. The SeaHorn verification framework. In International Conference on Computer Aided Verification (CAV 2015). 343–361. https://doi.org/10.1007/978-3-319-21690-4_20 10.1007/978-3-319-21690-4_20 – reference: Edmund M. Clarke, Daniel Kroening, and Flavio Lerda. 2004. A Tool for Checking ANSI-C Programs. In 10th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Kurt Jensen and Andreas Podelski (Eds.) (TACAS 2004). Springer, 168–176. https://doi.org/10.1007/978-3-540-24730-2_15 10.1007/978-3-540-24730-2_15 – reference: Marc M. Brandis and Hanspeter Mössenböck. 1994. Single-Pass Generation of Static Single-Assignment Form for Structured Languages. ACM Trans. Program. Lang. Syst., 16, 6 (1994), 1684–1698. https://doi.org/10.1145/197320.197331 10.1145/197320.197331 – reference: Tiark Rompf. 2012. Lightweight modular staging and embedded compilers: Abstraction without regret for high-level high-performance programming. Ph.D. Dissertation. École Polytechnique Fédérale de Lausanne. – reference: Sébastien Bardin, Philippe Herrmann, and Franck Védrine. 2011. Refinement-Based CFG Reconstruction from Unstructured Programs. In 12th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI 2011, Vol. 6538). Springer, 54–69. https://doi.org/10.1007/978-3-642-18275-4_6 10.1007/978-3-642-18275-4_6 – reference: James C. King. 1976. Symbolic Execution and Program Testing. Commun. ACM, 19, 7 (1976), 385–394. https://doi.org/10.1145/360248.360252 10.1145/360248.360252 – reference: Edsger W. Dijkstra. 1975. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM, 18, 8 (1975), aug, 453–457. https://doi.org/10.1145/360933.360975 10.1145/360933.360975 – reference: Gary A Kildall. 1973. A unified approach to global program optimization. In 1st annual ACM SIGACT-SIGPLAN Symposium on Principles of programming languages (POPL 1973). https://doi.org/10.1145/512927.512945 10.1145/512927.512945 – reference: James Stanier. 2016. Graphs and Gating Functions (1st ed.). – reference: Thomas Reinbacher and Jörg Brauer. 2011. Precise control flow reconstruction using boolean logic. In 11th International Conference on Embedded Software, Samarjit Chakraborty, Ahmed Jerraya, Sanjoy K. Baruah, and Sebastian Fischmeister (Eds.) (EMSOFT 2011). ACM, 117–126. https://doi.org/10.1145/2038642.2038662 10.1145/2038642.2038662 – reference: Sigurd Schneider. 2013. Semantics of an Intermediate Language for Program Transformation. Master’s thesis. Saarland University. https://www.ps.uni-saarland.de/~sdschn/msc.pdf – reference: Bowen Alpern, Mark N. Wegman, and F. Kenneth Zadeck. 1988. Detecting Equality of Variables in Programs. In 15th ACM Symposium on Principles of Programming Languages (POPL 1988). 1–11. https://doi.org/10.1145/73560.73561 10.1145/73560.73561 – reference: Fabrice Rastello. 2016. SSA-based Compiler Design (1st ed.). Springer Publishing Company, Incorporated. – reference: B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. 2002. Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. The Essence of Computation: Complexity, Analysis, Transformation. Essays Dedicated to Neil D. Jones, 2566 (2002), Oct., 85–108. https://doi.org/10.1007/3-540-36377-7_5 10.1007/3-540-36377-7_5 – reference: Oliver Rüthing, Jens Knoop, and Bernhard Steffen. 1999. Detecting Equalities of Variables: Combining Efficiency with Precision. In 6th Static Analysis Symposium – SAS ’99, Agostino Cortesi and Gilberto Filé (Eds.) (Lecture Notes in Computer Science, Vol. 1694). Springer, 232–247. https://doi.org/10.1007/3-540-48294-6_15 10.1007/3-540-48294-6_15 – reference: Hugo Illous, Matthieu Lemerre, and Xavier Rival. 2021. A relational shape abstract domain. Formal Methods Syst. Des., 57, 3 (2021), 343–400. https://doi.org/10.1007/s10703-021-00366-4 10.1007/s10703-021-00366-4 – reference: Andrew W. Appel. 1998. SSA is Functional Programming. SIGPLAN Notices, 33, 4 (1998), apr, 17–20. https://doi.org/10.1145/278283.278285 10.1145/278283.278285 – reference: Vugranam C. Sreedhar and Guang R. Gao. 1995. A Linear Time Algorithm for Placing phi-nodes. In 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Ron K. Cytron and Peter Lee (Eds.) (POPL 1995). 62–73. https://doi.org/10.1145/199448.199464 10.1145/199448.199464 – reference: Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. 2006. Combination of Abstractions in the ASTRÉE Static Analyzer. In Revised Selected Papers from the 11th Asian Computing Science Conference on Advances in Computer Science - Secure Software and Related Issues – ASIAN 2006 (Lecture Notes in Computer Science, Vol. 4435). Springer, 272–300. https://doi.org/10.1007/978-3-540-77505-8_23 10.1007/978-3-540-77505-8_23 – reference: Benjamin Farinier, Robin David, Sébastien Bardin, and Matthieu Lemerre. 2018. Arrays Made Simpler: An Efficient, Scalable and Thorough Preprocessing. In 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning, Gilles Barthe, Geoff Sutcliffe, and Margus Veanes (Eds.) (EPiC Series in Computing, Vol. 57). EasyChair, 363–380. https://doi.org/10.29007/dc9b 10.29007/dc9b – reference: Keith D Cooper and Taylor Simpson. 1995. SCC-Based Value Numbering. Rice University. – reference: Cliff Click and Keith D. Cooper. 1995. Combining Analyses, Combining Optimizations. ACM Trans. Program. Lang. Syst., 17, 2 (1995), 181–196. https://doi.org/10.1145/201059.201061 10.1145/201059.201061 – reference: John Aycock and R. Nigel Horspool. 2000. Simple Generation of Static Single-Assignment Form. In 9th International Conference on Compiler Construction – CC 2000 (LNCS, Vol. 1781). Springer, 110–124. https://doi.org/10.1007/3-540-46423-9_8 10.1007/3-540-46423-9_8 – reference: Antoine Miné. 2006. Symbolic methods to enhance the precision of numerical abstract domains. In International Workshop on Verification, Model Checking, and Abstract Interpretation (VMCAI 2006). 348–363. https://doi.org/10.1007/11609773_23 10.1007/11609773_23 – reference: Jong-Deok Choi, Ron Cytron, and Jeanne Ferrante. 1991. Automatic Construction of Sparse Data Flow Evaluation Graphs. In 18th ACM Symposium on Principles of Programming Languages, David S. Wise (Ed.) (POPL 1991). 55–66. https://doi.org/10.1145/99583.99594 10.1145/99583.99594 – reference: Solène Mirliaz and David Pichardie. 2022. A Flow-Insensitive-Complete Program Representation. In 23th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI 2022). https://doi.org/10.1007/978-3-030-94583-1_10 10.1007/978-3-030-94583-1_10 – reference: Michael James Van Emmerik. 2007. Static single assignment for decompilation. Ph.D. Dissertation. University of Queensland. – reference: Patrick Cousot. 1978. Méthodes itératives de construction et d’approximation de points fixes d’opérateurs monotones sur un treillis, analyse sémantique de programmes (in French). Ph.D. Dissertation. Université Joseph Fourier. Grenoble, France. https://www.di.ens.fr/~cousot/publications.www/CousotTheseEsSciences1978.pdf – reference: Chris Okasaki and Andrew Gill. 1998. Fast Mergeable Integer Maps. In Workshop on ML. 77–86. – reference: Norman Ramsey, João Dias, and Simon L. Peyton Jones. 2010. Hoopl: a modular, reusable library for dataflow analysis and transformation. In Proceedings of the 3rd ACM SIGPLAN Symposium on Haskell, Jeremy Gibbons (Ed.) (Haskell 2010). ACM, 121–134. https://doi.org/10.1145/1863523.1863539 10.1145/1863523.1863539 – reference: Matthieu Journault, Antoine Miné, Raphaël Monat, and Abdelraouf Ouadjaout. 2019. Combinations of Reusable Abstract Domains for a Multilingual Static Analyzer. In 11th International Conference on Verified Software Theories, Tools, and Experiments - Revised Selected Papers, Supratik Chakraborty and Jorge A. Navas (Eds.) (Lecture Notes in Computer Science, Vol. 12031). Springer, 1–18. https://doi.org/10.1007/978-3-030-41600-3_1 10.1007/978-3-030-41600-3_1 – reference: Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, and Peter J. Stuckey. 2016. An Abstract Domain of Uninterpreted Functions. In Verification, Model Checking, and Abstract Interpretation, Barbara Jobstmann and K. Rustan M. Leino (Eds.) (VMCAI 2016). Springer, 85–103. https://doi.org/10.1007/978-3-662-49122-5_4 10.1007/978-3-662-49122-5_4 – reference: Davide Sangiorgi. 2009. On the origins of bisimulation and coinduction. ACM Trans. Program. Lang. Syst., 31, 4 (2009), 15:1–15:41. https://doi.org/10.1145/1516507.1516510 10.1145/1516507.1516510 – reference: Bor-Yuh Evan Chang and K. Rustan M. Leino. 2005. Abstract Interpretation with Alien Expressions and Heap Structures. Springer, 147–163. https://doi.org/10.1007/978-3-540-30579-8_11 10.1007/978-3-540-30579-8_11 – reference: Johannes Kinder, Florian Zuleger, and Helmut Veith. 2009. An Abstract Interpretation-Based Framework for Control Flow Reconstruction from Binaries. In Verification, Model Checking, and Abstract Interpretation, Neil D. Jones and Markus Müller-Olm (Eds.) (VMCAI 2009). Springer, 214–228. https://doi.org/10.1007/978-3-540-93900-9_19 10.1007/978-3-540-93900-9_19 – reference: Matthias Braun, Sebastian Buchwald, Sebastian Hack, Roland Leiß a, Christoph Mallon, and Andreas Zwinkau. 2013. Simple and Efficient Construction of Static Single Assignment Form. In 22nd International Conference on Compiler Construction (CC 2013). https://doi.org/10.1007/978-3-642-37051-9_6 10.1007/978-3-642-37051-9_6 – reference: Patrick Cousot and Radhia Cousot. 1979. Systematic design of program analysis frameworks. In 6th ACM Symposium on Principles of Programming Languages (POPL 1979). 269–282. https://doi.org/10.1145/567752.567778 10.1145/567752.567778 – reference: Sebastian Hack. 2016. SSA reconstruction (1st ed.). – reference: Sumit Gulwani and George C. Necula. 2004. A Polynomial-Time Algorithm for Global Value Numbering. In Static Analysis Symposium, Roberto Giacobazzi (Ed.) (SAS 2004). Springer, 212–227. https://doi.org/10.1007/978-3-540-27864-1_17 10.1007/978-3-540-27864-1_17 – reference: Barry K Rosen, Mark N Wegman, and F Kenneth Zadeck. 1988. Global value numbers and redundant computations. In 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL 1988). 12–27. https://doi.org/10.1145/73560.73562 10.1145/73560.73562 – reference: Jianzhou Zhao, Santosh Nagarakatte, Milo M. K. Martin, and Steve Zdancewic. 2012. Formalizing the LLVM intermediate representation for verified program transformations. In 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, John Field and Michael Hicks (Eds.) (POPL 2012). 427–440. https://doi.org/10.1145/2103656.2103709 10.1145/2103656.2103709 – reference: Jacobus Willem de Bakker and Lambert Meertens. 1975. On the Completeness of the Inductive Assertion Method. J. Comput. Syst. Sci., 11, 3 (1975), 323–357. https://doi.org/10.1016/S0022-0000(75)80056-0 10.1016/S0022-0000(75)80056-0 – reference: Xuejun Yang, Yang Chen, Eric Eide, and John Regehr. 2011. Finding and understanding bugs in C compilers. In 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, :SERIES: PLDI 2011, Mary W. Hall and David A. Padua (Eds.). ACM, 283–294. https://doi.org/10.1145/1993498.1993532 10.1145/1993498.1993532 – reference: Zena M Ariola and Jan Willem Klop. 1996. Equational term graph rewriting. Fundamenta Informaticae, 26, 3, 4 (1996), 207–240. https://doi.org/10.3233/FI-1996-263401 10.3233/FI-1996-263401 – reference: Greg Nelson. 1980. Techniques for program verification. Ph.D. Dissertation. Stanford University, CA, USA. – reference: Olivier Nicole, Matthieu Lemerre, and Xavier Rival. 2022. Lightweight Shape Analysis Based on Physical Types. In 23rd International Conference on Verification, Model Checking, and Abstract Interpretation – VMCAI 2022, Bernd Finkbeiner and Thomas Wies (Eds.) (Lecture Notes in Computer Science, Vol. 13182). Springer, 219–241. https://doi.org/10.1007/978-3-030-94583-1_11 10.1007/978-3-030-94583-1_11 – reference: Adel Djoudi, Sébastien Bardin, and Éric Goubault. 2016. Recovering High-Level Conditions from Binary Programs. In : 21st International Symposium on Formal Methods (FM 2016). 235–253. https://doi.org/10.1007/978-3-319-48989-6_15 10.1007/978-3-319-48989-6_15 – reference: K.R.M. Leino. 2005. Efficient weakest preconditions. Inform. Process. Lett., 93, 6 (2005), 281–288. https://doi.org/10.1016/j.ipl.2004.10.015 10.1016/j.ipl.2004.10.015 – reference: David Brumley, JongHyup Lee, Edward J. Schwartz, and Maverick Woo. 2013. Native x86 Decompilation Using Semantics-Preserving Structural Analysis and Iterative Control-Flow Structuring. In 22th USENIX Security Symposium. USENIX Association, 353–368. https://www.usenix.org/conference/usenixsecurity13/technical-sessions/presentation/schwartz – reference: John H. Reif and Harry R. Lewis. 1986. Efficient Symbolic Analysis of Programs. J. Comput. Syst. Sci., 32, 3 (1986), 280–314. https://doi.org/10.1016/0022-0000(86)90031-0 10.1016/0022-0000(86)90031-0 – reference: Patrick Cousot. 2002. Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. Theor. Comput. Sci., 277, 1-2 (2002), 47–103. https://doi.org/10.1016/S0304-3975(00)00313-3 10.1016/S0304-3975(00)00313-3 – reference: Martin Brain, Saurabh Joshi, Daniel Kroening, and Peter Schrammel. 2015. Safety Verification and Refutation by k-Invariants and k-Induction. In Static Analysis, Sandrine Blazy and Thomas Jensen (Eds.) (SAS 2015). Springer, 145–161. https://doi.org/10.1007/978-3-662-48288-9_9 10.1007/978-3-662-48288-9_9 – reference: François Bourdoncle. 1993. Efficient chaotic iteration strategies with widenings. In Formal Methods in Programming and their Applications. 128–141. https://doi.org/10.1007/BFb0039704 10.1007/BFb0039704 – reference: Matthieu Lemerre. 2023. SSA Translation is an Abstract Interpretation (artifact). CEA, LIST. https://doi.org/10.1145/3554341 10.1145/3554341 – reference: Cliff Click and Michael Paleczny. 1995. A simple graph-based intermediate representation. ACM Sigplan Notices, 30, 3 (1995), 35–49. https://doi.org/10.1145/202530.202534 10.1145/202530.202534 – reference: William Mansky and Elsa L. Gunter. 2010. A Framework for Formal Verification of Compiler Optimizations. In 1st International Conference on Interactive Theorem Proving – ITP 2010, Matt Kaufmann and Lawrence C. Paulson (Eds.) (Lecture Notes in Computer Science, Vol. 6172). Springer, 371–386. https://doi.org/10.1007/978-3-642-14052-5_26 10.1007/978-3-642-14052-5_26 – reference: Patrick Cousot and Radhia Cousot. 2002. Systematic design of program transformation frameworks by abstract interpretation. In 29th Symposium on Principles of Programming Languages, John Launchbury and John C. Mitchell (Eds.) (POPL 2002). ACM, 178–190. https://doi.org/10.1145/503272.503290 10.1145/503272.503290 – reference: John H. Reif and Robert Endre Tarjan. 1982. Symbolic Program Analysis in Almost-Linear Time. SIAM J. Comput., 11, 1 (1982), 81–93. https://doi.org/10.1137/0211007 10.1137/0211007 – reference: Max Willsey, Chandrakana Nandi, Yisu Remy Wang, Oliver Flatt, Zachary Tatlock, and Pavel Panchekha. 2021. egg: Fast and extensible equality saturation. Proc. ACM Program. Lang., 5, POPL (2021), 1–29. https://doi.org/10.1145/3434304 10.1145/3434304 – reference: Sandrine Blazy, David Bühler, and Boris Yakobowski. 2017. Structuring Abstract Interpreters Through State and Value Abstractions. In 18th International Conference on Verification, Model Checking, and Abstract Interpretation, Ahmed Bouajjani and David Monniaux (Eds.) (VMCAI 2017, Vol. 10145). Springer, 112–130. https://doi.org/10.1007/978-3-319-52234-0_7 10.1007/978-3-319-52234-0_7 – reference: Sebastian Buchwald, Denis Lohner, and Sebastian Ullrich. 2016. Verified construction of static single assignment form. In 25th International Conference on Compiler Construction (CC 2016). ACM, 67–76. https://doi.org/10.1145/2892208.2892211 10.1145/2892208.2892211 – reference: Delphine Demange, Yon Fernández de Retana, and David Pichardie. 2018. Semantic reasoning about the sea of nodes. In 27th International Conference on Compiler Construction, Christophe Dubach and Jingling Xue (Eds.) (CC 2018). ACM, 163–173. https://doi.org/10.1145/3178372.3179503 10.1145/3178372.3179503 – reference: Olivier Nicole, Matthieu Lemerre, Sébastien Bardin, and Xavier Rival. 2021. No Crash, No Exploit: Automated Verification of Embedded Kernels. In 27th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2021). 27–39. https://doi.org/10.1109/RTAS52030.2021.00011 10.1109/RTAS52030.2021.00011 – reference: S. Bharadwaj Yadavalli and Aaron Smith. 2019. Raising binaries to LLVM IR with MCTOLL (WIP paper). In 20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems, Jian-Jia Chen and Aviral Shrivastava (Eds.) (LCTES 2019). 213–218. https://doi.org/10.1145/3316482.3326354 10.1145/3316482.3326354 – reference: Andrew W Appel. 1998. Modern compiler implementation in ML. Cambridge University Press. https://doi.org/10.1017/CBO9780511811449 10.1017/CBO9780511811449 – reference: Matthieu Lemerre. 2023. SSA Translation is an Abstract Interpretation (full version with appendices). CEA, LIST. https://binsec.github.io/assets/publications/papers/2023-popl-full-with-appendices.pdf – volume-title: Semantics of an Intermediate Language for Program Transformation. Master’s thesis ident: e_1_2_1_69_1 – ident: e_1_2_1_7_1 doi: 10.1145/2579080 – volume-title: Graphs and Gating Functions ident: e_1_2_1_71_1 – ident: e_1_2_1_75_1 doi: 10.1145/3434304 – ident: e_1_2_1_26_1 doi: 10.1145/512950.512973 – ident: e_1_2_1_41_1 doi: 10.1007/s10703-021-00366-4 – ident: e_1_2_1_48_1 doi: 10.1145/3571258 – ident: e_1_2_1_42_1 doi: 10.1007/978-3-030-41600-3_1 – volume-title: SCC-Based Value Numbering ident: e_1_2_1_22_1 – volume-title: Université scientifique et médicale de Grenoble year: 1977 ident: e_1_2_1_23_1 – ident: e_1_2_1_32_1 doi: 10.1145/3178372.3179503 – ident: e_1_2_1_34_1 doi: 10.1007/978-3-319-48989-6_15 – ident: e_1_2_1_10_1 doi: 10.1007/BFb0039704 – ident: e_1_2_1_45_1 doi: 10.1007/978-3-540-93900-9_19 – ident: e_1_2_1_78_1 doi: 10.1145/2103656.2103709 – ident: e_1_2_1_68_1 doi: 10.1145/1516507.1516510 – ident: e_1_2_1_33_1 doi: 10.1145/360933.360975 – ident: e_1_2_1_46_1 doi: 10.1145/360248.360252 – volume-title: Fast Mergeable Integer Maps. In Workshop on ML. 77–86 year: 1998 ident: e_1_2_1_58_1 – ident: e_1_2_1_67_1 doi: 10.1007/3-540-48294-6_15 – ident: e_1_2_1_53_1 doi: 10.1007/978-3-030-94583-1_10 – ident: e_1_2_1_30_1 doi: 10.1145/115372.115320 – ident: e_1_2_1_51_1 doi: 10.1007/978-3-642-14052-5_26 – ident: e_1_2_1_64_1 doi: 10.1007/978-3-540-24622-0_21 – ident: e_1_2_1_74_1 doi: 10.1145/103135.103136 – ident: e_1_2_1_16_1 doi: 10.1007/978-3-540-30579-8_11 – ident: e_1_2_1_13_1 doi: 10.1007/978-3-642-37051-9_6 – ident: e_1_2_1_50_1 doi: 10.1145/503272.503298 – ident: e_1_2_1_9_1 doi: 10.1007/978-3-319-52234-0_7 – ident: e_1_2_1_35_1 doi: 10.29007/dc9b – ident: e_1_2_1_72_1 doi: 10.1007/978-3-642-54807-9_2 – ident: e_1_2_1_56_1 – ident: e_1_2_1_3_1 doi: 10.1145/278283.278285 – ident: e_1_2_1_59_1 doi: 10.1145/1863523.1863539 – ident: e_1_2_1_77_1 doi: 10.1145/1993498.1993532 – volume-title: 22th USENIX Security Symposium. USENIX Association, 353–368 year: 2013 ident: e_1_2_1_14_1 – ident: e_1_2_1_44_1 doi: 10.1145/512927.512945 – ident: e_1_2_1_18_1 doi: 10.1145/99583.99594 – ident: e_1_2_1_55_1 doi: 10.1109/RTAS52030.2021.00011 – ident: e_1_2_1_11_1 doi: 10.1007/978-3-662-48288-9_9 – volume-title: SSA reconstruction ident: e_1_2_1_39_1 – ident: e_1_2_1_61_1 doi: 10.1016/0022-0000(86)90031-0 – ident: e_1_2_1_57_1 doi: 10.1007/978-3-030-94583-1_11 – ident: e_1_2_1_36_1 doi: 10.1007/978-3-662-49122-5_4 – ident: e_1_2_1_37_1 doi: 10.1007/978-3-540-27864-1_17 – ident: e_1_2_1_52_1 doi: 10.1007/11609773_23 – ident: e_1_2_1_43_1 doi: 10.1145/202529.202532 – ident: e_1_2_1_27_1 doi: 10.1145/567752.567778 – ident: e_1_2_1_5_1 doi: 10.1007/3-540-46423-9_8 – ident: e_1_2_1_20_1 doi: 10.1145/201059.201061 – ident: e_1_2_1_19_1 doi: 10.1007/978-3-540-24730-2_15 – ident: e_1_2_1_40_1 doi: 10.1016/j.entcs.2012.11.003 – ident: e_1_2_1_15_1 doi: 10.1145/2892208.2892211 – ident: e_1_2_1_31_1 doi: 10.1016/S0022-0000(75)80056-0 – ident: e_1_2_1_70_1 doi: 10.1145/199448.199464 – ident: e_1_2_1_8_1 doi: 10.1007/3-540-36377-7_5 – ident: e_1_2_1_28_1 doi: 10.1145/503272.503290 – volume-title: SSA-based Compiler Design ident: e_1_2_1_60_1 – ident: e_1_2_1_1_1 doi: 10.1145/73560.73561 – ident: e_1_2_1_47_1 doi: 10.1016/j.ipl.2004.10.015 – ident: e_1_2_1_66_1 doi: 10.1145/73560.73562 – volume-title: Festschrift for Dave Schmidt, Anindya Banerjee, Olivier Danvy, Kyung-Goo Doh, and John Hatcliff (Eds.) (EPTCS ident: e_1_2_1_17_1 – ident: e_1_2_1_63_1 doi: 10.1145/2038642.2038662 – ident: e_1_2_1_4_1 doi: 10.3233/FI-1996-263401 – ident: e_1_2_1_25_1 doi: 10.1016/S0304-3975(00)00313-3 – ident: e_1_2_1_49_1 doi: 10.1145/3554341 – ident: e_1_2_1_21_1 doi: 10.1145/202530.202534 – ident: e_1_2_1_2_1 doi: 10.1017/CBO9780511811449 – ident: e_1_2_1_12_1 doi: 10.1145/197320.197331 – ident: e_1_2_1_62_1 doi: 10.1137/0211007 – ident: e_1_2_1_29_1 doi: 10.1007/978-3-540-77505-8_23 – ident: e_1_2_1_38_1 doi: 10.1007/978-3-319-21690-4_20 – ident: e_1_2_1_6_1 doi: 10.1007/978-3-642-18275-4_6 – ident: e_1_2_1_76_1 doi: 10.1145/3316482.3326354 |
| SSID | ssj0001934839 |
| Score | 2.2481296 |
| Snippet | Static single assignment (SSA) form is a popular intermediate representation that helps implement useful static analyses, including global value numbering... |
| SourceID | hal crossref acm |
| SourceType | Open Access Repository Enrichment Source Index Database Publisher |
| StartPage | 1895 |
| SubjectTerms | Abstraction Compilers Computer Science Equational logic and rewriting Formal software verification Program analysis Program verification Programming Languages Software and its engineering Theory of computation |
| SubjectTermsDisplay | Software and its engineering -- Compilers Software and its engineering -- Formal software verification Theory of computation -- Abstraction Theory of computation -- Equational logic and rewriting Theory of computation -- Program analysis Theory of computation -- Program verification |
| Title | SSA Translation Is an Abstract Interpretation |
| URI | https://dl.acm.org/doi/10.1145/3571258 https://cea.hal.science/cea-03849637 |
| Volume | 7 |
| WOSCitedRecordID | wos000910847500065&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Ja9wwFBbZDr10SVqadEGEkstgOlo8ko4mtCQwSQaSQm5GkiUaaNyQmYSc8tv7ni17PCSH9tCLMbYQtj7x6dPTWwj5YmPUY4dOYZI1Jcxk5iYTnnFeKTz5kTI2eWan6vRUX16aWaqtN2_KCai61g8P5ua_Qg3PAGwMnf0HuPtO4QHcA-hwBdjh-lfAn58Xbcry1sttdIxZmEeFQ5uGX4xWvQyH2nTWr2WNe0dxeIInCcmB6xpNCp1xs9fhUwwvTsZtLBx-Fe6GZgQuGjOCGQCfXNMb6uFS5RmTbexyx5NqMB1mZ7PpgPaYbitlpiUUN3XP07PETBYiVyCr9HIF6v0C05t1sslVbtBD7-RxYDIzQoKea0Ofsa-vqT0qC3-9oizWf3aG8UYoXLwmL5PCp0WLzBuyFupt8qqrnkETme6QDICiA6Do8ZzamnZA0VWg3pIf379dHB5lqXhFZgVji8wF45XPWYAt4aSSeNpcgVp0Wjn4t6hzK5ypJiYEBiRoo2LeMeZjkFU-lsqKd2Sj_l2H94QaC7wrnPUmOBlFcFz7cTSWA5dGEIi7ZBt-v7xp05OUaVB2yUE3HKVP-d6x7Mivso1Fz5cNad-w6-NJk30Yz_4tpiQ_KqalD7YcCy2BxNU933v2Mz6QF8vp9pFsLG7vwiey5e8XV_Pbzw3AfwDt7Ejw |
| 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=SSA+Translation+Is+an+Abstract+Interpretation&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Lemerre%2C+Matthieu&rft.date=2023-01-09&rft.pub=ACM&rft.eissn=2475-1421&rft.volume=7&rft.issue=POPL&rft.spage=1895&rft.epage=1924&rft_id=info:doi/10.1145%2F3571258&rft.externalDocID=3571258 |
| 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 |