по-большому счету, нет никаких специальных мета-конструкций.
есть лишь:
числа
логические величины
последовательности/множества/дерево/граф
операции над числами/логическими величинами/последовательностями и т.д.
исполнитель и операции над ним
мета же появляется только в виде того, что саму программу можно представить, например, в виде дерева. и применить к программе все те же самые операции, которые применяются к дереву.
типичным примером такого подхода являются макросы: когда программа рассматривается как текст (сишные макросы), или как дерево (nemerle)
слои же строятся на основе моделей/парадигм, например, поверх байтовой последовательности строятся сложные типы/структуры, поверх стеко-регистровой машинки строится ооп и т.д.