Although not SAGE-specific, some of the issues are discussed in our Davenport,J.H. & Trager,B.M., Scratchpad's View of Algebra I: Basic Commutative Algebra. Proc. DISCO '90 (Springer Lecture Notes in Computer Science Vol. 429, ed. A. Miola) pp. 40-54. http://opus.bath.ac.uk/32336/.
Davenport,J.H., Gianni,P. & Trager,B.M., Scratchpad's View of Algebra II: A Categorical View of Factorization. Proc. ISSAC 1991 (ed. S.M. Watt), ACM, New York, pp. 32--38. http://opus.bath.ac.uk/32335/. On Saturday, 30 November 2013 23:04:01 UTC, Nehal Patel wrote: > > Hello -- I am interested in learning how one goes about modeling the > abstract concepts of modern mathematics such as Groups, Rings, Ideals, > Fields, etc. in an object oriented way (as well as learning a bit about > Category Theory along the way). I seems like a pretty tricky software > engineering problem and there must be all sorts of lessons people have > learned along the way. Given the openness of Sage, I figured this was a > great place to start. I'm reading through the Basic Structures section of > the Reference Manual and intend to browse through some of the code, but I > thought I would ask the lists as well. > > ++ Is there any documentation that describes how the Sage developers > decided to design their class hierarchy? > > ++ How similar is it to what is used in Magma? > > ++ Are there good resources that discuss the software design issues > (rather than just algorithms) related to CAS > > Ideally there would be something equivalent to the section in William > Stein's overview video in which he discusses the history and implementation > of the Calculus functionality. > > thanks! > > -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/groups/opt_out.
