O objetivo do projeto Gremlins é motivar o uso de listas encadeadas em um contexto de aplicação real. A aplicação selecionada é um gerenciador de memória (GM). Implementar um GM não é uma tarefa trivial porém é importante em situações na qual é necessário ter total controle sobre a organização de memória e melhorar o desempenho de tempo associado à requisições de memória pela aplicação-alvo.
De maneira bem simplificada, um GM vai requisitar ao sistema operacional (SO) um grande bloco de memória e, a partir de então, vai se encarregar de entregar blocos menores de memória à aplicação, quando solicitado. Isso implica que as requisições de memória dinâmica pela aplicação não serão mais realizadas via new e delete (i.e. resolvidas pelo sistema operacional), mas sim através de novos métodos associados à classe GM. Em particular, este projeto estipula a implementação do sistema memory pool para gerenciamento de memória.
Caso tenha interesse, aqui estão outros projetos que desenvolvi ao longo de minha carreira.