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