ViewVC logotype

Contents of /pubs/books/ucbka/trunk/volshare/workprfa.tex

Parent Directory Parent Directory | Revision Log Revision Log

Revision 274 - (show annotations) (download) (as text)
Sun Aug 11 21:43:05 2019 UTC (4 years, 11 months ago) by dashley
File MIME type: application/x-tex
File size: 33592 byte(s)
Change keyword substitution (migration from cvs to svn).
1 %$Header$
2 %
3 %------------------------------------------------------------------------------------------------------------------
4 %This file isn't used directly--instead, the Tcl script CP_SCRIPT.TCL inserts it into the the main .TEX volume.
5 %In this process, the <mv> and <sv> tags on some lines are processed. <mv> lines go only to the multi-volume
6 %work, and <sv> lines to only to the single-volume work.
7 %
8 %For the multi-volume work, the symbolic patchup is near perfect. But for the single-volume work, the parts
9 %are numbered manually, which is a process open to human error. This preface must be checked when chapters
10 %are moved, added, or deleted.
11 %------------------------------------------------------------------------------------------------------------------
12 \chapter{Preface}
14 In 1998, I began work on the
15 interrupt latency compatibility problem. As I searched
16 for prior work, I was
17 surprised to discover the paucity
18 of research available on practical embedded software
19 problems. Textbooks were also not very helpful,
20 as I found that almost none
21 of the hard
22 problems that occur in practice
23 were addressed.
25 In 1999, I decided to compose my own book,
26 maintained on the Web,
27 to collect useful
28 research results, solutions to practical problems,
29 unsolved problems, and directions for future
30 research and refinement.
31 \LaTeX{} was chosen as the text-processing
32 tool, as it was
33 recognized immediately
34 that size could become an issue and that the book
35 would have a substantial mathematical content.
36 The freedom from any practical length
37 limitation
38 means that I am
39 free to include as many topics
40 in as much detail as I'd like.\footnote{My readers will
41 be consuming \emph{their} toner cartridges, not mine.}
43 In 2001, this book was moved to
44 \index{SourceForge}\emph{SourceForge}\footnote{\emph{SourceForge}
45 (\texttt{http://www.sourceforge.net}), to whom I am very grateful,
46 is an organization that hosts open-source projects.} and
47 combined with a tool
48 set for microcontroller software work
49 (\emph{The Iju Tool Set}).
51 In 2002, the collective set of materials (the tool set and this book)
52 was renamed \emph{The ESRG Tool Set}\footnote{\emph{ESRG}
53 is an acronym for \emph{E}mbedded \emph{S}ystems \emph{R}esearch \emph{G}roup.},
54 and placed under a different
55 project at \emph{SourceForge}.
57 \emph{The ESRG Tool Set}, which is fully open-source and
58 available for free from \emph{SourceForge} at the URL
59 \texttt{http://esrg.sourceforge.net}, contains
60 these materials:
62 \begin{itemize}
63 \item A \texttt{.PDF} copy of the most recent released
64 version of this book.
66 \item The packaged \LaTeX{} source code and graphics
67 for the most recent released
68 version of this book.
70 \item The most recent (unreleased) source code for this book
71 (available from the CVS version control archives).
73 \item The most recent released version of
74 \emph{The ESRG Tool Set}, packaged as an installation
75 for Windows 95/98/ME/NT/2000/XP. This installation also
76 contains web pages with helpful URLs, and supplemental
77 materials (such as spreadsheets to demonstrate techniques,
78 other documents and standards maintained as part of this
79 effort,
80 Java applets, etc.).
82 \item The packaged source code for the most recent released
83 version of \emph{The ESRG Tool Set}.
85 \item The most recent (unreleased) source code of
86 \emph{The ESRG Tool Set} (available from the CVS
87 version control arvhives).
89 \item The most recent (unreleased) versions of the non-tool
90 materials maintained with \emph{The ESRG Tool Set}, including
91 spreadsheets to demonstrate techniques, other
92 documents and standards maintained as part of this
93 effort, Java applets, etc. (available from the CVS version control
94 archives).
95 \end{itemize}
98 I have produced this set of works with the following four goals.
99 \marginpar{\textbf{Goals of This Work}}
100 \begin{itemize}
101 \item \textbf{To share results and coordinate work
102 with researchers.} I have
103 found that there is a disconnect between practitioners
104 (those who have exposure to difficult problems) and
105 researchers (those who often have the ability to solve these
106 difficult problems). A large work is required to
107 explain the design challenges present in practical embedded software
108 work, and to place the most difficult unsolved problems in the hands
109 of researchers.
110 \item \textbf{To share results and coordinate work with practitioners.}
111 Many of the problems and solutions presented in this work apply
112 to almost all applications of embedded software, and in many cases
113 are inherent to \emph{all} software. These problems and solutions
114 will be useful to software practitioners. I also expect
115 that practitioners have strong solutions to contribute to this
116 work.\footnote{With less jubilation, I also expect that
117 practitioners have new hard problems to contribute.
118 With any luck, I will obtain more new solutions than new problems.}
119 \item \textbf{To enrich the educational experience for students.}
120 All of the material contained in this set of works is free\footnote{Subject
121 to license restrictions. The license under which this book may be used
122 is included later in this preface. Software tools are licensed under the GPL.} (which,
123 from a student's point of view, is the best price).
124 For example, this book can be used by instructors as
125 free supplemental
126 material for a course.
127 \item \textbf{To guide tool vendors.} The design of tools
128 is very much like the design of software, in that one must have
129 a nearly complete understanding of the requirements
130 in order to produce a useful product. I have often found that
131 tool vendors are unaware of the actual needs of embedded
132 software developers. By clearly enumerating requirements and
133 lessons learned, I strive to give tool vendors the information
134 and insight
135 necessary to better support embedded software developers.
136 \end{itemize}
138 In \marginpar{\textbf{\emph{Small} Defined}}
139 the title of this book, I've indicated that this book is
140 about \index{small microcontroller system}\emph{small} microcontroller work. By
141 \emph{small microcontroller work}, I mean the development
142 and production of small
143 embedded
144 software/hardware
145 systems such as are found
146 in consumer electronics and the automobile industry. Although
147 it is difficult to specify precisely what is and is not a
148 \emph{small} microcontroller system, the systems
149 I have in mind generally meet
150 the following criteria.
152 \begin{itemize}
153 \item They
154 involve a single-chip control solution (the address and data busses of
155 the microcontroller are not extended outside the package).
156 \item They
157 involve ROM and RAM sizes of under 1M.\footnote{But usually much less--256K or less of ROM and 24K
158 or less of RAM would be typical for my definition of \emph{small}.}
159 \item They frequently involve non-preemptive scheduling. In the systems I would
160 classify as \emph{small}, pre-emptive scheduling and/or commercial
161 RTOSs are relatively uncommon.
162 \item They involve a software
163 program that cannot easily be changed (either because the program
164 is lithographically masked into the microcontroller or because special
165 equipment or special access to the microcontroller is required).\footnote{A consequence of the
166 software unchangeability
167 combined with high production volumes is
168 that software mistakes are very, very expensive.}
169 \item They exist in an unstable electrical environment,
170 characterized by supply voltage fluctuations,
171 electrical transients, and spurious resets.
172 \end{itemize}
174 I use the term \index{hard problem}\emph{hard problem} throughout this book.
175 I define a
176 \marginpar{\textbf{\emph{Hard Problem} Defined}}
177 \emph{hard} problem as a problem that
178 meets the following two criteria.
179 \begin{itemize}
180 \item \textbf{The problem is \emph{hard}.}
181 The time to solve the problem is measured in
182 months or years, rather than hours or days; and furthermore,
183 the problem may be beyond the analytical ability of
184 most practicing embedded software engineers. In practice, this means that
185 an embedded software engineer cannot solve the problem in the time
186 available during a product development cycle.
187 \item \textbf{A solution to the problem is necessary for
188 reliable software or for ease of software construction.}
189 Generally, I would wish to exclude from consideration
190 problems which are difficult but which have no practical implications
191 for software reliability or ease of software construction
192 if they are not solved.
193 \end{itemize}
195 Clearly, if an embedded software engineer is to be productive and
196 produce a reliable embedded product, the number of unsolved
197 \emph{hard} problems s/he encounters during a career must
198 be fairly small. However, the reality is that a practicing
199 embedded software engineer encounters unsolved hard problems
200 on a daily basis.
202 In this work I take a special but not exclusive interest in
203 \emph{hard} problems---those that are relevant and necessary
204 but
205 so difficult and time-consuming that a software engineer cannot
206 solve them in the time available during the product development
207 cycle. I also have some interest in paradigms (ways of
208 thinking about software systems and problems), and in
209 best and worst practices (practices that are likely to to
210 avert problems and practices that are nearly suicidal,
211 respectively). It is noteworthy that I do not
212 have much interest in established
213 mathematical results that are available in
214 textbooks my readers probably already own.
215 For example, I have very limited interest in
216 reprinting the mathematical results surrounding
217 sampled control systems, but
218 I might be very interested in results predicting what
219 could and could not happen if such a
220 sampled control system is implemented on
221 a microcontroller using economical but lossy
222 multiplication and integration (to the best of my
223 knowledge, this insight does not exist anywhere).
225 <mv>\textbf{Volume \vconzeroroman{}: \vconzerotitle{}}
226 <sv>\textbf{Part I: Concepts}
227 \marginpar{\textbf{Book Contents}}
228 contains an introduction to the challenges of small microcontroller work.
229 \begin{itemize}
230 \item \textbf{Chapter\;\ref{cint0}, \cintzerotitle{}} explains the scope of the book
231 and what is meant by \emph{small microcontroller work}.
232 \item \textbf{Chapter\;\ref{chgr0}, \chgrzerotitle{}} provides my personal
233 interpretation of the
234 Holy Grail of embedded real-time software---that is, what is
235 desirable and undesirable and what fundamental goals
236 exist. In this chapter, I deal primarily in paradigms of
237 thought and
238 unattainable goals.
239 \end{itemize}
241 <mv>\textbf{Volume \vmfrzeroroman{}: \vmfrzerotitle{}}
242 <sv>\textbf{Part II: Mathematical Frameworks}
243 contains key mathematical frameworks and
244 results that are divorced from any specific problem.
245 \begin{itemize}
246 \item \textbf{Chapter\;\ref{cpri0}, \cprizerotitle{}} presents results surrounding
247 properties of integers and prime and composite numbers.
248 \item \textbf{Chapter\;\ref{cfry0}, \cfryzerotitle{}} presents results surrounding
249 the \index{Farey series}Farey series. The Farey series, which is the
250 ordered set of rational numbers with a certain maximum denominator,
251 forms the basis for some techniques of rational approximation.
252 \item \textbf{Chapter\;\ref{ccfr0}, \ccfrzerotitle{}} presents results surrounding
253 \index{continued fractions}continued fractions. The apparatus of continued
254 fractions provides the best algorithm for finding Farey neighbors and hence
255 best rational approximations.
256 \item \textbf{Chapter\;\ref{cbal0}, \cbalzerotitle{}} presents results surrounding
257 Boolean algebra. Traditionally, Boolean algebra and the study of Boolean
258 functions is associated with digital hardware design, but results and
259 algorithms involving the simplification of Boolean functions also have
260 application to the simplification of software control flow constructs.
261 \item \textbf{Chapter\;\ref{cqua0}, \cquazerotitle{}} presents results surrounding
262 the analysis of calculation error introduced by \emph{quantization}, the
263 unavoidable mapping from $\vworkrealset{}$ to $\vworkintset{}$ that must occur
264 as signals from the external world, which are usually continuous in nature,
265 are converted and processed by a microcontroller, which can inherently manipulate
266 only integers.
267 \item \textbf{Chapter\;\ref{cmtn0}, \cmtnzerotitle{}} presents miscellaneous results
268 from number theory which are useful or interesting, but awkward to
269 categorize.
270 \end{itemize}
273 <mv>\textbf{Volume \vcswzeroroman{}: \vcswzerotitle{}}
274 <sv>\textbf{Part III: Construction Of Embedded Software}
275 details the way embedded systems are (or should be)
276 constructed in practice.
277 \begin{itemize}
278 \item \textbf{Chapter\;\ref{cpco0}, \cpcozerotitle{}} outlines many aspects of
279 the way that embedded software is constructed (or should be constructed)
280 in practice.
282 \item \textbf{Chapter\;\ref{csoc0}, \csoczerotitle{}} treats issues specific to
283 the support of peripherals that are usually located on the same silicon
284 die as the microcontroller, such as hardware watchdogs or EEPROM.
286 \item \textbf{Chapter\;\ref{csoc1}, \csoconetitle{}} treats issues specific to
287 the support of peripherals that are usually separate from the microcontroller,
288 such as transducers and actuators.
290 \item \textbf{Chapter\;\ref{csnc0}, \csnczerotitle{}} discusses the support
291 of communication protocols and networks.
293 \item \textbf{Chapter\;\ref{csfo0}, \csfozerotitle{}} discusses requirements
294 that tend to occur in many different types of embedded software,
295 such as the need to calibrate an embedded product or diagnose it
296 via a communication link.
298 \item \textbf{Chapter\;\ref{crta0}, \crtazerotitle{}} discusses the real-time
299 analysis of embedded software; that is, how embedded software can be
300 analyzed to be sure that it will always meet its real-time constraints.
301 \end{itemize}
304 <mv>\textbf{Volume \valgzeroroman{}: \valgzerotitle{}}
305 <sv>\textbf{Part IV: Embedded System Algorithms And Techniques}
306 presents algorithms which are used in a target embedded system.
308 \begin{itemize}
309 \item \textbf{Chapter\;\ref{ccil0}, \ccilzerotitle{}} presents
310 classical and simple\footnote{Here \emph{classical} is used
311 in the same sense as Knuth uses it in \cite[p. 265]{bibref:b:knuthclassic2ndedvol2}.}
312 integer algorithms and techniques which
313 are used in embedded systems. Because integer and fixed point algorithms
314 are the dominant paradigm of arithmetic in small microcontroller
315 systems, this chapter is the backbone of most arithmetic in these systems.
317 \item \textbf{Chapter\;\ref{crat0}, \cratzerotitle{}} develops techniques
318 and results surrounding rational approximation; that is, arpproximating a real number
319 $r_I$ by a rational number $h/k$.
321 \item \textbf{Chapter\;\ref{cdta0}, \cdtazerotitle{}} presents algorithms
322 for use in discrete time (such as integration and differentiation),
323 and also more sophisticated integer algorithms.
325 \item \textbf{Chapter\;\ref{cnnu0}, \cnnuzerotitle{}} presents miscellaneous
326 non-numerical algorithms for use in target embedded systems.
327 \end{itemize}
330 <mv>\textbf{Volume \vpaczeroroman{}: \vpaczerotitle{}}
331 <sv>\textbf{Part V: Practical, Administrative, Incidental, And Miscellaneous Topics}
332 discusses topics that are non-technical, only peripherally related to embedded system
333 software development,
334 or difficult to categorize elsewhere.
336 \begin{itemize}
337 \item \textbf{Chapter\;\ref{cmpd0}, \cmpdzerotitle{}} discusses practical technqiues for
338 the management of materials produced during the product development process.
340 \item \textbf{Chapter\;\ref{cpit0}, \cpitzerotitle{}} provides designs and some
341 analysis of circuits that are useful in microcontroller software
342 development---either in microcontroller products themselves or in
343 test fixtures.
345 \item \textbf{Chapter\;\ref{cbma0}, \cbmazerotitle{}} discusses
346 bad management and unpleasant work situations, provides paradigms
347 and strategies for dealing with unpleasant work situations, and provides
348 guidance in finding employment.
350 \item \textbf{Chapter\;\ref{cpxf0}, \cpxfzerotitle{}} describes software and
351 hardware products which are exceptionally useful in embedded product development.
353 \item \textbf{Chapter\;\ref{corq0}, \corqzerotitle{}} describes open research
354 questions, i.e. problems I am aware of but do not know how to solve.
356 \item \textbf{Chapter\;\ref{cisk0}, \ciskzerotitle{}} contains reverse analyses of
357 embedded product defects, and the lessons to be learned from these
358 defects.\footnote{The word \emph{Insektengericht} (``insect court'', in German)
359 comes from a page in a \emph{Beavis and Butthead} comic book purchsed in
360 the M\"unchen Hauptbahnhoff around 1996. In this comic book, Beavis and
361 Butthead sit in judgement of insects (bugs), always with the verdict
362 \emph{schuldig} (guilty), and always with harsh sentences such as
363 \emph{Tod durch explodieren} (death by explosion). I do much the same
364 thing with embedded software bugs and embedded product defects.}
365 Because it isn't possible in the product development process to address
366 \emph{every} possible source of defect, I feel it is important to
367 have a visceral feel for what is most likely to go wrong; and such
368 intuition can only come from actively collecting product defects. I very much
369 hope that airline pilots study transcripts and reports from airplane crashes, and I
370 encourage embedded software developers to do the same.
371 \end{itemize}
374 <mv>\textbf{Volume \vijtzeroroman{}: \vijtzerotitle{}}
375 <sv>\textbf{Part VI: ESRG Tool Set Reference Guide}
376 is a reference for the research tool set for microcontroller
377 work (based on Tcl/Tk from Scriptics/Ajuba/Interwoven), which is packaged
378 with this book.
380 \begin{itemize}
381 \item \textbf{Chapter\;\ref{ctin0}, \ctinzerotitle{}} contains an overview
382 of the tool set and its design goals and construction.
384 \item \textbf{Chapter\;\ref{ctcm0}, \ctcmzerotitle{}} provides a reference
385 for the Tcl scripting language, around which the tool set is constructed.
387 \item \textbf{Chapter\;\ref{ctkm0}, \ctkmzerotitle{}} provides a reference
388 for the Tk graphical extensions to Tcl. These graphical extensions,
389 which are built into the tool set, are very useful for providing
390 attractive GUI interfaces.
392 \item \textbf{Chapter\;\ref{cfaq0}, \cfaqzerotitle{}} addresses frequently
393 asked questions and ``gotchas'' in Tcl and Tk.
395 \item \textbf{Chapter\;\ref{cxtn0}, \cxtnzerotitle{}} documents the Tcl
396 extensions which have been added to the script interpreters
397 (\emph{EsrgScripter} and \emph{EsrgConsole}). These extensions form the
398 ``meat'' of \emph{The ESRG Tool Set}, and represent the new ideas or
399 new effort we are trying to convey. These new ideas and
400 new effort are embedded into Tcl interpreters to grant
401 greater flexibility in their application.
403 \item \textbf{Chapter\;\ref{cdcm0}, \cdcmzerotitle{}} documents the DOS command-line
404 utilities packaged with the tool set. In many cases, these utilities
405 perform functions identical or similar to Tcl extensions, but there are advantages to
406 packaging functionality as a DOS command-line utility.
407 \end{itemize}
410 <mv>\textbf{Volume \vsmazeroroman{}: \vsmazerotitle{}}
411 <sv>\textbf{Part VIII: Solutions To Selected Exercises}
412 contains solutions for selected exercises
413 found throughout the work.
415 Although \marginpar{\textbf{Features For Readers}} I
416 know that all of my readers will be involved in some way
417 with technical things---such as mathematics, computer science,
418 control theory, software quality, or the design and development
419 of embedded products---I realize that my readers will
420 vary in what they are trying to obtain from the work. Some readers
421 will be very research oriented, and may be trying to solve or pose
422 a particular hard problem.
423 Other readers may be looking for a specific practical
424 solution.
426 For the more practical reader, I have tried to be complete--that
427 is, I have tried not to omit information that might be
428 necessary in understanding my work without additional
429 research effort. In addition, a rich set of helpful materials is
430 packaged with \emph{The ESRG Tool Set} installation.
432 For the more research-oriented reader, I have tried to allow the
433 reader to rapidly find books, technical papers, Web sites,
434 technical experts,
435 and researchers. For this reason, books, papers,
436 Web sites, and individuals
437 are all cited and referenced using the same
438 framework in the bibliography. This means the
439 reader is directed not only to technical documents,
440 but also to the authors of the
441 documents.
443 Since \marginpar{\textbf{Version Identification}}
444 this book will be maintained on the Web, the issue arises of how
445 a reader would know one version of this book from another.
446 I have provided two mechanisms for this.\footnote{\TeX{}
447 tradition would demand that I pick a transcendental number
448 and with each successive version reveal another decimal place,
449 but that is too much work for me, given that
450 version control systems will handle the task automatically.}
452 \begin{itemize}
454 \item The title page indicates when the work was compiled from
455 \LaTeX{} source code. Two copies of the work with the
456 same compile date are almost certainly identical.
458 \item The entire work is maintained under a version control
459 system (CVS at \emph{SourceForge}),
460 \index{CVS}\index{SourceForge} and I've included
461 keyword expansions near the end of the \LaTeX{} source files so that version
462 control information is included automatically in the document text (for example,
463 a block of version control information is at the end of each chapter).
464 Sections or chapters with the same version control information are almost certainly
465 identical.
467 \end{itemize}
469 This \marginpar{\textbf{Book License}}\index{license} book is licensed under the
470 \emph{Academic Free License v. 2.0}, reproduced below for convenience.\footnote{Please
471 note that \emph{The ESRG Tool Set} and certain other materials are licensed under the GPL. At this time
472 only this book is licensed under the \emph{Academic Free License}.}
474 \begin{it}
475 This Academic Free License (the ``License'') applies to any original work of authorship
476 (the ``Original Work'') whose owner (the ``Licensor'') has placed the following
477 notice immediately following the copyright notice for the Original Work:\\
478 \\
479 Licensed under the Academic Free License version 2.0
481 \begin{enumerate}
482 \item \textbf{Grant of Copyright License.} Licensor hereby grants You a world-wide, royalty-free,
483 non-exclusive, perpetual, sublicenseable license to do the following:
485 \begin{enumerate}
486 \item to reproduce the Original Work in copies;
487 \item to prepare derivative works ("Derivative Works") based upon the Original Work;
488 \item to distribute copies of the Original Work and Derivative Works to the public;
489 \item to perform the Original Work publicly; and
490 \item to display the Original Work publicly.
491 \end{enumerate}
493 \item \textbf{Grant of Patent License.} Licensor hereby grants You a world-wide, royalty-free, non-exclusive,
494 perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied
495 in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the
496 Original Work and Derivative Works.
498 \item \textbf{Grant of Source Code License.} The term ``Source Code'' means the preferred form of the
499 Original Work for making modifications to it and all available documentation describing how to modify the
500 Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the
501 Original Work along with each copy of the Original Work that Licensor distributes.
502 Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of
503 the Source Code in an information repository reasonably calculated to permit inexpensive and convenient
504 access by You for as long as Licensor continues to distribute the Original Work, and by publishing the
505 address of that information repository in a notice immediately following the copyright
506 notice that applies to the Original Work.
508 \item \textbf{Exclusions From License Grant.} Neither the names of Licensor, nor the names of any
509 contributors to the Original Work, nor any of their trademarks or service marks, may
510 be used to endorse or promote products derived from this Original Work without express prior
511 written permission of the Licensor. Nothing in this License shall be deemed to grant any
512 rights to trademarks, copyrights, patents, trade secrets or any other intellectual property
513 of Licensor except as expressly stated herein. No patent license is granted to make, use,
514 sell or offer to sell embodiments of any patent claims other than the licensed claims
515 defined in Section 2. No right is granted to the trademarks of Licensor even if such marks
516 are included in the Original Work. Nothing in this License shall be interpreted to prohibit
517 Licensor from licensing under different terms from this License any Original Work that
518 Licensor otherwise would have a right to license.
520 \item This section intentionally omitted.
522 \item \textbf{Attribution Rights.} You must retain, in the Source Code of any Derivative Works that
523 You create, all copyright, patent or trademark notices from the Source Code of the Original Work,
524 as well as any notices of licensing and any descriptive text identified therein as an
525 ``Attribution Notice.'' You must cause the Source Code for any Derivative Works that
526 You create to carry a prominent Attribution Notice reasonably calculated to inform
527 recipients that You have modified the Original Work.
529 \item \textbf{Warranty of Provenance and Disclaimer of Warranty.} Licensor warrants that the copyright in
530 and to the Original Work and the patent rights granted herein by Licensor are owned by the
531 Licensor or are sublicensed to You under the terms of this License with the permission of
532 the contributor(s) of those copyrights and patent rights. Except as expressly stated in the
533 immediately proceeding sentence, the Original Work is provided under this License on an
534 ``AS IS'' BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation,
537 constitutes an essential part of this License. No license to Original Work is granted
538 hereunder except under this disclaimer.
540 \item \textbf{Limitation of Liability.} Under no circumstances and under no legal theory, whether in
541 tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for
542 any direct, indirect, special, incidental, or consequential damages of any character arising
543 as a result of this License or the use of the Original Work including, without limitation,
544 damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all
545 other commercial damages or losses. This limitation of liability shall not apply to liability
546 for death or personal injury resulting from Licensor's negligence to the extent applicable law
547 prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of
548 incidental or consequential damages, so this exclusion and limitation may not apply to You.
550 \item \textbf{Acceptance and Termination.} If You distribute copies of the Original Work or a
551 Derivative Work, You must make a reasonable effort under the circumstances to
552 obtain the express assent of recipients to the terms of this License. Nothing
553 else but this License (or another written agreement between Licensor and You)
554 grants You permission to create Derivative Works based upon the Original Work
555 or to exercise any of the rights granted in Section 1 herein, and any attempt
556 to do so except under the terms of this License (or another written agreement
557 between Licensor and You) is expressly prohibited by U.S. copyright law, the
558 equivalent laws of other countries, and by international treaty. Therefore,
559 by exercising any of the rights granted to You in Section 1 herein, You indicate
560 Your acceptance of this License and all of its terms and conditions.
562 \item \textbf{Termination for Patent Action.} This License shall terminate automatically
563 and You may no longer exercise any of the rights granted to You by this License
564 as of the date You commence an action, including a cross-claim or counterclaim,
565 for patent infringement (i) against Licensor with respect to a patent applicable
566 to software or (ii) against any entity with respect to a patent applicable to
567 the Original Work (but excluding combinations of the Original Work with other
568 software or hardware).
570 \item \textbf{Jurisdiction, Venue and Governing Law.} Any action or suit relating to this
571 License may be brought only in the courts of a jurisdiction wherein the Licensor
572 resides or in which Licensor conducts its primary business, and under the laws
573 of that jurisdiction excluding its conflict-of-law provisions. The application
574 of the United Nations Convention on Contracts for the International Sale of Goods
575 is expressly excluded. Any use of the Original Work outside the scope of this
576 License or after its termination shall be subject to the requirements and
577 penalties of the U.S. Copyright Act, 17 U.S.C. 101 et seq., the equivalent
578 laws of other countries, and international treaty. This section shall
579 survive the termination of this License.
581 \item \textbf{Attorneys Fees.} In any action to enforce the terms of this License or
582 seeking damages relating thereto, the prevailing party shall be entitled
583 to recover its costs and expenses, including, without limitation, reasonable
584 attorneys' fees and costs incurred in connection with such action, including
585 any appeal of such action. This section shall survive the termination of
586 this License.
588 \item \textbf{Miscellaneous.} This License represents the complete agreement
589 concerning the subject matter hereof. If any provision of this License
590 is held to be unenforceable, such provision shall be reformed only to
591 the extent necessary to make it enforceable.
593 \item \textbf{Definition of ``You'' in This License.} ``You'' throughout this License,
594 whether in upper or lower case, means an individual or a legal entity
595 exercising rights under, and complying with all of the terms of, this
596 License. For legal entities, ``You'' includes any entity that controls,
597 is controlled by, or is under common control with you. For purposes of
598 this definition, ``control'' means (i) the power, direct or indirect,
599 to cause the direction or management of such entity, whether by
600 contract or otherwise, or (ii) ownership of fifty percent (50%)
601 or more of the outstanding shares, or (iii) beneficial ownership
602 of such entity.
604 \item \textbf{Right to Use.} You may use the Original Work in all ways not
605 otherwise restricted or conditioned by this License or by law,
606 and Licensor promises not to interfere with or be responsible
607 for such uses by You.
608 \end{enumerate}
609 \end{it}
612 I \marginpar{\textbf{Intellectual Property}} believe very
613 strongly in the notion of intellectual property. I have endeavored
614 in this book to cite all references and to identify all work and
615 all ideas that are not my own.\footnote{I've actually gone a step
616 further---I've tried to provide enough information to allow a
617 motivated reader to get in touch with the originator of the work
618 or ideas.} I would request the same courtesy in return (but will
619 not enforce this courtesy, except by exposure of parties responsible
620 for the theft of ideas without credit). Plagiarism and theft of intellectual property is a
621 regrettable but common occurrence, and I can
622 reliably predict that some student somewhere in the Webbed world
623 will borrow my ideas or work without citation
624 for a semester project---such events would earn my scorn
625 but be relatively insignificant
626 on my radar screen. However, if any of my work appears without
627 credit in academic journals, I would take the matter less
628 jovially and would very likely report the plagiarism to the journal
629 involved.
631 I \marginpar{\textbf{Contacting the Author}}\index{contacting the author}
632 can be contacted at \texttt{dtashley@aol.com}. I invite readers
633 to contact me about
634 any material in this book, in \emph{The ESRG Tool Set}, or at
635 the web site \texttt{http://esrg.sourceforge.net}.
637 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
639 \noindent\begin{figure}[!b]
640 \noindent\rule[-0.25in]{\textwidth}{1pt}
641 \begin{tiny}
642 \begin{verbatim}
643 $HeadURL$
644 $Revision$
645 $Date$
646 $Author$
647 \end{verbatim}
648 \end{tiny}
649 \noindent\rule[0.25in]{\textwidth}{1pt}
650 \end{figure}
651 %
652 %End of file WORKPRFA.TEX


Name Value
svn:eol-style native
svn:keywords Author Date Id Revision URL Header

ViewVC Help
Powered by ViewVC 1.1.25