Os estádios de processamento dos vários geradores precisam, por vezes, de informação sobre a própria hierarquia, i.e., exclusivamente sobre as relações entre classes sem ter em conta a estrutura de cada classe.
A ferramenta é designada hier toma como entrada o código C++ de uma ou mais classes. O processamento detectar classes no código e a lista de superclasses para cada uma delas. Prossegue o processamento ``invertendo'' a informação, i.e., para cada classe encontrada determina a lista de subclasses. O resultado final é um ficheiro com vários troços de hierarquia, cada um começando numa classe indicada pelo programador da aplicação.
Considere-se um exemplo em que se têm as seguintes relações, em que -> representa deriva-de:
A B -> A C -> A D -> C, BA primeira passagem da ferramenta iria produzir listas com linearizações do grafo de classes.
A B -> A C -> A D -> B D -> CA segunda passagem produziria as relações abaixo. O símbolo <- representa é-superclasse-de.
A <- B, C, D B <- C D <- C C
Seguindo a aproximação simplificativa para prototipagem rápida, também esta ferramenta é constituída por ``subferramentas'', nomeadamente uma sucessão de pequenos programas em AWK e PROLOG [Sterling & Shapiro, 1986].
Esta ferramenta gera também as macros de suporte ao controlo de invocação de objectos cujo tipo é modificado em tempo de execução, como é o caso de cartas e representantes criados por envelopes (como foi explicado no ponto 6.2.4), ou o caso dos envelopes criados por SIFs no módulo de distribuição. Este tipo de código pode ser gerado por hier por depender exclusivamente das relações entre classes e não das respectivas estruturas. O mesmo acontece com os DEs, que também são gerados por esta ferramenta.