Аннотация:
Эта работа описывает политиповое многостадийное программирование – новый подход к реализации глубокого вложения (deep embedding) предметно-ориентированного языка (DSL), который реализован посредством методов политипового (обобщенного) программирования. В качестве основы используется Lightweight Modular Staging (LMS) фреймворк, который расширяется и делается политиповым. В работе показано, как применить политиповое многостадийное программирование на примере конкретной предметной области – вложенный параллелизм по данным, при этом параллельные программы записываются на DSL, вложенном в язык Scala. Работа построена на примере конкретного DSL, однако, описанный подход может быть применен к любому политиповому DSL.
Ключевые слова:политиповое программирование, многостадийное программирование, предметно-ориентированный язык, параллельное программирование.