title: Algorithms for implementing analytic calculus
body: <p>I'm interested in writing a program in Python that can parse a mathematical expression and carry out operations on it in algebraic form. Most of these will be pretty easy, something like <code>2x+5x+xy</code>. My program would take this and return the simplified <code>7x+xy</code>. However I'd also like to eventually extend it's functionality to calculus as well, so if it's given something like <code>integrate: 5x</code> it should be able to return <code>(5x^2)/2 + c</code>. I'm aware that for this the sympy library can be used, but I'm interested in implementing it myself as a learning process. Are there any algorithims that exist to carry out algebraic calculus for any arbitrary integral/differential I could implement, or is this a more daunting task I've set for myself here? Any reasources would be appreciated. </p>