El diseño de arriba hacia abajo es generalmente una separación del programa en "vocabularios" que entonces son usados como conjuntos de herramientas de alto nivel para escribir el programa final.