Okay.  Once, for fun, I asked myself, “How do people compute the value of π?”  Since, of course, no cheating was allowed, I could not use such functions as arcsin or arccos.  I knew trigonometry, though, so I set out to find an answer: here’s mine.  Warning: if you can’t use radians or don’t know what sine and cosine are, this isn’t for you.
	In this diagram:

the unit circle is in black, axes in gray.  The hypotenuse (length 1) is in red.  The cosine is blue, and the sine is green.  The brown lines only serve to show the triangle.  Through a fairly simple argument, it can be shown that the purple line is (has length equal to) the tangent.  This is fairly important.
	Do you notice that for a while, the purple line is very close to the circle itself?  If I had made the angle smaller (so that you could not discern the purple line clearly) the green sine line would have also appeared very close to the circle.  In fact, the smaller the angle θ that we are using gets, both sin θ and tan θ get very close to θ (cos θ approaches 1).  It’s a guarantee that sin is smaller than θ (briefly stated, because it’s inside the circle) and tan is larger than θ (it’s outside the circle).  (Remember that the radian is defined so that on the unit circle, θ = the arc length it cuts out.)
	Now, in order to estimate the circumference (which is given to be 2π) we can construct a regular polygon.  If we use π/24, for example, 24*sin(π/24) is the perimeter of a polygon just within the circle, and 24*tan(π/24) is the perimeter of a polygon just outside the unit circle.  We can guarantee that 2π is between the two values.  Now comes the last part, which contains most of the (small) program: how do we find sin(π/24) or tan(π/24)?
The half-angle formula for cosine is:
cos2 (a/2) = (1 + cos (a))/2
That’s precalculus stuff.  I don’t really feel like proving it right now, but essentially it at most depends upon the abstract definition of π, not its value.  Also remember that sin(π/6) = ½ and cos(π/6) = (√3)/2.  These are identities, so it is legal to start off from them; they do not depend on the value of π.  All that my program does is compute cos(π/12), then cos(π/24), and so on.  Using these, it finds sin and tan of some small angle, and uses those to approximate π.  Eventually the inherent error in the method becomes insignificant.  With a few iterations, a reasonable approximation for π can be obtained.  (Keep in mind though that the slight inaccuracy of double values on most computers will screw this up at huge numbers of iterations.  If you worked it out on paper, it would still work.)