Logic programming environments: Dynamic program analysis and debugging

The Journal of Logic Programming - Tập 19 - Trang 351-384 - 1994
Mireille Ducassé, Jacques Noyé

Tài liệu tham khảo

1989 Aikawa, S., Kamiko, M., Kubo, H., Matsuzawa, F., and Chikayama, T., ParaGraph: A Graphical Tuning Tool for Multiprocessor Systems, in: FGCS'92 [78], pp. 286–293. 1989 Arora, 1993, Explaining Program Execution in Deductive Systems Av-Ron, 1984, Top-Down Diagnosis of Prolog Programs Ball T., and Horwitz, S., Slicing Programs with Arbitrary Control Flow, in: Fritzson [80], AADEBUG'93. Barker-Plummer, D., Cliché Programming in Prolog, in: Bruynooghe [20], pp. 247–271, META'90. Baklund, J., What is a Meta-Variable in Prolog? in: Abramson and Rogers [1], pp. 383–398, META '88. Baron, U., Chassin de Kergommeaux, J., Hailperin, M., Ratcliffe, M., Robert, P., Syre, J.-C., and Westphal, H., The Parallel ECRC Prolog System PEPSys: An Overview and Evaluation Results, in: FGCS'88[77], pp.841–850. Belli, F., and Jack, O., A Product Assurance Environment for Prolog, in: Duccassé et al. [63], LPE'93. Bergantz, 1991, Information Relationships in Prolog Programs: How do Programmers Comprehend Functionality?, 35, 313 Binks, D., Declarative Debugging of Abstract Data Types in Godël, in: Fritzon [80], AADEBUG'93. Bougé, 1986, Test Sets Generating from Algebraic Specifications Using Logic Programming, Journal of System and Software, 6, 343, 10.1016/0164-1212(86)90004-X Bowless, A. W., and Wilk, P. F., Tracing Requirements for Multi-Layered Meta-Programming in: Abramson and Rogers [1], pp. 383–398, META'88. Brayshaw, 1991, An Architecture for Visualizing the Execution of Parallel Logic Programs, 870 Brayshaw, M., and Eisenstadt, M., Adding Data and Procedure Abstraction to the Transparent Prolog Machine (TPM), in: Kowalski and Bowen [106], pp. 532–547, JICSLP'88. Breuer, 1992, Reverse Engineering in Prolog, vol. 636, 290 Bronsard, 1992, A Framework of Directionality for Proving Termination of Logic Programs, 321 Bruffaerts, A., and Henin, E., Proof Trees for Negation as Failure: Yet Another Prolog Meta-Interpreter, in: Kowalski and Bowen [106], pp. 343–358, JICSLP'88. 1990 Bruynooghe, 1991, A Practical Framework for the Abstract Interpretation of Logic Programs, Journal of Logic Programming, 10, 91, 10.1016/0743-1066(91)80001-T Bruynooghe, 1992, Special Issue on Abstract Interpretation, Journal of Logic Programming, 13 Bruynooghe, M., and Janssens, G., An Instance of Abstract Interpretation Integrating Type and Mode Inference, in: Kowalski and Bowen [106], pp.669–683, JICSLP'88. 1992, vol. 631 Bundy, 1986, A Proposed Prolog Story Byrd, 1980, Understanding the Control Flow of Prolog Programs, Logic Programming Workshop Calejo, 1992, A Framework for Declarative Prolog Debugging Calejo, 1991, Declarative Source Debugging, vol. 541 Callebaut, A., and Demoen, B., Program Sources as Model for Debugging in Prolog in: Ducassé et al. [64], LPE'90. Campagnoni, 1989, Information Retrieval Using a Hypertext-Based Help System, Proceedings of the 12th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, 212, 10.1145/75334.75357 Canfora, 1992, A Logic-Based Approach to Reverse Engineering Tools Production, IEEE Transactions on Software Engineering, 18, 1053, 10.1109/32.184760 Carlsson, 1993, Smoothing Rough Edges in Aurora Carro, 1993, Some Paradigms for Visualizing Parallel Execution of Logic Programs Casson, 1990, Event Abstraction Debuggers for Layered Systems in Prolog Cheng, J., Slicing Concurrent Programs, in: Fritzon [80], AADEBUG'93. Cherniak, 1988, Undebuggability and Cognitive Science, Communications of the ACM, 31, 402, 10.1145/42404.42406 Cochard, J.-L., A Graphical Representation Environment for Complex Prolog Structures, in: Ducassé et al. [64], LPE'90. Codish, M., Dams, D., and Shapiro, E., Automatic Detection of Reply Variables in Concurrent Logic Programs, in: Bruynooghe [20], pp.325–338, META'90. Codognet, C., Codognet, P., and Corsini, M., Abstract Interpretation of Concurrent Logic Programs, in: Debray and Herminigildo [45], pp.215–232, NACLP'90. Cohen, 1977, A Language for Inquiring about the Run-Time Behavior of Programs, Software—Practice and Experience, 7, 445, 10.1002/spe.4380070403 Conlon, 1992, Debugging Tools for Concurrent Logic Programming, 35, 157 Coombs, 1984, Expert Systems: An Alternative Paradigm, 135 Coombs, 1986, Debugging User Conceptions of Interpretation Processes, 303 Chassin de Kergommeaux, 1988, The Implementation of PEPSys on a MX-500 Multiprocessor, Technical Report CA-38 1990 Debray, 1989, Static Inference of Modes and Data Dependencies in Logic Programs, ACM Transactions on Programming Languages and Systems, 11, 418, 10.1145/65979.65983 DeMillo, 1987 Dershowitz, N., and Lee, Y., Deductive Debugging, in: SLP'87 [171], pp.298–306. Deville, 1994, Logic Program Synthesis, Journal of Logic Programming 19, 20, 321, 10.1016/0743-1066(94)90029-9 Also , Research Report RR 93-19,Université Catholique de Louvain, Unité d'Informatique. Dewar, 1986, Graphical Display of Complex Information within a Prolog Debugger, 25, 503 Diehl, 1993, Reachability Analysis on Distributed Executions, vol. 668, 629 Dincbas, M., Van Hentenryck, P., Simonis, H., Aggoun, A., Graf, T., and Berthier, F., The Constraint Logic Programming Language CHIP, in: FGCS'88 [77]. Disz, T., and Lusk, E., A Graphical Tool for Observing the Behavior of Parallel Logic Programs, in: SLP'87 [171], pp. 46–53. Domingue, 1989, A New Metaphor for the Graphical Explanation of Forward-Chaining Rule Execution, 129 Dorochevsky, 1992, ElipSys Parallel Execution Tracer, Internal Report 91-7i Drabent, W., Nadjm-Tehrani, S., and Maluszynski, J., The Use of Assertions in Algorithmic Debugging, in: FGCS'88[77], pp. 573–581. Drabent, W., Nadjm-Tehrani, S., amd Maluszynski, J., Algorithmic Debugging with Assertions, in: Abramson and Rogers [1], pp.383–398, META'88. Ducassé, M., Abstract Views of Prolog Executions in Opium, in: Saraswat and Ueda [162], pp. 18–32, ILPS'91. Ducassé, 1991, Analysis of Failing Prolog Executions Ducassé, 1992, An Extendable Trace Analyser to Support Automated Debugging Ducassé, M., A General Trace Querry Mechanism Based on Prolog, in: Bruynooghe and Wirsing [24], pp.400–414, PLILP'92. Ducassé, M., A Pragmantic Survey of Automated Debugging, in: Fritzon [80], AADE- BUG'93. 1993 1990 1991 1992 Ducassé, 1994 Duesterwald, 1992, Distributed Slicing and Partial Reexecution for Distributed Programs, Vol. 589 Eisenstadt, 1984, A Powerful Prolog Trace Package Eisenstadt, 1985, Retrospective Zooming, A Knowledge Based Tracing and Debugging Methodology for Logic Programming Eisenstadt, 1988, The Transparent Prolog Machine (TPM): An Execution Model and Graphical Debugger for Logic Programming, Journal of Logic Programming, 5, 277, 10.1016/0743-1066(88)90001-5 Emde, 1990, Automated Debugging of Non-Terminating Prolog Programs, Proceedings of the ICLP'90 Workshop on Logic Programming Environments Eriksson, 1985, Neat Explanation of Proof Trees, 379 Feldman, Y., and Shapiro, E., Temporal Debugging and Its Visual Animation, in: Saraswat and Ueda [162], pp.3–17, ILPS'91. Fernández, 1992, IDeal Resource Allocation (IDRA): A Technique for Computing Accurate Ideal Speedups in Parallel Logic Languages Ferrand, 1987, Error Diagnosis in Logic Programming, An Adaptation of E.Y. Shapiro's Method, Journal of Logic Programming, 4, 177, 10.1016/0743-1066(87)90001-X 1988 1992 Fidge, 1991, Logical Time in Distributed Computing Systems, IEEE Computer, 28–33 1993, Proceedings of the First Workshop on Automated and Algorithmic Debugging, vol. 749 Fromherz, 1993, Declarative Debugging of Concurrent Constraint Programs, Lecture Notes in Computer Sciences, vol. 749, 10.1007/BFb0019403 Fuchs, 1992, Specifications Are (Preferably) Executable, 323 Gaifman, 1991, Replay, Recovery, Replication and Snapshots of Nondeterministic Concurrent Programs Gallagher, 1986, Transforming Logic Programs by Specialising Interpreters, 109 Gorlick, 1987, Timing Prolog Programs without Clocks, SLP'87, 426 Gorlick, 1990, Mockingbird: A Logical Methodology for Testing, The Journal of Logic Programming, 8, 95, 10.1016/0743-1066(90)90053-8 Graham, 1982, gprof: A Call Graph Execution Profiler, SIGPLAN Notices, 17, 120, 10.1145/872726.806987 Hanus, 1993, A Debugging Model for Functional Logic Programs, vol. 714 Hermenegildo, 1992 Hill, 1992, The Gödel Programming Language Hill, P.M., and Lloyd, J.W., Analysis of Meta-Programs, in: Abramson and Rogers [1], pp. 23–51, META'88. Hirunkitti, V., and Hogger, C.J., A Generalised Query Minimisation for Program Debugging, in: Fritzson [80], AADEBUG'93. Hoffman, 1991, Automated Module Testing in Prolog, IEEE Transactions on Software Engineering, 17, 934, 10.1109/32.92913 Höök, 1990, Redo “TRY ONCE and PASS”: The Influence of Complexity and Graphical Notation on Novices' Understanding of Prolog, 19, 337 Höök, 1992, Possible Extensions to the Byrd Box Tracer Aimed at Experts Huntbach, M.M., Algorithmic Parlog Debugging, in: SLP'87 [171], pp. 288–297. Inamura, Y., and Onishi, S., A Detection Algorithm of Perpetual Suspension in KL1, in: Warren and Szeredi [191], pp.18–30, ICLP'90. Ishida, S., and Chikayama, T., Programming Environment of PIMOS, in: Ducassé et al. [66], pp. 48–54, LPE'92. Kahn, K.M., Concurrent Constraint Programs to Parse and Animate Pictures of Concurrent Constraint Programs, in: FGCS'92 [78]. Kamkar, 1990, Bug Localization by Algorithmic Debugging and Program Slicing, vol. 456 Karlsson, 1992, A High-Performance OR-Parallel System Klint, 1992, Programming Environments, ACM SIGPLAN Notices, 27, 90, 10.1145/141018.141058 Komorowski, 1982, Partial Evaluation as a Means for Inferencing Data Structures in an Applicative Language: A Theory and Implementation in the Case of Prolog, 255 1982 Korel, B., Identifying Faulty Modifications in Software Maintenance, in: Fritzson [80], AADEBUG'93. 1988 Kusalik, 1993, Towards a Generalized Graphical Interface for Logic Programming Development Kusalik, A.J., and Prestwich, S.D., Programmer-Oriented Visualisation of Parallel Logic Program Execution, in: Ducassé . [63], LPE'93. Ladret, 1991, Vlp: A Visual Logic Programming Language, 2, 163 Lakshman, T. K., and Reddy, U. S., Typed Ptolog: A Semantic Reconstruction of Mycroft-O'Keefe Type System, in: Saraswat and Ueda [162], pp. 202–220, ILP'91. Lamport, 1978, Time, Clocks, and the Ordering of Events in a Distributed System, Communications of the ACM, 21, 558, 10.1145/359545.359563 Lazzeri, S.G., Vizzprol: A Tool for Visualizing Prolog Programs, in: Ducassé and Ferrand [65], LPE'91. Leal, J.P., The Ytoolkit: A Prolog Approach to a User Interface, in: Ducassé . [64], LPE'90. Leal, J.P., Damas, L., and Moreira, N., An History Based Interface, in: Ducassé and Ferrand [65], LPE'91. Leblanc, 1987, Debugging Parallel Programs with Instant Replay, IEEE Transactions on Computers, C-36, 471, 10.1109/TC.1987.1676929 Lee, Y.-J., and Dershowitz, N., Debugging Logic Programs Using Specifications, in: Fritzson [80], AADEBUG'93. Leu, 1992, Execution Replay: A Mechanism for Integrating a Visualization Tool With, vol. 634, 55 Leu, 1991, Efficient Execution Replay Technique for Distributed Memory Architectures, vol. 487, 315 1989 Lichtenstein, Y., and Shapiro, E., Abstract Algorithmic Debugging, in: Kowalski and Bowen [106], JICSLP'88. Lim, P., and Stuckey, P.J., Meta Programming as Constraint Programming, in: Debray and Hermenegildo [45], pp. 416–430, NACLP'90. Lingenfelder, 1989, Structuring Computer Generated Proofs, 378 Lloyd, 1987, Declarative Error Diagnosis, 5, 133 Lloyd, J.W., Directions for Meta-Programming, in: FGCS'88 [77], pp. 609–617. Looi, 1988, Analysing Novices' Programs in a Prolog Intelligent Teaching System, 314 Lusk, 1993, Applications of the Aurora Parallel Prolog System to Computational Molecular Biology, 353 Maeda, M., Implementing a Process Oriented Debugger with Reflection and Program Transformation, in: FGCS'92 [78], pp. 961–968. Malony, 1991, Traceview: A Trace Visualization Tool, IEEE Software, 19, 10.1109/52.84213 Marre, 1991, Toward Automatic Test Data Set Selection Using Algebraic Specifications and Logic Programming, 202 McDowell, 1989, Debugging Concurrent Programs, ACM Computing Surveys, 21, 593, 10.1145/76894.76897 Meier, 1989, SEPIA—An Extendible Prolog System, Proceedings of the IFIP '89 Mellish, 1987, Abstract Interpretation of Prolog Programs, 181 Miller, 1956, The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information, Psychological Review, 63, 81, 10.1037/h0043158 Monteiro, L., and Porto, A., Contextual Logic Programming, in: Levi and Martelli [119], pp. 284–299, ICLP'89. Moroshita, 1986, Prolog Computation Model BPM and Its Debugger PROEDIT2, 147 Mulholland, 1993 Murray, 1993, Visualizing and Representing Knowledge for the End User: A Review, 38, 23 Myers, 1979, The Art of Software Testing Nadathur, G., and Miller, D.A., An Overview of λProlog, in: Kowalski and Bowen [106], pp. 810–827, JICSLP'88. Naish, 1986, Negation and Control in Prolog, vol. 238 Naish, L., Declarative Debugging of Lazy Functional Programs, in: Ducassé . [66], pp. 29–34, LPE'92. Naish, L., Types and the Intended Meaning of Logic Programs, in: Pfenning [153], ch.6, pp. 189–216, ISBN 0-262-16131-1. Naish, L., Dart, P.W., and Zobel, J., The NU-Prolog Debugging Environment, in: Levi and Martelli [119], ICLP'89. Nakashima, 1984, What is a Variable in Prolog?, 327 Nilsson, H., and Fritzson, P., Algorithmic Debugging of Lazy Functional Languages, in: Bruynooghe and Wirsing [24], pp.385–399, PLILP'92. Noyé, 1994, An Overview of the Knowledge Crunching Machine Olsson, 1991, A Dataflow Approach to Event-Based Debugging, 21, 209 Osterweil, 1992, A Proposed Testing and Analysis Research Initiative, IEEE Software, 89, 10.1109/52.156901 Paris, 1991, Generation and Explanation: Building an Explanation Facility for the Explainable Expert Systems Framework, 49 Pereira, 1986, Rational Debugging in Logic Programming, vol. 225, 203 Pereira, L.M., and Calejo, M.C., A Framework for Prolog Debugging, in: Kowalski and Bowen [106], JICSLP'88. Pereira, L.M., Damasio, C.V. and Alferes, J.J., Debugging by Diagnosing Assumptions, in: Fritzson [80], AADEBUG'93. 1992 Plummer, 1987, Coda: An Extended Debugger for Prolog Podgurski, 1989, The Implications of Program Dependences for Software Testing, Debugging, and Maintenance, 14, 168 Rajan, 1987, Apt: A Principled Design of an Animated View of Program Execution for Novice Programmers, 291 Raynal, 1992, About Logical Clocks for Distributed Systems, Operating Systems Review (ACM SIGOPS), 26, 41, 10.1145/130704.130708 Reiss, 1990, Connecting Tools Using Message Passing in the FIELD Program Development Environment, IEEE Software, 57, 10.1109/52.56450 Rousset, 1987, Negative and Positive Explanations in Expert Systems, 1 Rueher, M., Revisiting Capabilities of Graphic for Logic Programming, in: Ducassé and Ferrand [65], LPE'91. Safra, 1986, Meta Interpreters for Real, 271 1991 Saurel, 1987, Contribution aux Systémes Experts: Développement d'un Cas Concret et Etude du Probléme de la Génération d'Explications Négatives Schleiermacher, 1990, The Implementation of ProTest Sehr, D.C., and Kalé, L.V., Estimating the Inherent Parallelism in Prolog Programs, in: FGCS'92 [78], pp. 783–790. Shahmehri, 1991, Generalized Algorithmic Debugging Shapiro, 1989, The Family of Concurrent Logic Programming Languages, ACM Computing Surveys, 21, 413, 10.1145/72551.72555 Shapiro, 1983 Shmueli, O., and Tsur, S., Logical Diagnosis of LDL Programs, in: Warren and Szeredi [191], pp. 112–129, ICLP'90. Silverman, 1987, The Logix System User Manual 1987 Specht, G., Generating Explanation Trees Even for Negations in Deductive Database Systems, in: Ducassé . [63], LPE'93. Sterling, 1986, Incremental Flavor-Mixing of Meta-Interpreters for Expert System Construction, Proceedings of the 3rd Symposium on Logic Programming, 20 Sterling, 1986 Sterling, 1989, Explaining Prolog Based Expert Systems Using a Layered Meta-Interpreter Strooper, P., and Hoffman, D., Prolog Testing of C Modules, in: Saraswat and Ueda [162], pp. 596–610, ILPS'91. Svensson, 1990, MUSE Trace Swartout, 1989, Toward a Rapid Prototyping Environment for Expert Systems Takahashi, 1985, Preset—A Debugging Environment for Prolog, vol. 221, 90 Takeuchi, 1987, Algorithmic Debugging of GHC Programs and its Implementation in GHC, 180 Tick, E., Visualizing Parallel Logic Programs with VISTA, in: FGCS'92 [78], pp. 934– 942. Tobermann, G., and Beckstein, C., What's in a Trace: The Box Model Revisited, in: Fritzson [80], AADEBUG'93. Trehan, R., A Process Based Tracer for KL1 on PIM, in: Ducassé and Ferrand [65], LPE'91. van Emden, 1982, An Interpreting Algorithm for Prolog Programs, Proceedings of the First International Conference on Logic Programming van Emden, 1993, Marketing for Logic Programming, Newsletter of the Association for Logic Programming, 6, 3 van Emden, 1982, Logic Programming, 189 van Harmelen, 1992, Definable Naming Relations in Meta-Level Systems, vol. 649, 89 van Rossum, 1989, Implémentation d'un Debugger Prolog Van Someren, 1985 Walker, 1983, Prolog/Ex1, An Inference Engine Which Explains Both Yes and No Answers, 526 1990 Weiser, 1984, Program Slicing, IEEE Transactions on Software Engineering, SE-10, 352, 10.1109/TSE.1984.5010248 Wieland, 1990, Two Explanation Facilities for the Deductive Database Management System DeDex, Proceedings of the 9th Conference on Entity-Relationship Approach, 189 Wielemaker, 1992 Wielemaker, 1992 Yalcinalp, 1991, Meta-Programming for Knowledge Based Systems in Prolog Yalcinalp, L.Ü., and Sterling, L., An Integrated Interpreter for Explaining Prolog's Successes and Failures, in: Abramson and Rogers [1], META'88.