Interactive HTML

Total Page:16

File Type:pdf, Size:1020Kb

Interactive HTML AN ABSTRACT OF THE THESIS OF Dianne Hackborn for the degree of Master of Science in Computer Science presented on January 13, 1997. Title: Interactive HTML. Redacted for Privacy Abstract approve Cherri Pancake As the World Wide Web continues to grow, people clearly want to do much more with it than just publish static pages of text and graphics. While such increased inter- activity has traditionally been accomplished through the use of server-side CGI scripts, much recent research on Web browsers has been on extending their capabilities through the addition of various types of client-side services. The most popular of these extensions take the form of plug-ins, applets, and "document scripts" such as Java Script. However, because these extensions have been created in a haphazard way by a variety of independent groups, they suffer greatly in terms of flexibility, uniformity, and interoperability. Inter- active HTML is a system that addresses these problems by combining plug-ins, applets, and document scripts into one uniform and cohesive architecture. It is implemented as an external C library that can be used by a browser programmer to add client-side services to the browser. The IHTML services are implemented as dynamically loaded "language mod- ules," allowing new plug-ins and language interpreters to be added to an iHTML browser without recompiling the browser itself. The system is currently integrated with NCSA's X Mosaic browser and includes language modules for a text viewer plug-in and Python language interpreter. This thesis examines the iHTML architecture in the context of the historical development of Web client-side services and presents an example of iHTML's use to collect usage information about Web documents. Interactive HTML by Dianne Hackborn A THESIS submitted to Oregon State University in partial fulfillment of the requirements for the degree of Master of Science Completed January 13, 1997 Commencement June 1997 Master of Science thesis of Dianne Hackborn presented on January 13, 1997 APPROVED: Redacted for Privacy Majo rofessor, representing Computer Science Redacted for Privacy Chair of the Department of CO-mputer Science Redacted for Privacy Dean of the Gr uate School I understand that my thesis will become part of the permanent collection of Oregon State University libraries. My signature below authorizes release of my thesis to any reader upon request. Redacted for Privacy Dianne Hackborn, Author TABLE OF CONTENTS Page 1 INTRODUCTION 1 1.1 Motivation 2 1.1.1 Current Service Structure 2 1.1.2 Limitations of Existing Service Structure 3 1.2 Interactive HTML 6 1.3 Users 7 1.4 Guide to This Thesis 9 2 RELATED WORK 10 2.1 Plug-ins 10 2.1.1 Eolas's Web lets 11 2.1.2 Netscape's Plug-ins 13 2.2 Applets 16 2.2.1 Sun's Hot Java 17 2.2.2 Applets in Other Languages 20 2.2.3 The Java Platform 22 2.3 Document Scripts 24 2.3.1 The Common Client Interface 24 2.3.2 Netscape's Java Script 26 2.3.3 Active FORMs 30 2.4 Combining Client-side Services 32 2.4.1 Eolas's Web API 32 2.4.2 HTML <OBJECT> Specification 34 2.4.3 Microsoft's ActiveX 37 2.4.4 Netscape's Live Script 40 TABLE OF CONTENTS (Continued) Page 2.5 Collecting Document Usage Statistics 42 2.5.1 HTTP Hit Statistics 43 2.5.2 Gathering Consumer Statistics 44 2.5.3 HTTP Cookies 47 2.5.4 Intra-document Usage Statistics 48 3 OVERVIEW OF INTERACTIVE HTML 53 3.1 iHTML Concepts 53 3.1.1 File and Script Types 54 3.1.2 HTML Syntax 55 3.1.3 HTML Parse Trees 57 3.1.4 URL Extensions 58 3.2 General Architecture 60 3.2.1 Browser Services 62 3.2.2 iHTML Services 64 3.2.3 Language Services 66 3.3 Security and Protection Issues 67 4 SCRIPT DEVELOPER INTERFACE 70 4.1 Applet-level Scripts 70 4.1.1 The Application Class 71 4.1.2 Program Structure 72 4.1.3 Graphics Rendering and Widgets 72 4.2 Document-level Scripts 76 TABLE OF CONTENTS (Continued) Page 4.2.1 The Document Class 77 4.2.2 Program Structure 78 4.2.3 Manipulating HTML Markup 80 4.3 Common Scripting Services 83 4.3.1 Retrieving URLs 83 4.3.2 Events 85 4.3.3 Environment Information 87 5 COLLECTING USAGE STATISTICS 89 5.1 Retrieving User Interaction 92 5.2 Dynamically Displaying Results 94 6 LANGUAGE DEVELOPER INTERFACE 97 6.1 Introduction 97 6.1.1 Language Modules and MIME Content Types 98 6.2 iHTML Programming Interface 100 6.2.1 Browser Services 101 6.2.2 iHTML Library Services 108 6.3 Language Module Interface 113 6.3.1 HTML Parse Trees 116 6.3.2 Environment 116 6.3.3 Scripts 117 6.3.4 User Interface 118 7 IMPLEMENTATION DETAILS 120 TABLE OF CONTENTS (Continued) Page 7.1 iHTML Library Implementation 120 7.1.1 Managing Language Modules 121 7.1.2 Document Scripts and Applets 122 7.2 Integration with X Mosaic 124 7.2.1 HTML Parse Trees 125 7.2.2 Widget and Event Handling 128 7.3 Language Modules 129 7.3.1 Script Environment and Protection 131 7.3.2 Widget Interface 134 8 CONCLUSIONS 136 8.1 Existing Limitations 137 8.2 Lessons Learned 141 BIBLIOGRAPHY 145 APPENDICES 150 APPENDIX A Python Script Developer Manual 151 APPENDIX B Language and Browser Developer Manual 232 LIST OF FIGURES Figure Page 1.1 Combining plug-ins and applets 7 1.2 The users of the iHTML system 8 2.1 DTD of the alas <EMBED> tag 12 2.2 Example alas weblet HTML to display an MPEG animation 12 2.3 DTD of the Hot Java <APPLET> tag 19 2.4 The Java Platform Architecture for browsers 23 2.5 DTD of the Java Script <SCRIPT> tag 27 2.6 Example Java Script event handling program and document 29 2.7 DTD of the Active FORMs tag 30 2.8 Example Active FORMs script that constrains the data in a form field 31 2.9 DTD of the <OBJECT> tag 36 2.10 Example of the <OBJECT> tag 37 2.11 ActiveX's use of the <OBJECT> tag 38 2.12 ActiveX's extension to the <SCRIPT> tag 39 2.13 Netscape's Live Script architecture 41 2.14 Example HTTP access log produced by NCSA's "httpd" server . 43 2.15 Syntax of the Set-Cookie HTTP header. 48 3.1 DTD of iHTML's implementation of the World Wide Web Consor­ tium's <OBJECT> tag 56 3.2 Example markup to embed an iHTML applet 56 3.3 Example markup to create an iHTML document script 57 3.4 A simple HTML document 58 3.5 Parse tree of the document in figure 3.4 59 3.6 High-level architecture of the iHTML system, showing the three main components and communication between them 61 LIST OF FIGURES (Continued) Figure Page 4.1 A minimal applet-level script written in Python 73 4.2 A minimal document-level script written in Python 79 4.3 Dynamic construction of the HTML parse tree shown in Figure 3.5 83 5.1 Architecture of the usage statistics collection programs. 89 5.2 Architecture of the usage retrieval program. 92 5.3 Architecture of the usage display program. 95 7.1 Organization of the iHTML library's IHGlobalInfo structure 123 7.2 Transforming a list of HTML nodes into an actual tree 126 7.3 Algorithm to transform a list of HTML nodes into a true tree structure127 7.4 Initialization implementation of the Python URL class 130 7.5 Language environment used by the Python module 132 7.6 Code context used by the Python module 133 7.7 The code and widget structures used by the text language module . 135 8.1 DTD of the proposed <CALL> tag 139 8.2 Example use of the proposed <CALL> tag 139 LIST OF TABLES Table Page 2.1 The four possible execution levels of an Active FORMs script 31 2.2 Messages between browser (client) and plug-in (server) in Eolas's Web API 33 4.1 Summary of the Container class's public interface 74 4.2 Summary of the Widget class's public interface 76 4.3 Summary of the Document class's public interface 78 4.4 Browser capability information available 79 4.5 Summary of the HTMLCursor type's public interface 81 4.6 Summary of the RawURL class's public interface 84 4.7 Summary of the Event type's public interface 86 4.8 Standard event class and code types. 87 4.9 Python environment information available through the ihBrowser and ihPython modules. 88 5.1 Initial characters indicating the type of a line when communicating with the usage server 90 5.2 Commands recognized by the usage server. 91 5.3 Usage information sequence sent by the usage server. 91 6.1 Functions in a browser's HTML parse tree services 102 6.2 Functions in a browser's document services 103 6.3 Functions in a browser's URL services 104 6.4 Functions in a browser's event services 105 6.5 Functions in a browser's user interface services 107 6.6 Functions in a browser's shared library services 108 6.7 Functions in a browser's miscellaneous services 109 6.8 Functions in the iHTML library's document services 110 LIST OF TABLES (Continued) Table Page 6.9 Functions in the iHTML library's language services 111 6.10 Functions in the iHTML library's buffer services 112 6.11 Functions in the iHTML library's doubly-linked list services 113 6.12 Functions in the iHTML library's miscellaneous services 114 6.13 Fields defined by the IHLanguage structure 115 6.14 Functions in a language module's HTML parse tree services 116 6.15 Functions in a language module's environment services 117 6.16 Functions in a language module's script services 118 6.17 Functions that are part of a language module's user interface services 119 INTERACTIVE HTML 1.
Recommended publications
  • JHDF5 (HDF5 for Java) 19.04
    JHDF5 (HDF5 for Java) 19.04 Introduction HDF5 is an efficient, well-documented, non-proprietary binary data format and library developed and maintained by the HDF Group. The library provided by the HDF Group is written in C and available under a liberal BSD-style Open Source software license. It has over 600 API calls and is very powerful and configurable, but it is not trivial to use. SIS (formerly CISD) has developed an easy-to-use high-level API for HDF5 written in Java and available under the Apache License 2.0 called JHDF5. The API works on top of the low-level API provided by the HDF Group and the files created with the SIS API are fully compatible with HDF5 1.6/1.8/1.10 (as you choose). Table of Content Introduction ................................................................................................................................ 1 Table of Content ...................................................................................................................... 1 Simple Use Case .......................................................................................................................... 2 Overview of the library ............................................................................................................... 2 Numeric Data Types .................................................................................................................... 3 Compound Data Types ................................................................................................................ 4 System
    [Show full text]
  • Language-Level Support for Exploratory Programming of Distributed Virtual Environments
    In Proc ACM UIST ‘96 (Symp. on User Interface Software and Technology), Seattle, WA, November 6–8, 1996, pp. 83–94. Language-Level Support for Exploratory Programming of Distributed Virtual Environments Blair MacIntyre and Steven Feiner Department of Computer Science, Columbia University, New York, NY, 10027 {bm,feiner}@cs.columbia.edu http://www.cs.columbia.edu/~{bm,feiner} Abstract resulted in an unmanageable welter of client-server relation- ships, with each of a dozen or more processes needing to We describe COTERIE, a toolkit that provides language- create and maintain explicit connections to each other and to level support for building distributed virtual environments. handle inevitable crashes. COTERIE is based on the distributed data-object paradigm for distributed shared memory. Any data object in COTE- We spent a sufficiently large portion of our time reengineer- RIE can be declared to be a Shared Object that is replicated ing client-server code that it became clear to us that our fully in any process that is interested in it. These Shared implementation of the client-server model was unsuitable Objects support asynchronous data propagation with atomic for exploratory programming of distributed research proto- serializable updates, and asynchronous notification of types. The heart of the problem, as we saw it, was a lack of updates. COTERIE is built in Modula-3 and uses existing support for data sharing that was both efficient and easy for Modula-3 packages that support an integrated interpreted programmers to use in the face of frequent and unantici- language, multithreading, and 3D animation. Unlike other pated changes.
    [Show full text]
  • Server: Apache
    Modern Trends in Network Fingerprinting SecTor [11.21.07] Jay Graver Ryan Poppa // Fingerprinting Topics Why, What, Who & How? Tools in action Why Tools Break Tools EOL New Approaches New Tool // Why Fingerprint? WhiteHat needs accurate identification of hosts in a PenTest report BlackHat reconnaissance SysAdmins track down and identify new services or hosts when they appear on their network // What is a Fingerprint? Looking at something common … 192.168.2.187:8004 192.168.2.187 [152] 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d HTTP/1.1 200 OK. 0a 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 63 6c 6f .Connection: clo 73 65 0d 0a 41 6c 6c 6f 77 3a 20 4f 50 54 49 4f se..Allow: OPTIO 4e 53 2c 20 47 45 54 2c 20 48 45 41 44 2c 20 50 NS, GET, HEAD, P 4f 53 54 0d 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e OST..Content‐Len 67 74 68 3a 20 30 0d 0a 44 61 74 65 3a 20 46 72 gth: 0..Date: Fr 69 2c 20 30 32 20 4e 6f 76 20 32 30 30 37 20 32 i, 02 Nov 2007 2 32 3a 32 35 3a 31 38 20 47 4d 54 0d 0a 53 65 72 2:25:18 GMT..Ser 76 65 72 3a 20 6c 69 67 68 74 74 70 64 2f 31 2e ver: lighttpd/1. 34 2e 31 35 0d 0a 0d 0a 4.15...
    [Show full text]
  • Rational Robot User's Guide
    Rational Software Corporation® Rational® Robot User’s Guide VERSION: 2003.06.00 PART NUMBER: 800-026172-000 WINDOWS [email protected] http://www.rational.com Legal Notices ©1998-2003, Rational Software Corporation. All rights reserved. Part Number: 800-026172-000 Version Number: 2003.06.00 This manual (the "Work") is protected under the copyright laws of the United States and/or other jurisdictions, as well as various international treaties. Any reproduction or distribution of the Work is expressly prohibited without the prior written consent of Rational Software Corporation. The Work is furnished under a license and may be used or copied only in accordance with the terms of that license. Unless specifically allowed under the license, this manual or copies of it may not be provided or otherwise made available to any other person. No title to or ownership of the manual is transferred. Read the license agreement for complete terms. Rational Software Corporation, Rational, Rational Suite, Rational Suite ContentStudio, Rational Apex, Rational Process Workbench, Rational Rose, Rational Summit, Rational Unified Process, Rational Visual Test, AnalystStudio, ClearCase, ClearCase Attache, ClearCase MultiSite, ClearDDTS, ClearGuide, ClearQuest, PerformanceStudio, PureCoverage, Purify, Quantify, Requisite, RequisitePro, RUP, SiteCheck, SiteLoad, SoDa, TestFactory, TestFoundation, TestMate and TestStudio are registered trademarks of Rational Software Corporation in the United States and are trademarks or registered trademarks in other countries. The Rational logo, Connexis, ObjecTime, Rational Developer Network, RDN, ScriptAssure, and XDE, among others, are trademarks of Rational Software Corporation in the United States and/or in other countries. All other names are used for identification purposes only and are trademarks or registered trademarks of their respective companies.
    [Show full text]
  • Write Once, Pwn Anywhere
    Write Once, Pwn Anywhere Yang Yu Twitter: @tombkeeper Agenda • Summon BSTR back • JScript 9 mojo • “Vital Point Strike” • “Interdimensional Execution” Who am I? • From Beijing, China • Director of Xuanwu Security Lab at Tencent – We're hiring • Researcher from 2002, geek from birth – Strong focus on exploiting and detection • Before 2002, I am a… Before 2002 Now Summon BSTR back About BSTR JScript 5.8 and earlier use BSTR to store String object data struct BSTR { LONG length; WCHAR* str; } var str = “AAAAAAAA”; 0:016> dc 120d0020 l 8 120d0020 00000010 00410041 00410041 00410041 ....A.A.A.A.A.A. 120d0030 00410041 00000000 00000000 00000000 A.A............. Corrupt BSTR prefix var str = “AAAAAAAA”; 0:016> dc 120d0020 l 4 120d0020 00000010 00410041 00410041 00410041 ....A.A.A.A.A.A. writeByVul(0x120d0020, 0x7ffffff0); 0:016> dc 120d0020 l 4 120d0020 7ffffff0 00410041 00410041 00410041 ....A.A.A.A.A.A. var outofbounds = str.substr(0x22222200,4); * Peter Vreugdenhil, “Pwn2Own 2010 Windows 7 Internet Explorer 8 exploit” Locate the address of BSTR prefix var strArr = heapSpray("\u0000"); var sprayedAddr = 0x14141414; writeByVul(sprayedAddr); for (i = 0; i < strArr.length; i++) { p = strArr[i].search(/[^\u0000]/); if (p != -1) { modified = i; leverageStr = strArr[modified]; bstrPrefixAddr = sprayedAddr - (p)*2 - 4; break; } } * Fermin J. Serna, “The info leak era on software exploitation” JScript 9 replaced JScript 5.8 since IE 9 JScript 9 does not use BSTR now So exploiters switch to flash vector object But, JScript 5.8 is still there We can summon it back The spell to summon JScript 5.8 back <META http-equiv = "X-UA-Compatible" content = "IE=EmulateIE8"/> <Script Language = "JScript.Encode"> … </Script> or <META http-equiv = "X-UA-Compatible" content = "IE=EmulateIE8"/> <Script Language = "JScript.Compact"> … </Script> * Some features are not supported with JScript.Compact, like eval().
    [Show full text]
  • HTML5 for .NET Developers by Jim Jackson II Ian Gilman
    S AMPLE CHAPTER Single page web apps, JavaScript, and semantic markup Jim Jackson II Ian Gilman FOREWORD BY Scott Hanselman MANNING HTML5 for .NET Developers by Jim Jackson II Ian Gilman Chapter 1 Copyright 2013 Manning Publications brief contents 1 ■ HTML5 and .NET 1 2 ■ A markup primer: classic HTML, semantic HTML, and CSS 33 3 ■ Audio and video controls 66 4 ■ Canvas 90 5 ■ The History API: Changing the game for MVC sites 118 6 ■ Geolocation and web mapping 147 7 ■ Web workers and drag and drop 185 8 ■ Websockets 214 9 ■ Local storage and state management 248 10 ■ Offline web applications 273 vii HTML5 and .NET This chapter covers ■ Understanding the scope of HTML5 ■ Touring the new features in HTML5 ■ Assessing where HTML5 fits in software projects ■ Learning what an HTML application is ■ Getting started with HTML applications in Visual Studio You’re really going to love HTML5. It’s like having a box of brand new toys in front of you when you have nothing else to do but play. Forget pushing the envelope; using HTML5 on the client and .NET on the server gives you the ability to create entirely new envelopes for executing applications inside browsers that just a few years ago would have been difficult to build even as desktop applications. The abil- ity to use the skills you already have to build robust and fault-tolerant .NET solu- tions for any browser anywhere gives you an advantage in the market that we hope to prove throughout this book. For instance, with HTML5, you can ■ Tap the new Geolocation API to locate your users anywhere
    [Show full text]
  • Sun 64-Bit Binary Alignment Proposal
    1 KMIP 64-bit Binary Alignment Proposal 2 3 To: OASIS KMIP Technical Committee 4 From: Matt Ball, Sun Microsystems, Inc. 5 Date: May 1, 2009 6 Version: 1 7 Purpose: To propose a change to the binary encoding such that each part is aligned to an 8-byte 8 boundary 9 10 Revision History 11 Version 1, 2009-05-01: Initial version 12 Introduction 13 The binary encoding as defined in the 1.0 version of the KMIP draft does not maintain alignment to 8-byte 14 boundaries within the message structure. This causes problems on hard-aligned processors, such as the 15 ARM, that are not able to easily access memory on addresses that are not aligned to 4 bytes. 16 Additionally, it reduces performance on modern 64-bit processors. For hard-aligned processors, when 17 unaligned memory contents are requested, either the compiler has to add extra instructions to perform 18 two aligned memory accesses and reassemble the data, or the processor has to take a „trap‟ (i.e., an 19 interrupt generated on unaligned memory accesses) to correctly assemble the memory contents. Either 20 of these options results in reduced performance. On soft-aligned processors, the hardware has to make 21 two memory accesses instead of one when the contents are not properly aligned. 22 This proposal suggests ways to improve the performance on hard-aligned processors by aligning all data 23 structures to 8-byte boundaries. 24 Summary of Proposed Changes 25 This proposal includes the following changes to the KMIP 0.98 draft submission to the OASIS KMIP TC: 26 Change the alignment of the KMIP binary encoding such that each part is aligned to an 8-byte 27 boundary.
    [Show full text]
  • 1 United States District Court Eastern
    Case 2:02-cv-02748-DRH-MLO Document 829 Filed 03/17/09 Page 1 of 85 PageID #: <pageID> UNITED STATES DISTRICT COURT EASTERN DISTRICT OF NEW YORK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - X CA, INC., Plaintiff, MEMORANDUM & ORDER 02 Civ. 2748 (DRH) (MLO) - against - UNDER SEAL SIMPLE.COM, INC., WIRED SOLUTIONS, LLC., a revoked Nevada LLC, Defendants. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - X APPEARANCES: COVINGTON & BURLING Attorneys for Plaintiff One Front Street San Francisco, California 94111 By: Samuel F. Ernst, Esq., Robert D. Fram, Esq., Michael M. Markman, Esq., & Leonard Joseph Martiniak, Esq. FARRELL FRITZ, P.C. Attorneys for Defendants EAB Plaza West Tower-14th Floor Uniondale, New York 11556 By: Stephen J. Smirti, Jr., Esq., John P. McEntee, Esq., & Celeste M. Butera, Esq. FULBRIGHT & JAWORSKI LLP Attorneys for Defendants 666 Fifth Avenue New York, NY 10103-3198 By: John E. Lynch, Esq. & Joseph P. Zammit, Esq. RIVKIN RADLER LLP Attorneys for Defendants EAB Plaza Uniondale, New York 11556 By: Celeste M. Butera, Esq. & Stephen J. Smirti, Jr., Esq. 1 Case 2:02-cv-02748-DRH-MLO Document 829 Filed 03/17/09 Page 2 of 85 PageID #: <pageID> GALE R. PETERSON, ESQ. Special Master 112 E. Pecan Street Suite 1800 San Antonio, Texas 78205 HURLEY, Senior District Judge: INTRODUCTION Plaintiff CA Inc. (“CA), formerly known as Computer Associates International Inc. commenced this action seeking a declaratory judgment that three patents owned by Defendants, Simple.com, Inc. and Wired Solutions, LLC (collectively “Simple”) are invalid, unenforceable, and not infringed by CA. Simple has counterclaimed for infringement. Presently before the Court is CA’s Motion for Summary Judgment of Invalidity Under 35 U.S.C.
    [Show full text]
  • Vbscript Programmer’S Reference Third Edition
    VBScript Programmer’s Reference Third Edition Adrian Kingsley-Hughes Kathie Kingsley-Hughes Daniel Read Wiley Publishing, Inc. ffirs.indd iii 8/28/07 9:41:21 AM ffirs.indd vi 8/28/07 9:41:22 AM VBScript Programmer’s Reference Third Edition Introduction . xxv Chapter 1: A Quick Introduction to Programming . 1 Chapter 2: What VBScript Is — and Isn’t! . 31 Chapter 3: Data Types . 45 Chapter 4: Variables and Procedures . 83 Chapter 5: Control of Flow . 109 Chapter 6: Error Handling and Debugging . 129 Chapter 7: The Scripting Runtime Objects . 183 Chapter 8: Classes in VBScript (Writing Your Own COM Objects) . 209 Chapter 9: Regular Expressions . 233 Chapter 10: Client-Side Web Scripting . 261 Chapter 11: Windows Sidebars and Gadgets . 287 Chapter 12: Task Scheduler Scripting . 309 Chapter 13: PowerShell . 345 Chapter 14: Super-Charged Client-Side Scripting . 375 Chapter 15: Windows Script Host . 405 Chapter 16: Windows Script Components . 465 Chapter 17: Script Encoding . 489 Chapter 18: Remote Scripting . 509 Chapter 19: HTML Applications . 517 Chapter 20: Server-Side Web Scripting . 535 Chapter 21: Adding VBScript to Your VB and .NET Applications . 569 (Continued) ffirs.indd i 8/28/07 9:41:21 AM Appendix A: VBScript Functions and Keywords . 603 Appendix B: Variable Naming Convention . 675 Appendix C: Coding Conventions . 677 Appendix D: Visual Basic Constants Supported in VBScript . 681 Appendix E: VBScript Error Codes and the Err Object . 687 Appendix F: The Scripting Runtime Library Object Reference . 703 Appendix G: The Windows Script Host Object Model . 715 Appendix H: Regular Expressions . 723 Appendix I: The Variant Subtypes .
    [Show full text]
  • Making Classes Provable Through Contracts, Models and Frames
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by CiteSeerX DISS. ETH NO. 17610 Making classes provable through contracts, models and frames A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH (ETH Zurich)¨ for the degree of Doctor of Sciences presented by Bernd Schoeller Diplom-Informatiker, TU Berlin born April 5th, 1974 citizen of Federal Republic of Germany accepted on the recommendation of Prof. Dr. Bertrand Meyer, examiner Prof. Dr. Martin Odersky, co-examiner Prof. Dr. Jonathan S. Ostroff, co-examiner 2007 ABSTRACT Software correctness is a relation between code and a specification of the expected behavior of the software component. Without proper specifica- tions, correct software cannot be defined. The Design by Contract methodology is a way to tightly integrate spec- ifications into software development. It has proved to be a light-weight and at the same time powerful description technique that is accepted by software developers. In its more than 20 years of existence, it has demon- strated many uses: documentation, understanding object-oriented inheri- tance, runtime assertion checking, or fully automated testing. This thesis approaches the formal verification of contracted code. It conducts an analysis of Eiffel and how contracts are expressed in the lan- guage as it is now. It formalizes the programming language providing an operational semantics and a formal list of correctness conditions in terms of this operational semantics. It introduces the concept of axiomatic classes and provides a full library of axiomatic classes, called the mathematical model library to overcome prob- lems of contracts on unbounded data structures.
    [Show full text]
  • Obliq, a Language with Distributed Scope
    Obliq A Language with Distributed Scope Luca Cardelli June 3, 1994 © Digital Equipment Corporation 1994 This work may not be copied or reproduced in whole or in part for any commercial purpose. Permis- sion to copy in whole or in part without payment of fee is granted for nonprofit educational and re- search purposes provided that all such whole or partial copies include the following: a notice that such copying is by permission of the Systems Research Center of Digital Equipment Corporation in Palo Alto, California; an acknowledgment of the authors and individual contributors to the work; and all applicable portions of the copyright notice. Copying, reproducing, or republishing for any other pur- pose shall require a license with payment of fee to the Systems Research Center. All rights reserved. Abstract Obliq is a lexically-scoped untyped interpreted language that supports distributed object-oriented computation. An Obliq computation may involve multiple threads of control within an address space, multiple address spaces on a machine, heterogeneous machines over a local network, and multiple net- works over the Internet. Obliq objects have state and are local to a site. Obliq computations can roam over the network, while maintaining network connections. Contents 1. Introduction ................................................................................................................................. 1 1.1 Language Overview ............................................................................................................
    [Show full text]
  • Duty to Disclose: Dayco Products V Total Containment
    THE JOHN MARSHALL REVIEW OF INTELLECTUAL PROPERTY LAW DUTY TO DISCLOSE: DAYCO PRODUCTS V TOTAL CONTAINMENT TOM BRODY ABSTRACT The duty to disclose, as set forth by 37 C.F.R. § 1.56 and case law from the Federal Circuit, should be followed during the prosecution of all patent applications. This duty requires that inventors and their attorneys provide the United States Patent and Trademark Office with a list identifying relevant publications, patent applications, patents, legal proceedings, written rejections from patent examiners, and sales, both public and confidential. "Relevant" means relevant to the claims. The consequences of failing in this duty can be severe, namely, a holding of inequitable conduct. Inequitable conduct, in the patenting context, requires two prongs-materiality of the publication and intent to deceive the Patent Office. Patent practitioners are confronted by many gray areas, e.g., the boundaries of the duty, whether disclosing an Abstract can satisfy the duty of disclosing the corresponding full length publication, how to remedy situations where an inventor failed to timely disclose the publication, and how to assess deceptive intent. Copyright © 2008 The John Marshall Law School Cite as Tom Brody, Duty to Disclose: Dayco Products v. Total Containment, 7 J. MARSHALL REV. INTELL. PROP. L. 325 (2008). DUTY TO DISCLOSE: DAYCO PRODUCTS V. TOTAL CONTAINMENT TOM BRODY* "We leave for another day a final disposition of this issue"' INTRODUCTION The duty to disclose information to the United States Patent and Trademark Office ("USPTO") is a major issue for the patent practitioner. Failure to disclose can have severe consequences, for example, invalidation of your patent and all related patents in the patent family.
    [Show full text]