1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
2
"http://www.w3.org/TR/REC-html40/loose.dtd">
6
***********************************************************************
7
FUNNELWEB MANUAL WEB PAGE
8
=========================
9
Copyright (c) Ross N. Williams 1992,1999. All rights reserved.
11
Permission is granted to redistribute and use this manual in
12
any medium, with or without modification, provided that all
13
notices (including, without limitation, the copyright
14
notice, this permission notice, any record of modification,
15
and all legal notices) are preserved on all copies, that all
16
modifications are clearly marked, and that modified versions
17
are not represented as the original version unless all the
18
modifications since the manual's original release by Ross N.
19
Williams (www.ross.net) consist of translations or other
20
transformations that alter only the manual's form, not its
21
content. THIS MANUAL IS PROVIDED "AS IS" AND WITHOUT ANY
22
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
23
LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND
24
FITNESS FOR A PARTICULAR PURPOSE. TO THE EXTENT PERMITTED BY
25
LAW THERE IS ABSOLUTELY NO WARRANTY.
27
***********************************************************************
31
<TITLE>4.1 The Danger of Modifying Languages</TITLE>
32
<STYLE TYPE="text/css"> <!-- A {text-decoration: none} // --> </STYLE>
34
<BODY BACKGROUND="binary/background.gif"
43
<TD WIDTH="130" VALIGN="top">
44
<IMG SRC="binary/d_clear.gif" ALT="" WIDTH="130" HEIGHT="1"><BR>
49
<A HREF="http://www.ross.net/"
51
onClick="window.open('','rosshome','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
53
<IMG SRC="binary/rossnet_logo.gif"
54
WIDTH="64" HEIGHT="32"
55
BORDER="0" ALT="RossNet"
56
HSPACE="0" VSPACE="1"></A><BR>
59
<A HREF="../index.shtml"
61
onClick="window.open('','funnelweb','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
63
<IMG SRC="binary/linklogo.gif"
64
WIDTH="64" HEIGHT="32"
65
BORDER="0" ALT="FunnelWeb"
66
HSPACE="0" VSPACE="1"></A><BR>
68
<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TR><TD BGCOLOR="#000000">
69
<A HREF="../reference/index.html"
70
TARGET="funnelwebreference"
71
onClick="window.open('','funnelwebreference','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
72
><FONT COLOR="#FFFFFF"><B>Reference</B></FONT></A><BR>
74
<A HREF="../tutorial/index.html"
75
TARGET="funnelwebtutorial"
76
onClick="window.open('','funnelwebtutorial','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
77
><FONT COLOR="#FFFFFF"><B>Tutorial</B></FONT></A><BR>
79
<A HREF="index.html"><FONT COLOR="#FFFFFF"><B>Developer</B></FONT></A><BR>
80
<A HREF="compile.html"><FONT COLOR="#FFFFFF">1 Compile</FONT></A><BR>
81
<A HREF="design.html"><FONT COLOR="#FFFFFF">2 Design</FONT></A><BR>
82
<A HREF="implement.html"><FONT COLOR="#FFFFFF">3 Implement</FONT></A><BR>
83
<A HREF="modify.html"><FONT COLOR="#FFFFFF">4 Modify</FONT></A><BR>
84
<A HREF="misc.html"><FONT COLOR="#FFFFFF">5 Misc</FONT></A><BR>
85
<A HREF="gpl.html"><FONT COLOR="#FFFFFF">6 Licence</FONT></A><BR>
88
<A HREF="search.html"><FONT COLOR="#FFFFFF"><B>SEARCH</B></FONT></A><BR>
94
<TD WIDTH="360" VALIGN="top">
98
<A HREF="index.html"><IMG SRC="binary/title.gif"
99
WIDTH="316" HEIGHT="24"
100
BORDER="0" ALT="FunnelWeb Developer Manual"
101
HSPACE="0" VSPACE="0"></A>
102
<P><FONT SIZE="5">4.1 The Danger of Modifying Languages</FONT><BR>
106
<P>FunnelWeb is a computer program that implements the
107
semantics of the FunnelWeb language. As such, you should
108
take great care when making changes to FunnelWeb that
109
modify the syntax or semantics of its language:
111
<P><BLOCKQUOTE><B>Removing
112
features:</B> Removal of features
113
(featurectomy) is extremely difficult once the legacy base
114
is using the features. If a feature is removed, users will
115
have to go through all their files and find
116
a way to simulate the effect of the removed feature with
117
other features. This is usually unthinkable.</BLOCKQUOTE>
119
<P><BLOCKQUOTE><B>Modifying
120
features:</B> Modification of
121
features has less direct impact than the removal of
122
features, but can cause more subtle errors. Anyone modifying
123
features should be sure that they
124
are not inadvertently laying semantic traps.</BLOCKQUOTE>
126
<P><BLOCKQUOTE><B>Adding
127
features:</B> Although the addition
128
of features is generally the most painless for the user
129
community, as Hoare points out, it is also the most
130
dangerous in the long run.</BLOCKQUOTE>
133
<BLOCKQUOTE> "When any new language
134
design project is nearing completion, there is always a mad
135
rush to get new features added before standardization. The
136
rush is mad indeed, because it leads into a trap from which
137
there is no escape. A feature which is omitted can always be
138
added later, when its design and its implications are well
139
understood. A feature which is included before it is fully
140
understood can never be removed later."<STRONG>[Hoare80]</STRONG>
143
<P>The benefits of tight control over a language are
146
<P><BLOCKQUOTE><B>Universal portability:</B> Source files can be
147
treated as portable.</BLOCKQUOTE>
149
<P><BLOCKQUOTE><B>Clear semantics:</B> Doubt about the semantics
150
of the language are minimized.</BLOCKQUOTE>
152
<P>For these reasons, I have decided to keep tight control
153
over the FunnelWeb syntax and semantics. If you develop
154
a variant of FunnelWeb, please take these issues into account.
160
<TD ALIGN="left" VALIGN="bottom"><A HREF="modify.html"><IMG SRC="binary/fw_up.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Up"></A></TD>
161
<TD ALIGN="center" VALIGN="bottom"><A HREF="modify.html"><IMG SRC="binary/fw_up.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Up"></A></TD>
162
<TD ALIGN="right" VALIGN="bottom"><A HREF="modify_authority.html"><IMG SRC="binary/fw_right.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Next"></A></TD>
171
<A HREF="mailto:webmaster@ross.net">Webmaster</A>
172
<A HREF="copyright.html">Copyright © Ross N. Williams 1992,1999. All rights reserved.</A><BR>
183
<!-- *********************************************************************** -->
184
<!-- End Of A FunnelWeb Manual Web Page (www.ross.net/funnelweb/) -->
185
<!-- *********************************************************************** -->