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

Revision 274 - (show annotations) (download) (as text)
Sun Aug 11 21:43:05 2019 UTC (3 years, 5 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 and tags on some lines are processed. lines go only to the multi-volume 6 %work, and 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} 13 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. 24 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.} 42 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}). 50 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}. 56 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: 61 62 \begin{itemize} 63 \item A \texttt{.PDF} copy of the most recent released 64 version of this book. 65 66 \item The packaged \LaTeX{} source code and graphics 67 for the most recent released 68 version of this book. 69 70 \item The most recent (unreleased) source code for this book 71 (available from the CVS version control archives). 72 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.). 81 82 \item The packaged source code for the most recent released 83 version of \emph{The ESRG Tool Set}. 84 85 \item The most recent (unreleased) source code of 86 \emph{The ESRG Tool Set} (available from the CVS 87 version control arvhives). 88 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} 96 97 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} 137 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. 151 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} 173 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} 194 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. 201 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). 224 225 \textbf{Volume \vconzeroroman{}: \vconzerotitle{}} 226 \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} 240 241 \textbf{Volume \vmfrzeroroman{}: \vmfrzerotitle{}} 242 \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} 271 272 273 \textbf{Volume \vcswzeroroman{}: \vcswzerotitle{}} 274 \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. 281 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. 285 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. 289 290 \item \textbf{Chapter\;\ref{csnc0}, \csnczerotitle{}} discusses the support 291 of communication protocols and networks. 292 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. 297 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} 302 303 304 \textbf{Volume \valgzeroroman{}: \valgzerotitle{}} 305 \textbf{Part IV: Embedded System Algorithms And Techniques} 306 presents algorithms which are used in a target embedded system. 307 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. 316 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$. 320 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. 324 325 \item \textbf{Chapter\;\ref{cnnu0}, \cnnuzerotitle{}} presents miscellaneous 326 non-numerical algorithms for use in target embedded systems. 327 \end{itemize} 328 329 330 \textbf{Volume \vpaczeroroman{}: \vpaczerotitle{}} 331 \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. 335 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. 339 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. 344 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. 349 350 \item \textbf{Chapter\;\ref{cpxf0}, \cpxfzerotitle{}} describes software and 351 hardware products which are exceptionally useful in embedded product development. 352 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. 355 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} 372 373 374 \textbf{Volume \vijtzeroroman{}: \vijtzerotitle{}} 375 \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. 379 380 \begin{itemize} 381 \item \textbf{Chapter\;\ref{ctin0}, \ctinzerotitle{}} contains an overview 382 of the tool set and its design goals and construction. 383 384 \item \textbf{Chapter\;\ref{ctcm0}, \ctcmzerotitle{}} provides a reference 385 for the Tcl scripting language, around which the tool set is constructed. 386 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. 391 392 \item \textbf{Chapter\;\ref{cfaq0}, \cfaqzerotitle{}} addresses frequently 393 asked questions and gotchas'' in Tcl and Tk. 394 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. 402 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} 408 409 410 \textbf{Volume \vsmazeroroman{}: \vsmazerotitle{}} 411 \textbf{Part VIII: Solutions To Selected Exercises} 412 contains solutions for selected exercises 413 found throughout the work. 414 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. 425 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. 431 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. 442 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.} 451 452 \begin{itemize} 453 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. 457 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. 466 467 \end{itemize} 468 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}.} 473 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 480 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: 484 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} 492 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. 497 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. 507 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. 519 520 \item This section intentionally omitted. 521 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. 528 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, 535 the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 536 THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY 537 constitutes an essential part of this License. No license to Original Work is granted 538 hereunder except under this disclaimer. 539 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. 549 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. 561 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). 569 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. 580 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. 587 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. 592 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. 603 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} 610 611 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. 630 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}. 636 637 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 638 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

Properties

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

 dashley@gmail.com ViewVC Help Powered by ViewVC 1.1.25