Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA Path: utzoo!linus!philabs!cmcl2!seismo!brl-tgr!tgr!treid@MITRE-GATEWAY.ARPA From: treid@MITRE-GATEWAY.ARPA (MS W932) Newsgroups: net.micro.cpm Subject: Re: Program Design Languages Message-ID: <132@brl-tgr.ARPA> Date: Wed, 24-Jul-85 08:38:50 EDT Article-I.D.: brl-tgr.132 Posted: Wed Jul 24 08:38:50 1985 Date-Received: Fri, 26-Jul-85 00:27:35 EDT Sender: news@brl-tgr.ARPA Lines: 39 While the Ada movement has tried to make the concept of PDLs concrete, the traditional notion is a "pidgen or structured English" statement of the intent of a procedure; the procedures being produced in a top-down, step-wise refinement process. The "syntax" is usually derived from an ALGOL base (Pascal, Ada, etc.). The object of a procedure written in PDL is WHAT the procedure is to accomplish, not HOW. The key words such as IF, THEN, WHILE, DO, BEGIN, etc. are there with the expressions and statements replaced with ENGLISH language statements. An example: WHILE train has not arrived DO IF you have a quarter THEN play pac-man ELSE IF you have a $1 bill THEN use coin changer ELSE try begging The English language statements can become comments in your final program. The object in this design phase is the overall structure and logic of what you want to accomplish, leaving the how to the next lower refinement. The Ada community has settled on the obvious: why should your PDL be any different from the programming language ==> the PDL for an Ada program should very closely resemble Ada so that there is little translation from the design to the implementation. In fact, you should be able to make the English language statements comments and/or replace them with the HOW. My feeling is that the PDL should be rather informal and very reader oriented with the intent of explaining what a routine is to do in the easiest, most understandable way without having a lot of syntax thrust upon you. PDL is for the human <--> the programming language is for the computer (I agree, too simplistic). There are some pseudo-compilers/interpreters which will execute and attempt to analyze PDL (ie., a logical expression is displayed and the user is prompted for a Y/N, an arithmetic expression is prompted for a number, and an English statement displayed as an effect - you are attempting to symbolicly execute your design). However, PDL languages with the usual notion of compilers are not really applicable.