DPANSA5.HTM (3708B)
1 <HTML><HEAD> 2 <TITLE>DPANS94</TITLE> 3 <link disabled rel="stylesheet" href="mpexc6.css"> 4 <style>@import url(mpexc6.css);</style> 5 </head> 6 7 <BODY> 8 <table width=100%> 9 <tr> 10 <td align=left> 11 <a href=dpansa4.htm><img src=left.gif 12 width=26 height=26 align=ALIGN border=0></a> 13 <a href=dpansa6.htm><img src=right.gif 14 width=26 height=26 align=ALIGN border=0></a> 15 </td> 16 <td align=right> 17 <a href=dpans.htm#toc><img src=up.gif 18 width=26 height=26 align=ALIGN border=0></a> 19 <a name=A.5>Table of Contents</a> 20 </td> 21 </tr> 22 </table> 23 <p> 24 <hr size=4> 25 26 27 <H1>A.5 Compliance and labeling</H1> 28 29 30 <hr> 31 <a name=A.5.1> 32 <H2>A.5.1 ANS Forth systems</H2> 33 </a> 34 35 <a href=dpans5.htm#5.1>Section 5.1</a> defines the criteria that 36 a system must meet in order to 37 justify the label <B>ANS Forth System</B>. Briefly, the minimum 38 requirement is that the system must <B>implement</B> the Core word set. 39 There are several ways in which this requirement may be met. The most 40 obvious is that all Core words may be in a pre-compiled kernel. This is 41 not the only way of satisfying the requirement, however. For example, 42 some words may be provided in source blocks or files with instructions 43 explaining how to add them to the system if they are needed. So long as 44 the words are provided in such a way that the user can obtain access to 45 them with a clear and straightforward procedure, they may be considered 46 to be present. 47 48 <P> 49 50 A Forth cross-compiler has many characteristics in common with an ANS 51 Forth System, in that both use similar compiling tools to process a 52 program. However, in order to fully specify an ANS Forth cross compiler 53 it would be necessary to address complex issues dealing with compilation 54 and execution semantics in both host and target environments as well as 55 ROMability issues. The level of effort to do this properly has proved 56 to be impractical at this time. As a result, although it may be 57 possible for a Forth cross-compiler to correctly prepare an ANS Forth 58 program for execution in a target environment, it is inappropriate for a 59 cross-compiler to be labeled an ANS Forth System. 60 61 <P> 62 63 <hr> 64 <a name=A.5.2> 65 <H2>A.5.2 ANS Forth programs</H2> 66 </a> 67 68 69 <hr> 70 <a name=A.5.2.2> 71 <H3>A.5.2.2 Program labeling</H3> 72 </a> 73 74 Declaring an environmental dependency should not be considered 75 undesirable, merely an acknowledgment that the author has taken 76 advantage of some assumed architecture. For example, most computers in 77 common use are based on two's complement binary arithmetic. By 78 acknowledging an environmental dependency on this architecture, a 79 programmer becomes entitled to use the number -1 to represent all bits 80 set without significantly restricting the portability of the program. 81 82 <P> 83 84 Because all programs require space for data and instructions, and time 85 to execute those instructions, they depend on the presence of an 86 environment providing those resources. It is impossible to predict how 87 little of some of these resources (e.g. stack space) might be necessary 88 to perform some task, so this Standard does not do so. 89 90 <P> 91 92 On the other hand, as a program requires increasing levels of resources, 93 there will probably be sucessively fewer systems on which it will 94 execute sucessfully. An algorithm requiring an array of 109 cells might 95 run on fewer computers than one requiring only 103. 96 97 <P> 98 99 Since there is also no way of knowing what minimum level of resources 100 will be implemented in a system useful for at least some tasks, any 101 program performing real work labeled simply an <B>ANS Forth Program</B> 102 is unlikely to be labeled correctly. 103 104 <P> 105 106 <hr> 107 <A href=dpans.htm#toc><IMG src="up.gif" ></A> Table of Contents 108 <BR> 109 <A href=dpansa6.htm><IMG src="right.gif" ></A> 110 Next Section 111 <P> 112 </BODY> 113 </HTML>