Languages for specification, design, and prototyping