A model for structured parallel processing in block-structured programming languages