Tag language theory