Topic programming languages