COLSA@SIMTEL20.ARPA (Larry Armijo) (07/23/85)
I have heard that there exist Program Design Languages (PDL's) which are used to develop preliminary versions of computer programs on larger computers. Does anyone know if PDL's are available for micros? I would think that these design languages would be very useful in the preliminary design of larger application programs. If you know of any PDL's for micros, either commercial or public domain, I would appreciate some guidance. Thanks in advance. Larry COLSA@SIMTEL20 -------
treid@MITRE-GATEWAY.ARPA (MS W932) (07/24/85)
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.