A declarative language for the design of structures

Designing and building computer software provides a model for a class of design processes aimed at producing such artifacts as building structures, mechanical or electronic devices, which have structure as well as associated behaviour. Although visual design tools for some domains have been in use for some time, visual programming languages are a relatively recent phenomenon. Because visual programming languages provide general programming constructs, they have the expressive power that most specialised visual design languages lack, and should therefore provide a foundation for more powerful, general visual design languages. In a program, however, the structures being described are usually processes, whereas structured objects in general may be conceptually quite "non-process-like". Some programming paradigms are inherently less process-oriented, relying instead on high level specification of results. Logic programming has this property, and treats data and algorithms uniformly. On this basis the authors present a visual language for structured design, LSD, as an extension of a visual logic programming language.