Мы также получили представление об еще одной важной идее о языках и дизайне программ. Это подход статифицированного дизайна, представление о том, что сложная система должна быть структурирована как последовательность уровней, которые описываются с использованием последовательности языков. Каждый уровень строится путем объединения частей, которые считаются примитивными на этом уровне, а части, построенные на каждом уровне, используются в качестве примитивов на следующем уровне. Язык, используемый на каждом уровне стратифицированного дизайна, имеет примитивы, средства комбинирования и средства абстракции, соответствующие этому уровню детализации.