Added abstract algebra and attribute grammar