{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T21:05:18Z","timestamp":1760043918768,"version":"3.40.5"},"reference-count":79,"publisher":"Cambridge University Press (CUP)","issue":"2","license":[{"start":{"date-parts":[[2021,1,19]],"date-time":"2021-01-19T00:00:00Z","timestamp":1611014400000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":["cambridge.org"],"crossmark-restriction":true},"short-container-title":["Theory and Practice of Logic Programming"],"published-print":{"date-parts":[[2021,3]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Context-sensitive global analysis of large code bases can be expensive, which can make its use impractical during software development. However, there are many situations in which modifications are small and isolated within a few components, and it is desirable to reuse as much as possible previous analysis results. This has been achieved to date through incremental global analysis fixpoint algorithms that achieve cost reductions at fine levels of granularity, such as changes in program lines. However, these fine-grained techniques are neither directly applicable to modular programs nor are they designed to take advantage of modular structures. This paper describes, implements, and evaluates an algorithm that performs efficient context-sensitive analysis incrementally on modular partitions of programs. The experimental results show that the proposed modular algorithm shows significant improvements, in both time and memory consumption, when compared to existing non-modular, fine-grain incremental analysis techniques. Furthermore, thanks to the proposed intermodular propagation of analysis information, our algorithm also outperforms traditional modular analysis even when analyzing from scratch.<\/jats:p>","DOI":"10.1017\/s1471068420000496","type":"journal-article","created":{"date-parts":[[2021,1,19]],"date-time":"2021-01-19T10:39:54Z","timestamp":1611052794000},"page":"196-243","update-policy":"https:\/\/doi.org\/10.1017\/policypage","source":"Crossref","is-referenced-by-count":11,"title":["Incremental and Modular Context-sensitive Analysis"],"prefix":"10.1017","volume":"21","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-6098-3895","authenticated-orcid":false,"given":"ISABEL","family":"GARCIA-CONTRERAS","sequence":"first","affiliation":[]},{"given":"JOS\u00c9 F.","family":"MORALES","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7583-323X","authenticated-orcid":false,"given":"MANUEL V.","family":"HERMENEGILDO","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2021,1,19]]},"reference":[{"key":"S1471068420000496_ref71","unstructured":"Rosen, B. 1981. Linear cost is sometimes quadratic. In Eighth ACM Symposium on Principles of Programming Languages (POPL). ACM Press, 117\u2013124."},{"key":"S1471068420000496_ref49","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-83189-8"},{"key":"S1471068420000496_ref55","unstructured":"M\u00e9ndez-Lojo, M. , Navas, J. and Hermenegildo, M. 2007. A flexible (C)LP-based approach to the analysis of object-oriented programs. In 17th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR 2007). Lecture Notes in Computer Science, vol. 4915. Springer-Verlag, 154\u2013168."},{"key":"S1471068420000496_ref77","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068414000209"},{"key":"S1471068420000496_ref15","unstructured":"Calcagno, C. and Distefano, D. 2011. Infer: An automatic program verifier for memory safety of C programs. In NASA Formal Methods - Third International Symposium, NFM 2011, Pasadena, CA, USA, 18\u201320 April 2011. Proceedings, Bobaru, M. G. , Havelund, K. , Holzmann, G. J. and Joshi, R. , Eds. Lecture Notes in Computer Science, vol. 6617. Springer, 459\u2013465."},{"key":"S1471068420000496_ref41","first-page":"22","volume-title":"Lecture Notes in Computer Science","volume":"247","author":"Kahn","year":"1987"},{"key":"S1471068420000496_ref61","unstructured":"Navas, J. , M\u00e9ndez-Lojo, M. and Hermenegildo, M. V. 2009. User-definable resource usage bounds analysis for Java bytecode. In Proceedings of the Workshop on Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE\u201909). Electronic Notes in Theoretical Computer Science, vol. 253. Elsevier - North Holland, 65\u201382."},{"key":"S1471068420000496_ref26","unstructured":"Debray, S. , Lopez-Garcia, P. and Hermenegildo, M. V. 1997. Non-failure analysis for logic programs. In 1997 International Conference on Logic Programming. MIT Press, Cambridge, MA, Cambridge, MA, 48\u201362."},{"key":"S1471068420000496_ref59","unstructured":"Navas, J. , M\u00e9ndez-Lojo, M. and Hermenegildo, M. 2008. Safe upper-bounds inference of energy consumption for Java bytecode applications. In The Sixth NASA Langley Formal Methods Workshop (LFM 08), 29\u201332. Extended Abstract."},{"key":"S1471068420000496_ref25","unstructured":"de Moura, L. M. and Bj\u00f8rner, N. 2008. Z3: An efficient SMT solver. In Tools and Algorithms for the Construction and Analysis of Systems, 14th International Conference, TACAS 2008, Ramakrishnan, C. R. and Rehof, J. , Eds. Lecture Notes in Computer Science, vol. 4963. Springer, 337\u2013340."},{"volume-title":"Two Approaches to Interprocedural Data Flow Analysis","year":"1978","author":"Sharir","key":"S1471068420000496_ref76"},{"key":"S1471068420000496_ref13","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45142-0_6"},{"key":"S1471068420000496_ref22","unstructured":"Cousot, P. and Cousot, R. 2002. Modular static program analysis, invited paper. In Eleventh International Conference on Compiler Construction, CC 2002. LNCS, vol. 2304. Springer, 159\u2013178."},{"key":"S1471068420000496_ref42","unstructured":"Kelly, A. , Marriott, K. , S\u00f8ndergaard, H. and Stuckey, P. 1997. A generic object oriented incremental analyser for constraint logic programs. In Proceedings of the 20th Australasian Computer Science Conference, 92\u2013101."},{"key":"S1471068420000496_ref40","unstructured":"Kafle, B. , Gallagher, J. P. and Morales, J. F. 2016. RAHFT: A tool for verifying Horn clauses using abstract interpretation and finite tree automata. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, 17\u201323 July 2016, Proceedings, Part I, Chaudhuri, S. and Farzan, A. , Eds. Lecture Notes in Computer Science, vol. 9779. Springer, 261\u2013268."},{"key":"S1471068420000496_ref3","unstructured":"Albert, E. , Correas, J. , Puebla, G. and Rom\u00e1n-D\u00edez, G. 2012. Incremental resource usage analysis. In Proceedings of the 2012 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2012, Philadelphia, Pennsylvania, USA, 23\u201324 January 2012. ACM Press, 25\u201334."},{"key":"S1471068420000496_ref2","first-page":"142","article-title":"Cost analysis of object-oriented bytecode programs","volume":"413","author":"Albert","year":"2012","journal-title":"Theoretical Computer Science (Special Issue on Quantitative Aspects of Programming Languages)"},{"key":"S1471068420000496_ref72","unstructured":"Rothenberg, B. , Dietsch, D. and Heizmann, M. 2018. Incremental verification using trace abstraction. In Static Analysis - 25th International Symposium, SAS 2018, Freiburg, Germany, 29\u201331 August 2018, A. Podelski, Ed. Lecture Notes in Computer Science, vol. 11002. Springer, 364\u2013382."},{"key":"S1471068420000496_ref21","unstructured":"Cousot, P. and Cousot, R. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In ACM Symposium on Principles of Programming Languages (POPL\u201977). ACM Press, 238\u2013252."},{"key":"S1471068420000496_ref31","unstructured":"Gallagher, J. , Hermenegildo, M. V. , Kafle, B. , Klemen, M. , Lopez-Garcia, P. and Morales, J. 2020. From big-step to small-step semantics and back with interpreter specialization (invited paper). In Proceedings of the Eighth International Workshop on Verification and Program Transformation (VPT 2020). Electronic Proceedings in Theoretical Computer Science (EPTCS). Open Publishing Association (OPA), 50\u201365. Co-located with ETAPS 2020."},{"key":"S1471068420000496_ref24","unstructured":"De Angelis, E. , Fioravanti, F. , Pettorossi, A. and Proietti, M. 2014. VeriMAP: A tool for verifying programs through transformations. In Tools and Algorithms for the Construction and Analysis of Systems - 20th International Conference, TACAS 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, 5\u201313 April 2014. Proceedings, \u00c1brah\u00e1m, E. and Havelund, K. , Eds. Lecture Notes in Computer Science, vol. 8413. Springer, 568\u2013574."},{"key":"S1471068420000496_ref9","first-page":"105","volume-title":"LNCS","volume":"7935","author":"Bj\u00f8rner","year":"2013"},{"key":"S1471068420000496_ref38","first-page":"111","volume-title":"ACM Symposium on Principles of Programming Languages","author":"Jaffar","year":"1987"},{"key":"S1471068420000496_ref64","first-page":"17","article-title":"A structural approach to operational semantics","author":"Plotkin","year":"2004","journal-title":"The Journal of Logic and Algebraic Programming 60\u201361"},{"key":"S1471068420000496_ref5","first-page":"493","volume-title":"Handbook of Theoretical Computer Science","author":"Apt","year":"1990"},{"key":"S1471068420000496_ref8","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-23534-9_2"},{"key":"S1471068420000496_ref46","unstructured":"Krall, A. and Berger, T. 1995b. The VAMAI - An abstract machine for incremental global dataflow analysis of Prolog. In ICLP\u201995 Post-Conference Workshop on Abstract Interpretation of Logic Languages, de la Banda, M. G. , Janssens, G. , and Stuckey, P. , Eds. Science University of Tokyo, Tokyo, 80\u201391."},{"key":"S1471068420000496_ref79","unstructured":"Thakur, M. and Nandivada, V. K. 2020. Mix your contexts well: Opportunities unleashed by recent advances in scaling context-sensitivity. In Proceedings of the 29th International Conference on Compiler Construction. CC 2020. Association for Computing Machinery, New York, NY, USA, 27\u201338."},{"key":"S1471068420000496_ref68","doi-asserted-by":"publisher","DOI":"10.1145\/158511.158710"},{"key":"S1471068420000496_ref78","unstructured":"Szab\u00f3, T. , Erdweg, S. and Voelter, M. 2016. Inca: A DSL for the definition of incremental program analyses. In Proceedings of the 31st IEEE\/ACM International Conference on Automated Software Engineering, ASE 2016, Singapore, 3\u20137 September 2016, Lo, D. , Apel, S. and Khurshid, S. , Eds. ACM, 320\u2013331."},{"key":"S1471068420000496_ref44","unstructured":"King, A. , Lu, L. and Genaim, S. 2006. Detecting determinacy in Prolog programs. In Logic Programming, 22nd International Conference, ICLP 2006, Seattle, WA, USA, 17\u201320 August 2006, Proceedings, Etalle, S. and Truszczynski, M. , Eds. Lecture Notes in Computer Science, vol. 4079. Springer, 132\u2013147."},{"key":"S1471068420000496_ref20","unstructured":"Correas, J. , Puebla, G. , Hermenegildo, M. V. and Bueno, F. 2006. Experiments in context-sensitive analysis of modular programs. In 15th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR\u201905). LNCS, vol. 3901. Springer-Verlag, 163\u2013178."},{"key":"S1471068420000496_ref47","unstructured":"Liqat, U. , Georgiou, K. , Kerrison, S. , Lopez-Garcia, P. , Hermenegildo, M. V. , Gallagher, J. P. and Eder, K. 2016. Inferring parametric energy consumption functions at different software levels: ISA vs. LLVM IR. In Foundational and Practical Aspects of Resource Analysis: 4th International Workshop, FOPARA 2015, London, UK, 11 April 2015. Revised Selected Papers, Eekelen, M. V. and Lago, U. D. , Eds. Lecture Notes in Computer Science, vol. 9964. Springer, 81\u2013100."},{"key":"S1471068420000496_ref10","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(94)90200-3"},{"key":"S1471068420000496_ref28","first-page":"109","volume-title":"Automatic Incrementalization of Prolog Based Static Analyses","author":"Eichberg","year":"2007"},{"key":"S1471068420000496_ref50","doi-asserted-by":"publisher","DOI":"10.1007\/s00354-008-0085-1"},{"key":"S1471068420000496_ref33","unstructured":"Gurfinkel, A. , Kahsai, T. , Komuravelli, A. and Navas, J. A. 2015. The SeaHorn verification framework. In Computer Aided Verification - 27th International Conference, CAV 2015, San Francisco, CA, USA, 18\u201324 July 2015, Proceedings, Part I. LNCS, vol. 9206. Springer, 343\u2013361. and Gallagher, J. P. 2006. Abstract interpretation of PIC programs through logic programming. In SCAM\u201906, Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation. IEEE Computer Society, 184\u2013196."},{"key":"S1471068420000496_ref69","unstructured":"Reps, T. W. , Horwitz, S. and Sagiv, S. 1995. Precise interprocedural dataflow analysis via graph reachability. In POPL, 49\u201361."},{"key":"S1471068420000496_ref30","unstructured":"Fedyukovich, G. , Gurfinkel, A. and Sharygina, N. 2016. Property directed equivalence via abstract simulation. In International Conference on Computer Aided Verification. Springer, 433\u2013453."},{"key":"S1471068420000496_ref1","unstructured":"Acar, U. A. 2009. Self-adjusting computation: (an overview). In Proceedings of the 2009 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, PEPM 2009, Savannah, GA, USA, 19\u201320 January 2009, Puebla, G. and Vidal, G. , Eds. ACM, 1\u20136."},{"key":"S1471068420000496_ref4","unstructured":"Albert, E. , G\u00f3mez-Zamalloa, M. , Hubert, L. and Puebla, G. 2007. Verification of Java bytecode using analysis and transformation of logic programs. In Ninth International Symposium on Practical Aspects of Declarative Languages (PADL 2007), LNCS, vol. 4354. Springer-Verlag, 124\u2013139."},{"key":"S1471068420000496_ref66","unstructured":"Puebla, G. , Correas, J. , Hermenegildo, M. V. , Bueno, F. , Garca de la Banda, M. , Marriott, K. and Stuckey, P. J. 2004. A generic framework for context-sensitive analysis of modular programs. In Program Development in Computational Logic, A Decade of Research Advances in Logic-Based Program Development, Bruynooghe, M. and Lau, K. , Eds. LNCS, vol. 3049. Springer-Verlag, Heidelberg, Germany, 234\u2013261."},{"key":"S1471068420000496_ref23","doi-asserted-by":"publisher","DOI":"10.1007\/s10703-009-0089-6"},{"key":"S1471068420000496_ref36","unstructured":"Hermenegildo, M. V. , Puebla, G. , Marriott, K. and Stuckey, P. 1995. Incremental analysis of logic programs. In International Conference on Logic Programming. MIT Press, 797\u2013811."},{"key":"S1471068420000496_ref7","unstructured":"Banda, G. and Gallagher, J. P. 2009. Analysis of linear hybrid systems in CLP. In Logic-Based Program Synthesis and Transformation, 18th International Symposium, LOPSTR 2008, Valencia, Spain, 17\u201318 July 2008, M. Hanus, Ed. Lecture Notes in Computer Science, vol. 5438. Springer, 55\u201370."},{"key":"S1471068420000496_ref16","unstructured":"Carroll, M. and Ryder, B. 1988. Incremental data flow analysis via dominator and attribute updates. In 15th ACM Symposium on Principles of Programming Languages (POPL). ACM Press, 274\u2013284."},{"key":"S1471068420000496_ref18","unstructured":"Conway, C. L. , Namjoshi, K. S. , Dams, D. and Edwards, S. A. 2005. Incremental algorithms for inter-procedural analysis of safety properties. In Computer Aided Verification, 17th International Conference, CAV 2005, Edinburgh, Scotland, UK, 6\u201310 July 2005, Etessami, K. and Rajamani, S. K. , Eds. Lecture Notes in Computer Science, vol. 3576. Springer, 449\u2013461."},{"key":"S1471068420000496_ref60","unstructured":"Navas, J. , M\u00e9ndez-Lojo, M. and Hermenegildo, M. V. 2007. An efficient, context and path sensitive analysis framework for Java programs. In 9th Workshop on Formal Techniques for Java-like Programs FTfJP 2007."},{"key":"S1471068420000496_ref35","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2005.02.006"},{"key":"S1471068420000496_ref19","unstructured":"Cooper, K. and Kennedy, K. 1984. Efficient computation of flow insensitive interprocedural summary information. In ACM SIGPLAN Symposium on Compiler Construction (SIGPLAN Notices, vol. 19(6)). ACM Press, 247\u2013258."},{"key":"S1471068420000496_ref73","doi-asserted-by":"publisher","DOI":"10.1145\/42192.42193"},{"key":"S1471068420000496_ref56","unstructured":"Muthukumar, K. and Hermenegildo, M. 1990. Deriving A Fixpoint Computation Algorithm for Top-down Abstract Interpretation of Logic Programs. Technical Report ACT-DC-153-90, Microelectronics and Computer Technology Corporation (MCC), Austin, TX 78759. April."},{"key":"S1471068420000496_ref37","doi-asserted-by":"publisher","DOI":"10.1145\/349214.349216"},{"key":"S1471068420000496_ref52","unstructured":"Madsen, M. , Yee, M. and Lhot\u00e1k, O. 2016. From Datalog to FLIX: A declarative language for fixed points on lattices. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, Santa Barbara, CA, USA, 13\u201317 June 2016, Krintz, C. and Berger, E. , Eds. ACM, 194\u2013208."},{"key":"S1471068420000496_ref58","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(92)90035-2"},{"key":"S1471068420000496_ref39","unstructured":"Jaffar, J. , Murali, V. , Navas, J. A. and Santosa, A. E. 2012. TRACER: A symbolic execution tool for verification. In Computer Aided Verification - 24th International Conference, CAV 2012, Berkeley, CA, USA, 7\u201313 July 2012 Proceedings, Madhusudan, P. and Seshia, S. A. , Eds. Lecture Notes in Computer Science, vol. 7358. Springer, 758\u2013766."},{"key":"S1471068420000496_ref32","first-page":"549","volume-title":"TACAS","volume":"7214","author":"Grebenshchikov","year":"2012"},{"key":"S1471068420000496_ref70","doi-asserted-by":"publisher","DOI":"10.1145\/321250.321253"},{"key":"S1471068420000496_ref48","unstructured":"Liqat, U. , Kerrison, S. , Serrano, A. , Georgiou, K. , Lopez-Garcia, P. , Grech, N. , Hermenegildo, M. V. and Eder, K. 2014. Energy consumption analysis of programs based on XMOS ISA-level models. In Logic-Based Program Synthesis and Transformation, 23rd International Symposium, LOPSTR 2013, Revised Selected Papers, Gupta, G. and Pe\u00f1a, R. , Eds. Lecture Notes in Computer Science, vol. 8901. Springer, 72\u201390."},{"key":"S1471068420000496_ref62","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-65474-0_2"},{"key":"S1471068420000496_ref12","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(91)80001-T"},{"key":"S1471068420000496_ref34","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068411000457"},{"key":"S1471068420000496_ref54","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/5625.001.0001"},{"key":"S1471068420000496_ref29","unstructured":"F\u00e4hndrich, M. and Logozzo, F. 2011. Static contract checking with abstract interpretation. In Proceedings of the 2010 International Conference on Formal Verification of Object-oriented Software, FoVeOOS\u201910. Lecture Notes in Computer Science, vol. 6528. Springer-Verlag, Berlin, Heidelberg, 10\u201330."},{"volume-title":"A Structural Approach to Operational Semantics","year":"1981","author":"Plotkin","key":"S1471068420000496_ref63"},{"key":"S1471068420000496_ref65","doi-asserted-by":"publisher","DOI":"10.1109\/32.58766"},{"key":"S1471068420000496_ref75","unstructured":"Sery, O. , Fedyukovich, G. and Sharygina, N. 2012. Incremental upgrade checking by means of interpolation-based function summaries. In Formal Methods in Computer-Aided Design, FMCAD 2012, Cambridge, UK, 22\u201325 October 2012, Cabodi, G. and Singh, S. , Eds. IEEE, 114\u2013121."},{"key":"S1471068420000496_ref6","unstructured":"Arzt, S. and Bodden, E. 2014. Reviser: Efficiently updating IDE-\/IFDS-based data-flow analyses in response to incremental program changes. In 36th International Conference on Software Engineering, ICSE\u201914, Hyderabad, India - May 31\u2013June 07, 2014, Jalote, P. , Briand, L. C. and van der Hoek, A. , Eds. ACM, 288\u2013298."},{"key":"S1471068420000496_ref11","unstructured":"Braem, C. , Charlier, B. L. , Modart, S. and Hentenryck, P. V. 1994. Cardinality analysis of Prolog. In Proceedings of International Symposium on Logic Programming. MIT Press, Ithaca, NY, 457\u2013471."},{"key":"S1471068420000496_ref45","doi-asserted-by":"crossref","unstructured":"Krall, A. and Berger, T. 1995a. Incremental global compilation of Prolog with the vienna abstract machine. In International Conference on Logic Programming. MIT Press.","DOI":"10.7551\/mitpress\/4298.003.0038"},{"key":"S1471068420000496_ref53","unstructured":"Marlowe, T. and Ryder, B. 1990. An efficient hybrid algorithm for incremental data flow analysis. In 17th ACM Symposium on Principles of Programming Languages (POPL). ACM Press, 184\u2013196."},{"key":"S1471068420000496_ref74","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(88)90061-5"},{"key":"S1471068420000496_ref57","unstructured":"Muthukumar, K. and Hermenegildo, M. 1991. Combined determination of sharing and freeness of program variables through abstract interpretation. In International Conference on Logic Programming (ICLP 1991). MIT Press, 49\u201363."},{"key":"S1471068420000496_ref43","unstructured":"Khedker, U. P. and Karkare, B. 2008. Efficiency, precision, simplicity, and generality in interprocedural data flow analysis: Resurrecting the classical call strings method. In Compiler Construction, 17th International Conference, CC 2008, Budapest, Hungary, March 29\u2013April 6, 2008, L. J. Hendren, Ed. Lecture Notes in Computer Science, vol. 4959. Springer, 213\u2013228."},{"key":"S1471068420000496_ref27","unstructured":"Dumortier, V. , Janssens, G. , Simoens, W. and Garca de la Banda, M. 1993. Combining a definiteness and a freeness abstraction for CLP languages. In Workshop on Logic Program Synthesis and Transformation."},{"key":"S1471068420000496_ref51","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068418000042"},{"key":"S1471068420000496_ref14","doi-asserted-by":"publisher","DOI":"10.1145\/78969.78963"},{"key":"S1471068420000496_ref17","unstructured":"Codish, M. , Debray, S. and Giacobazzi, R. 1993. Compositional analysis of modular logic programs. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL\u201993. ACM, Charleston, South Carolina, 451\u2013464."},{"key":"S1471068420000496_ref67","unstructured":"Puebla, G. and Hermenegildo, M. V. 1996. Optimized algorithms for the incremental analysis of logic programs. In International Static Analysis Symposium (SAS 1996). Lecture Notes in Computer Science, vol. 1145. Springer-Verlag, 270\u2013284."}],"container-title":["Theory and Practice of Logic Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S1471068420000496","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,8,22]],"date-time":"2024-08-22T17:03:09Z","timestamp":1724346189000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068420000496\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,1,19]]},"references-count":79,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2021,3]]}},"alternative-id":["S1471068420000496"],"URL":"https:\/\/doi.org\/10.1017\/s1471068420000496","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"type":"print","value":"1471-0684"},{"type":"electronic","value":"1475-3081"}],"subject":[],"published":{"date-parts":[[2021,1,19]]},"assertion":[{"value":"\u00a9 The Author(s), 2021. Published by Cambridge University Press","name":"copyright","label":"Copyright","group":{"name":"copyright_and_licensing","label":"Copyright and Licensing"}}]}}