skip to main content
10.1145/1297027.1297075acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

No ifs, ands, or buts: uncovering the simplicity of conditionals

Published:21 October 2007Publication History

ABSTRACT

Schematic tables are a new representation for conditionals. Roughly a cross between decision tables and data flowgraphs, they represent computation and decision-making orthogonally. They unify the full range of conditional constructs, from if statements through pattern matching to polymorphic predicate dispatch. Program logic is maintained in a declarative canonical form that enforces completeness and disjointness among choices. Schematic tables can beused either as a code specification/generation tool, or as a self-contained diagrammatic programming language. They give program logic the clarity of truth tables, and support high-level direct manipulation of that logic, avoiding much of the mental computation demanded by conventional conditionals.

References

  1. A. Blake. Canonical expressions in Boolean algebra. PhD thesis, University of Chicago, 1938.Google ScholarGoogle Scholar
  2. E. Börger, Y. Gurevich, and E. Grädel. The classical decision problem. Springer, 2001.Google ScholarGoogle Scholar
  3. F. Brooks. No Silver Bullet: Essence and Accidents of Software Engineering. Computer, 20(4):10--19, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. F. Brown. Boolean Reasoning. Kluwer Academic Publishers Boston, 1990.Google ScholarGoogle Scholar
  5. M. Burnett and A. Goldberg. Visual Object-Oriented programming. Manning, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. Burstall, D. MacQueen, and D. Sannella. HOPE: An experimental applicative language. Proceedings of the 1980 ACM conference on LISP and functional programming, pages 136--143, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Davis, G. Logemann, and D. Loveland. A machine program for theorem-proving. Commun. ACM, 5(7): 394--397, 1962. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. W. Dijkstra. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM, 18 (8):453--457, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Edwards. Example centric programming. SIGPLAN Not. (OOPSLA'04 Onward! Proceedings), 39(12):84--91, 2004. ISSN 0362--1340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Edwards. Subtext: Uncovering the simplicity of programming. In OOPSLA'05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 505--518. ACM Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Edwards. First Class Copy & Paste. Technical report, Massachusetts Institute of Technology Computer Science and Artificial Intelligence Laboratory, May 2006. URL http://hdl.handle.net/1721.1/32980.Google ScholarGoogle Scholar
  12. M. Ernst, C. Kaplan, and C. Chambers. Predicate Dispatching: A Unified Theory of Dispatch. ECOOP, 98:12th, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. L. Fisher. Data, documentation, and decision tables. Commun. ACM, 9(1):26--31, 1966. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. Green and M. Petre. When Visual Programs are Harder to Read than Textual Programs. Human-Computer Interaction, 1992.Google ScholarGoogle Scholar
  15. R. Halverson Jr. An Empirical Investigation Comparing IF-THEN Rules and Decision Tables for Rrogramming Rule-based Expert Systems. System Sciences, 1993, Proceeding of the Twenty-Sixth Hawaii International Conference on, 3, 1993.Google ScholarGoogle Scholar
  16. C. Heitmeyer, M. Archer, R. Bharadwaj, and R. Jeffords. Tools for constructing requirements specifications: The SCR toolset at the age of ten. International Journal of Computer Systems Science and Engineering, 20(1):19--35, 2005.Google ScholarGoogle Scholar
  17. M. Ibramsha and V. Rajaraman. Detection of logical errors in decision table programs. Commun. ACM, 21 (12):1016--1025, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. R. Janicki, D. L. Parnas, and J. Zucker. Tabular representations in relational rocuments. In Relational methods in computer science, pages 184--196. Springer-Verlag, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. A. Jeffrey. Premonoidal categories and a graphical view of programs. Technical Report 98--004, CTI, DePaul University, August 1998. URL http://facweb.cs.depaul.edu/research/techreports/abstract98004.htm.Google ScholarGoogle Scholar
  20. S. Jones. Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreignlanguage calls in Haskell. Engineering theories of software construction, Marktoberdorf Summer School, pages 47--96, 2000.Google ScholarGoogle Scholar
  21. P. J. H. King. Ambiguity in limited entry decision tables. Commun. ACM, 11(10):680--684, 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. H. Kirk. Use of Decision Tables in Computer Programming. Communications of the ACM, 8(1):41--43, 1965. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. V. Kuncak and M. Rinard. Decision procedures for setvalued fields. 1st International Workshop on Abstract Interpretation of Object-Oriented Languages (AIOOL 2005), 2005.Google ScholarGoogle Scholar
  24. N. G. Leveson. Intent specifications: An approach to building human-centered specifications. Software Engineering, 26(1):15--35, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. LogicGem 3.0 QuickStart. URL http://www.catalyst.com/products/logicgem/quickstart.pdf.Google ScholarGoogle Scholar
  26. A. Löh and R. Hinze. Open data types and open functions. Proceedings of the 8th ACM SIGPLAN symposium on Principles and practice of declarative programming, pages 133--144, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. T. Millstein. Practical predicate dispatch. Proceedings of the 19th annual ACM SIGPLAN Conference on Object-Oriented programming, systems, languages, and applications, pages 345--364, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. D. A. Moon. Object-Oriented programming with flavors. In OOPLSA'86: Conference proceedings on Object-Oriented programming systems, languages and applications, pages 1--8, New York, NY, USA, 1986. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. B. Myers. Taxonomies of Visual Programming and Program Visualization. Journal of Visual Languages and Computing, 1(1):97--123, 1990.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. I. Nassi and B. Shneiderman. Flowchart techniques for structured programming. SIGPLAN Not., 8(8):12--26, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. J. Pane and B. Myers. Tabular and Textual Methods for Selecting Objects from a Group. Proceedings of VL 2000: IEEE International Symposium on Visual Languages, pages 157--164, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. J. Pane and B. Myers. Usability Issues in the Design of Novice Programming Systems. Technical Report CMU-CS-96-132, School of Computer Science, Carnegie Mellon University, August 1996.Google ScholarGoogle Scholar
  33. S. Pollack. Analysis of the Decision Rules in Decision Tables. Technical Report RM--3669--PR, Rand Corp, 1963.Google ScholarGoogle Scholar
  34. U. Pooch. Translation of Decision Tables. ACM Computing Surveys (CSUR), 6(2):125--151, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. W. Quine. The Problem of Simplifying Truth Functions. The American Mathematical Monthly, 59(8): 521--531, 1952.Google ScholarGoogle Scholar
  36. B. Silberg. Detab/65 in third-generation cobol. SIGPLAN Not., 6(8):4--8, 1971. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. StateStep Tutorial. URL http://statestep.com/tutorial/RuleInitial.html.Google ScholarGoogle Scholar
  38. R. F. Sterbenz. Tabsol decision table preprocessor. SIGPLAN Not., 6(8):33--40, 1971. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. D. Thomas. Agile Programming: Design to Accommodate Change. IEEE Software, 22(3):14--16, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. A. M. Turing. (1946) Proposed Electronic Calculator, report for National Physical Laboratory, Teddington. In A. M. Turing's ACE Report of 1946 and Other Papers. MIT Press, 1986.Google ScholarGoogle Scholar
  41. I. Vessey and R. Weber. Structured Tools and Conditional Logic: an Empirical Investigation. Communications of the ACM, 29(1):48--57, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. P. Wadler. Comprehending monads. Proceedings of the 1990 ACM conference on LISP and functional programming, pages 61--78, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. No ifs, ands, or buts: uncovering the simplicity of conditionals

          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

          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!