DapleLogo copy.png

Description Features Screenshots Downloads


Inspired by the mathematical application Maple?? by Maplesoft which is used at Rose-Hulman Institute of Technology, the Daple project was originally a Java application that I started in the winter of 2002. The application features a powerful, object-oriented, mathematical expression parser that can numerically evaluate user-entered strings. For example, the string “5*sin(x^2)” could be analyzed by the parser which would identify “x” as a variable and understand the “^” as specifying an exponent, etc. Once analyzed and encapsulated within an Expression object, the expression could be numerically evaluated by substituting a value for each of the symbolic variables (just “x” in this example). The expression parser is used internally to perform two-dimensional plotting in function, polar, and parametric modes. The original application also featured a simple 3-D rendering system for plotting functions of two variables with 3-D transformations done manually in software.

During 2004 Daple was ported to C# and the .NET Framework, as well as converting the 3-D rendering system to Managed DirectX. In addition to simply porting the functionality, the conversion also organized the code into several class libraries (one for expression parsing, another for 2-D plotting, etc.) to clean the project design.

I no longer actively develop Daple, but a significant portion of its codebase, especially string-manipulation methods used in the application’s expression parser, are still widely used in my other projects.

Note-worthy Features

  • Fast Object-Oriented Expression Parsing – Hierarchical parsing of mathematical expressions is performed recursively using object-oriented representations of the expressions
  • Two Dimensional Plotting – Supports function, polar, and parametric 2-D plotting modes as well as a wide range
  • Hardware Accelerated 3-D Plotting – Using Managed DirectX, detailed three-dimensional plots can be visualized in full color at great speeds


Expression.JPGExpression Parsing 2-D.JPG2-D Graphing 3-D1.JPG3-D Graphing


No downloads currently available.