skip to main content
research-article

Generation of geometric programs specified by diagrams

Published:22 October 2011Publication History
Skip Abstract Section

Abstract

The GeoGram system [21]generates programs for geometric computations by combining generic software components as specified by diagrams constructed using a graphical interface. The user specifies known and desired quantities. As diagrams are constructed, the system maintains symbolic geometric facts describing the construction. Inferences based on the diagram are used to derive new facts and to introduce new objects based on geometric reasoning, to filter choices presented to the user, to interpret the user's intention in ambiguous cases, to detect over-specification, and to generate the program. A knowledge base of descriptions of generic software components is used to prove that features of the geometry can be computed from known values. These local proofs are combined to guide generation of a program that computes the desired values from inputs. The library of generic geometric program components is used to generate both in-line code and specialized subroutines; partial evaluation improves the efficiency of the generated code. The resulting program is automatically translated into the desired language. The program can also be run interactively to simulate the geometry by generating graphical traces on the diagram as input quantities are varied.

References

  1. Robert L. Akers, Elaine Kant, Curtis J. Randall, Stanly Steinberg, and Robert L. Young. Scinapse: A problem-solving environment for partial differential equations. IEEE Computational Science and Engineering, 4(3):32--42, July 1997. www.scicomp.com. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Alice web site. www.alice.org.Google ScholarGoogle Scholar
  3. Robert Balzer. A 15 year perspective on automatic programming. IEEE Trans. Software Engr., 11(11):1257--1267, November 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Don Batory, Jacob Sarvela, and Axel Rauschmayer. Scaling step-wise refinement. IEEE Trans. Software Engr., 30(6):355--371, June 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Ira D. Baxter, Christopher Pidgeon, and Michael Mehlich. Dms: Program transformations for practical scalable software evolution. In Proc. Intl. Conf. Software Engr. IEEE Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Sanjay Bhansali and Tim J. Hoar. Automated software synthesis: An application in mechanical cad. IEEE Trans. Software Engr., 24(10):848--862, October 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Alan Borning. The programming language aspects of thinglab, a constraint-oriented simulation laboratory. ACM Trans. Programming Languages and Systems, 3(4):353--387, October 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Burmester link. gtrebaol.free.fr/doc/flash/four_bar/doc/.Google ScholarGoogle Scholar
  9. Shang-Ching Chou. Mechanical Geometry Theorem Proving. Kluwer Academic Publishers, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Shang-Ching Chou, Xiao-Shan Gao, and Jing-Zhong Zhang. A deductive database approach to automated geometry theorem proving and discovering. J. Automated Reasoning, 25(3):219--246, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cinderella web site. www.cinderella.de/tiki-index.php.Google ScholarGoogle Scholar
  12. Krzysztof Czarnecki and Ulrich W. Eisenecker. Generative Programming: Methods, Tools and Applications. Addison-Wesley, 2000. www.generative-programming.org. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Thomas Ellman. Specification and synthesis of hybrid automata for physics-based animation. Automated Software Engineering, 13(3), 395--418 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Marc Freixas, Robert Joan-Arinyo, and Antoni Soto-Riera. A constraint-based dynamic geometry system. Computer-Aided Design, 42(2):151--161, February 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Xiao-Shan Gao. Automated geometry diagram construction and engineering geometry. In ADG-98, LNAI 1669, pages 232--258. Springer, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Xiao-Shan Gao and Qiang Lin. Mmp/geometer - a software package for automated geometric reasoning. In ADG 2002, LNAI 2930, pages 44--66. Springer, 2004.Google ScholarGoogle Scholar
  17. dynamicgeometry.com/.Google ScholarGoogle Scholar
  18. Ashok Goel, Swaroop Vattam, Bryan Wiltgen, and Michael Helms. Cognitive, collaborative, conceptual and creative - four characteristics of the next generation of knowledge-based cad systems: A study in biologically inspired design. Computer-Aided Design, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. National Instruments. www.ni.com/labview/.Google ScholarGoogle Scholar
  20. Charles W. Krueger. Software reuse. ACM Computing Surveys, 24(2):131--184, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Yulin Li. The diagrammatic specification and automatic generation of geometry subroutines. www.cs.utexas.edu/forms/tech_reports/reports/tr/TR-1991.pdf, May 2010.Google ScholarGoogle Scholar
  22. Michael Lowry, Andrew Philpot, Thomas Pressburger, and Ian Underwood. Amphion: Automatic programming for scientific subroutine libraries. In Methodologies for Intelligent Systems, LNCS 869, pages 326--335. Springer, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Hafedh Mili, Fatma Mili, and Ali Mili. Reusing software: Issues and research directions. IEEE Trans. Software Engr., 21(6):528--562, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. www.cs.utexas.edu/users/novak/cgi/physdemo.cgi.Google ScholarGoogle Scholar
  25. Gordon S. Novak. Glisp: A lisp-based programming system with data abstraction. AI Magazine, 4(3):37--47, Fall 1983.Google ScholarGoogle Scholar
  26. Gordon S. Novak. Generating programs from connections of physical models. In Proc. 10th Conf. Artificial Intelligence for Applications, pages 224--230. IEEE CS Press, March 1994.Google ScholarGoogle ScholarCross RefCross Ref
  27. Gordon S. Novak. Conversion of units of measurement. IEEE Trans. Software Engineering, 21(8):651--661, August 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Gordon S. Novak. Creation of views for reuse of software with different data representations. IEEE Trans. Software Engineering, 21(12):993--1005, December 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Gordon S. Novak. Software reuse by specialization of generic procedures through views. IEEE Trans. Software Engineering, 23(7):401--417, July 1997. www.cs.utexas.edu/users/novak/. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Gordon S. Novak. Computer aided software design via inference and constraint propagation. Integrated Computer-Aided Engineering, 16(3):181--191, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. uva.onlinejudge.org.Google ScholarGoogle Scholar
  32. en.wikipedia.org/wiki/Peaucellier-Lipkin_linkage.Google ScholarGoogle Scholar
  33. Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Prentice-Hall, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Steven S. Skiena and Miguel A. Revilla. Programming Challenges. Springer, 2003.Google ScholarGoogle Scholar
  35. Douglas R. Smith. Kids: A semiautomatic program development system. IEEE Trans. Software Engr., 16(9):1024--1043, September 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Armando Solar-Lezama, Liviu Tancau, Rastislav Bodik, Vijay Saraswat, and Sanjit Seshia. Combinatorial sketching for finite programs. In ASPLOS '06. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Mark Stickel, Richard Waldinger, Michael Lowry, Thomas Pressburger, and Ian Underwood. Deductive composition of astronomical software from subroutine libraries. In 12th Conf. on Automated Deduction, LNCS 814. Springer, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Watt linkage. en.wikipedia.org/wiki/Watt's_linkage.Google ScholarGoogle Scholar
  39. List of interactive geometry software. en.wikipedia.org/wiki/List_of_interactive_geometry_software.Google ScholarGoogle Scholar
  40. Sean Wilson and Jacques D. Fleuriot. Combining dynamic geometry, automated geometry theorem proving and diagrammatic proofs. In Proc. European Joint Conf. on Theory and Practice of Software (ETAPS), page 151, 2005.Google ScholarGoogle Scholar

Index Terms

  1. Generation of geometric programs specified by diagrams

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Article Metrics

          • Downloads (Last 12 months)3
          • Downloads (Last 6 weeks)1

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!