Theory of Structured Parallel Programming