skip to main content
10.1145/2047862.2047874acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
research-article

Generation of geometric programs specified by diagrams

Published: 22 October 2011 Publication History

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.
[2]
Alice web site. www.alice.org.
[3]
Robert Balzer. A 15 year perspective on automatic programming. IEEE Trans. Software Engr., 11(11):1257--1267, November 1985.
[4]
Don Batory, Jacob Sarvela, and Axel Rauschmayer. Scaling step-wise refinement. IEEE Trans. Software Engr., 30(6):355--371, June 2004.
[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.
[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.
[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.
[8]
Burmester link. gtrebaol.free.fr/doc/flash/four_bar/doc/.
[9]
Shang-Ching Chou. Mechanical Geometry Theorem Proving. Kluwer Academic Publishers, 1987.
[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.
[11]
Cinderella web site. www.cinderella.de/tiki-index.php.
[12]
Krzysztof Czarnecki and Ulrich W. Eisenecker. Generative Programming: Methods, Tools and Applications. Addison-Wesley, 2000. www.generative-programming.org.
[13]
Thomas Ellman. Specification and synthesis of hybrid automata for physics-based animation. Automated Software Engineering, 13(3), 395--418 2006.
[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.
[15]
Xiao-Shan Gao. Automated geometry diagram construction and engineering geometry. In ADG-98, LNAI 1669, pages 232--258. Springer, 1999.
[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.
[17]
dynamicgeometry.com/.
[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.
[19]
National Instruments. www.ni.com/labview/.
[20]
Charles W. Krueger. Software reuse. ACM Computing Surveys, 24(2):131--184, June 1992.
[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.
[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.
[23]
Hafedh Mili, Fatma Mili, and Ali Mili. Reusing software: Issues and research directions. IEEE Trans. Software Engr., 21(6):528--562, June 1995.
[24]
www.cs.utexas.edu/users/novak/cgi/physdemo.cgi.
[25]
Gordon S. Novak. Glisp: A lisp-based programming system with data abstraction. AI Magazine, 4(3):37--47, Fall 1983.
[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.
[27]
Gordon S. Novak. Conversion of units of measurement. IEEE Trans. Software Engineering, 21(8):651--661, August 1995.
[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.
[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/.
[30]
Gordon S. Novak. Computer aided software design via inference and constraint propagation. Integrated Computer-Aided Engineering, 16(3):181--191, 2009.
[31]
uva.onlinejudge.org.
[32]
en.wikipedia.org/wiki/Peaucellier-Lipkin_linkage.
[33]
Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Prentice-Hall, 2010.
[34]
Steven S. Skiena and Miguel A. Revilla. Programming Challenges. Springer, 2003.
[35]
Douglas R. Smith. Kids: A semiautomatic program development system. IEEE Trans. Software Engr., 16(9):1024--1043, September 1990.
[36]
Armando Solar-Lezama, Liviu Tancau, Rastislav Bodik, Vijay Saraswat, and Sanjit Seshia. Combinatorial sketching for finite programs. In ASPLOS '06. ACM, 2006.
[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.
[38]
Watt linkage. en.wikipedia.org/wiki/Watt's_linkage.
[39]
List of interactive geometry software. en.wikipedia.org/wiki/List_of_interactive_geometry_software.
[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.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
GPCE '11: Proceedings of the 10th ACM international conference on Generative programming and component engineering
October 2011
194 pages
ISBN:9781450306898
DOI:10.1145/2047862
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 47, Issue 3
    GCPE '11
    March 2012
    179 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2189751
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 October 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. geometry
  2. model-based programming
  3. program generation
  4. reusable libraries
  5. software components
  6. theorem proving
  7. visual programming

Qualifiers

  • Research-article

Conference

GPCE '11
Sponsor:
GPCE '11: Generative Programming and Component Engineering
October 22 - 23, 2011
Oregon, Portland, USA

Acceptance Rates

Overall Acceptance Rate 56 of 180 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 206
    Total Downloads
  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)2
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media