If the feedrate is constant, you just have to sample the circle into points and move from points to points. However, most of the time the feedrate is not constant. For instance, the tool velocity is equal to zero when the tool starts moving and when it stops. You have to compute the feedrate based on the max acceleration per axis. Then for each sample time, you are able to compute the federate and consequently the position of X and Y axes.
You should read the followings papers on my page :
Kinematical performance prediction in multi-axis machining for process planning optimization
5-axis tool path smoothing based on drive constraints
Feedrate interpolation with axis jerk constraints on 5-axis NURBS and G1 tool path
Theses papers take into account the derivative of the acceleration (the jerk) but in your case you can first deal with the acceleration contraints only.
Circular interpolation is done by converting the contour to straight line segments based on the resolution of the machine. For this purpose the procedure used is the DDA algorithms that you can see in any Computer Graphics books that deal with line and circle drawing. The only change that you have to do is the resolution instead of pixel you will use the resolution of the system for example 1 micron.
The basic formula R(radius) = Root of (X^2 + Y^2). The linear moment can be made into circular movement in a small increment of fine value say 0.001(micron) by varying X or Y, since radius is known constant.
Ex: If radius equal to 10 and initial increment of X = 0.001mm,
10 = Root of (0.001^2 + Y^2), we can find out Y. Making this formula in to the macro variable or conditional loop we can make any circular movement. Direction of movement can be chosen by changing initial increment value to Y. Assign sign for First quadrant X and Y positive, 2nd quadrant X negative, 3rd quadrant both negative and 4th quadrant Y negative.
I hope this is the principle behind the linear movement being used as G02 and G03.