How to draw a circle on a plane with OSL (Open Shading Language)?
These scripts will create two nodes. The first one is for the grid and the second one for the circle. By changing the size of the grid, you will have more or less circles. By changing the radius, you will have bigger or smaller circles. 



shader Tiles2D(
    point Vector = P,
    float Size = 1,
    float Offset = 0,
    output vector Tiles = vector(0,0,0)
)
{
   Tiles = Vector * Size;
   Tiles[2] = 0;
   Tiles[0] += step(1,mod(Tiles[1],2)) * Offset;
   Tiles -= floor(Tiles);

}


shader Circle(
            point Vector = P,
            float Radius = 0.5,
            output float Fac = 0)
{
    vector st = Vector;
    vector dist = st - vector(0.5,0.5,0);
    Fac = smoothstep(Radius*0.99, Radius * 1.01,dot(dist,dist)*4);
}