Gema е програма за обработка на текст с обща цел, базирана на концепцията за съвпадение на образи.По принцип той чете входен файл и го копира в изходен файл, като същевременно извършва определени преобразувания на данните, както е посочено от набор от шаблони, определени от потребителя.Може да се използва за извършване на какви ли не неща, които се правят от Unix помощни програми като cpp, grep, sed, awk или струни.Може да се използва като макро процесор, но е много по-общ от cpp или m4, защото не налага някакъв конкретен синтаксис за това как изглежда макро обаждането.