U.S. PATENT AND TRADEMARK OFFICE
Information Products Division
[Manual of Classification, Class Listing] [Manual of Classification, Class 717] [Classification Definitions, Class Listing] [USPTO Home Page]

U.S. Patent Classification System - Classification Definitions
as of June 30, 2000

[Explanation of Data]

Patents classified in a subclass may be accessed by either clicking on the subclass number
preceding each subclass definition or on the " [Patents] " icon, below.
( please note that patents for some subclasses may not be available )

For classification search strategies, please refer to the Classification Index Explanation of Data web page.

(definitions have been obtained from the Patents ASSIST CD-ROM which is produced by the U.S. Patent and Trademark Office Electronic Products Branch)


Class 717

DATA PROCESSING: SOFTWARE DEVELOPMENT, INSTALLATION AND MANAGEMENT


Class Definition:
GENERAL STATEMENT OF THE CLASS DEFINITION
This class provides for software program development tool and techniques including processes and apparatus for controlling data processing operations pertaining to the development and maintenance of software programs. Such processes and apparatus include:
A. Processes and apparatus for program development functions such as specification, design, generation, and version management of source code programs.
B. Processes and apparatus for debugging of computer program including monitoring, simulation, emulation, and profiling of software programs.
C. Processes and apparatus for translating or compiling programs from a high-level representation to an intermediate code representation and finally into an object or machine code representation, including linking, and optimizing the program for subsequent execution.
D. Processes and apparatus for updating, installing, and version management of developed code.
SCOPE OF THE CLASS
(1) Note. This class provides for operations performed during the generation of computer programs prior to actual deployment and/or execution on a target machine, except when the execution is performed for the purpose of debugging or optimizing the program, such as by simulation, emulation, or profiling.
(2) Note. Classification herein requires more than nominal recitation of "programs", "programming", "debugging" or of development/programming environments/languages.
(3) Note. Although this class includes operations including execution of programs for operations performed by execution of computer programs during optimizing or debugging programs, the operations performed during actual intended use thereof are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(4) Note. Processes and apparatus for error detection, correction, and fault detection and recovery are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(5) Note. Processes and apparatus for generating and/or communicating through graphical user interfaces and/or application program interfaces of computer programs are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(6) Note. This class provides for linking compiled load modules for the purpose of generating object or machine code representations of programs. Functions during dynamic linking of computer program modules performed at run-time are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(7) Note. This class provides for debugging computer programs in order to ensure correct operation of software during its intended use, the debugging being performed at the time the program is under development. Operations for fault location and recovery during its actual use are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(8) Note. This class provides for optimization of computer programs by scheduling/reordering of instructions by a compiler during development. Scheduling and/or reordering instructions by hardware means such as superscalar processors are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(9) Note. This class provides for processing of computer programming languages such as editing, parsing, semantic and syntactic analysis, translation, etc. Operations including translation or editing of natural language text and document are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(10) Note. This class provides for processes and apparatus
for installation of software on computer systems, which may be performed in conjunction with downloading/transmitting the software and other installation-related information via communication networks and configuration of the computer system during installation of the software. Operations in downloading/transmitting of information and/or software and configuration of computer systems are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
Ii

SEE OR SEARCH CLASS:
340, Communications: Electrical, subclasses 825-825.98 for controlling one or more devices to obtain a plurality of results by transmission of a designated one of plural distinctive control signals over a smaller number of communication lines or channels, particularly subclass 825.02 for tree or cascade selective communication, subclasses 825.03 through 825.04 for channel selection, subclasses 825.06 through 825.18 for communication systems where status of a controlled device is communicated, subclass 825.08 for selective communication address polling control, subclasses 825.2 and 825.21 for synchronizing selective communication systems, subclasses 825.3 through 825.35 for security by intelligence comparison (e.g., authorization, etc.) in a selective communication system, subclasses 825.5 and 825.51 for lockout or priority in a selective communication system, subclasses 825.52 and 825.53 for addressing in selective system, and subclasses 825.57 through 825.69 for pulse responsive actuation in selective system.
345, Computer Graphics Processing, Operator Interface Processing, and Selective Visual Display Systems, appropriate subclasses for visual display systems with selective electrical control including display memory organization and structure for storing image data and manipulating image data between a display memory and display peripheral, subclasses 156-184 for display peripheral interface input device, subclasses 204 through 215 for display driving control circuitry, subclasses 326 through 358 for computer operator interface, subclasses 418 through 475 for computer graphics processing, and subclasses 501 through 526 for computer graphic processing systems.
370, Multiplex Communications, appropriate subclasses for the simultaneous transmission of two or more signals over a common medium, particularly subclasses 254-258 for network configuration determination; subclasses 324, 350, and 503 through 520 for synchronization over free space or wire; subclasses 351 through 430 for path finding or routing including packet switching, circuit switching, and ATM switching; and subclasses 465 through 473 for adaptive communication protocol.
375, Pulse or Digital Communications, appropriate subclasses for generic pulse or digital communication systems and
synchronization of clocking signals from input data, particularly subclasses 354-376 for synchronizing the operation of the receiving and transmitting mechanism including synchronization fault prevention and self synchronization.
379, Telephonic Communications, appropriate subclasses for two-way electrical communication of intelligible audio data of arbitrary content over a link including an electrical conductor, particularly subclass 145 for fraud or interference prevention, subclasses 188 through 200 for telephone call or terminal access alarm or control (e.g., access blocking equipment), subclasses 322 through 324 for a power supply in a centralized switching system, and subclass 413 for a power supply in a subscriber line or transmission line interface.
380, Cryptography, subclass 48 for electronic signal modification with synchronization and subclasses 287 through 53 for electronic signal modification with digital signal handling (e.g., digital control, digital computer communication).
455, Telecommunications, appropriate subclasses for modulated carrier wave communication, per se, particularly subclass 26.1 for subject matter which blocks access to a signal source or otherwise limits usage of modulated carrier equipment.
700, Data Processing: Generic Control Systems or Specific Applications, appropriate subclasses for data processing control systems and specific applications.
702, Data Processing: Measuring, Calibrating, or Testing, appropriate subclasses, particularly subclasses 60-63 for power parameter measuring system, subclass 125 for timing signal generation in a testing system, subclasses 176 through 178 for time duration or rate measuring system, and subclass 186 for computer and peripheral benchmarking.
704, Data Processing: Speech Signal Processing, Linguistics, Language Translation, and Audio Compression/Decompression, subclasses 1-10 for linguistics, subclasses 200 through 278 for speech processing, and subclasses 500 through 504 for audio signal time or bandwidth compression or expansion.
705, Data Processing: Financial, Business Practice, Management, or Cost/Price Determination, subclass 18 for a point of sale terminal or an electronic cash register having security or user identification and subclass 44 for authentication or authorization in a credit or loan processing system.
706, Data Processing: Artificial Intelligence, subclasses 1-9 for fuzzy logic hardware, subclass 10 for plural processing intelligence systems, subclass 11 for artificial intelligence system having particular user interface, subclasses 12 and 13
for machine learning system, subclass 14 for adaptive system, subclasses 15 through 44 for neural network, and subclasses 45 through 62 for knowledge processing system.
707, Data Processing: Database and File Management, Data Structures, or Document Processing, particularly subclasses 1-10 for database or file accessing, subclasses 100 through 104 for database scheme or structure, subclasses 200 through 206 for file or database management, and subclasses 500 through 542 for document processing.
708, Electrical Computers: Arithmetic Processing and Calculating, appropriate subclasses for specialized function or calculation operation performed by an electrical analog computer, an electric hybrid computer, or an electric digital calculating computer.
709, Electrical Computers and Digital Processing Systems: Multiple Computer or Process Coordinating, appropriate subclasses for transferring data between a plurality of computers even if the transferring employs peripherals (e.g., modems, line adapters, etc.), particularly subclasses 300-305 for dynamic linking in interprogram communication.
710, Electrical Computers and Digital Data Processing Systems: Input/Output, appropriate subclasses for interconnecting or transferring data among processors, memories, and peripherals of computers or digital data processing systems.
711, Electrical Computers and Digital Processing Systems: Memory, subclasses 1-6 for addressing combined with specific memory configurations (e.g., extended, expanded, dynamic, etc.) in a computer; subclasses 100 through 173 for accessing or controlling memories that are peripherals, for caching data, particularly subclass 164 for access limiting with password or key; and subclasses 200 through 221 for generalized address forming in a computer.
712, Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors), appropriate subclasses for processing architectures including virtual processors; multiple-instruction-multiple-data (MIMD); vector and array processors; single-chip microprocessors; and for fetching, buffering, decoding, or executing instruction data for operations other than I/O (e.g., logic functions).
713, Electrical Computers and Digital Processing Systems: Support, particularly subclass 1 and 2 for booting/initialization and subclass 100 for reconfiguration.
714, Error Detection/Correction and Fault Detection /Recovery, particularly subclass 707 for synchronization control using an error rate, subclass 731 for a reference timing function or a clock pulse generator in a scan path testing system, subclass 744 for clock or synchronization in
digital logic testing using a test pattern generator, and subclass 798 for error detection for synchronization control.


SUBCLASSES


Subclass: 1 [Patents]

SOFTWARE PROGRAM DEVELOPMENT TOOL (E.G., INTEGRATED CASE TOOL OR STAND-ALONE DEVELOPMENT TOOL):
This subclass is indented under the class definition. Subject matter comprising means or steps operating on a computer or digital data processing system which enables a user to create and manage computer program code.
(1) Note. This subclass and those indented below accept computer programming tools, environments, and application programs which enable a programmer to create computer programs, for example, by use of a flowchart, pseudo code, a graphical description, program specifications, or by writing source code directly. However, particular software applications such as natural language translators, business tools, word processors, etc., are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(2) Note. The tools classified here may translate input data into source code, translate source code into object code, link object code into executable code, or simply bring existing source code modules together to satisfy specified requirements. Code converters that change BCD to BINARY are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(3) Note. The software development tools classifiable here may include the use of artificial intelligence in the construction of a program. However, artificial intelligence programming tools for developing expert systems are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(4) Note. The general ability to link certain modules together to form a program is classifiable here. However, where the programming tool is directed to a particular application such as the control of a particular machine or device of another class, the proper classification is in said machine or device class when provided for there. When the programming of a particular machine is not provided for in the device class, the proper classification is in the computer applications art class. For example, programming for programmable positionable servo systems is classified with the positionable servo systems art. See the SEE OR SEARCH CLASS notes below. And, for example, programming for the machine control tools is classified with the machine control art. See the SEE OR SEARCH CLASS notes below.
(5) Note. The software programming tools in this subclass often utilize graphical, symbolic, or iconic metaphors in the user interface. The combination of a programming tool with user interface metaphors is properly classified here. However, generalized operator interface inventions such as on-screen workspaces and features of GUI s such as pop-up controls and menus are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(6) Note. The software development tools here may include tools which perform the function of cross-compiling a program. However, a program which performs the cross-compiling in-situ (i.e., an application running on a platform) is an emulator which is classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(7) Note. The software development tools here may include tools for developing object-oriented programs. However, operations performed during execution of object-oriented programs such as interprogram communication between objects are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(8) Note. The general ability to link certain modules such as procedures or functions together to form a program is classifiable here. However, communication between procedures and functions during execution thereof such as function or procedure calls is classified elsewhere. See the SEE OR SEARCH CLASS notes below.

SEE OR SEARCH CLASS:
318, Electricity: Motive Power Systems, subclasses 560-688 for programmable positionable servo systems.
341, Coded Data Generation or Conversion, appropriate subclasses for digital code-to-digital code converters, A/D converters, and D/A converters.
345, Computer Graphics Processing, Operator Interface Processing, and Selective Visual Display Systems, subclasses 326-358 for generalized operator interface and cross-reference art collection 967 for a collection of art directed to visual or iconic programming used in process control and configuration.
399, Electrophotography, subclasses 76-78 for sequential and programmed control of photocopying machines.
434, Education and Demonstration, appropriate subclasses for means and method for teaching computer programming.
700, Data Processing: Generic Control Systems or Specific Applications, subclass 17 and 18 for programming methods for general purpose controllers and industrial controllers and subclasses 180 through 185 for machine tool operator
interface.
703, Data Processing: Structural Design, Modeling, Simulation, and Emulation, subclass 22 for simulation of computer programs, subclasses 23 through 26 for emulator application programs, and subclasses 27 and 28 for in-system emulation of system components for compatibility.
705, Data Processing: Financial, Business Practice, Management, or Cost/Price Determination, appropriate subclasses for business data processing, per se.
706, Data Processing: Artificial Intelligence, appropriate subclasses for programming AI tools and developing expert systems.
707, Data Processing: Database and File Management, Data Structures, or Document Processing, subclasses 500-542 for document and text processing, per se.
709, Electrical Computers and Digital Processing Systems: Multiple Computer or Process Coordinating, subclasses 300-305 for interprocess communication such as function calls and subclass 303 for object-oriented messaging.

Subclass: 2 [Patents]

Generating source code:
This subclass is indented under subclass 1. Subject matter wherein a program or high-level development tool facilitates creation of the list of human-readable instruction data in a programming language.
(1) Note. This subclass is for tools which are used to facilitate software development and may include recitation and processes involving the use of graphical user interfaces, "visual" development environments, and flowcharts. However, general purpose operator interfaces, graphical user interfaces (GUI), or other graphical displays are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(2) Note. The source code generating programs or tools classified here may generate source code directly without using graphics, for example, by use of a specification. However, program generation tools utilizing a specification directed to the physics of materials or interactions of constituent parts of a physical process, such as in the field of simulating chemical, electrical, or mechanical processes for the purpose of design and analysis, are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(3) Note. The source code generating programs or tools here may include tools for developing source code for object-oriented programs. However, operations performed
during execution of object-oriented programs such as communication between objects are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(4) Note. The generation of source code by linking certain modules such as procedures or functions together to form a program is classifiable here. However, communication between procedures and functions during execution thereof such as function or procedure calls is classified elsewhere. See the SEE OR SEARCH CLASS notes below.

SEE OR SEARCH CLASS:
345, Computer Graphics Processing, Operator Interface Processing, and Selective Visual Display Systems, subclasses 326-358 for operator interfaces, per se, and cross-reference art collection 967 for a collection of art directed to iconic programming cross-reference art collection.
709, Electrical Computers and Digital Processing Systems: Multiple Computer or Process Coordinating, subclasses 300-305 for interprocess communication such as function calls, particularly subclass 303 for object-oriented messaging.

Subclass: 3 [Patents]

Managing source code:
This subclass is indented under subclass 1. Subject matter directed to the enterprise of program development administration including, for example, maintaining source code modules or files, preprocessing or integrating source code, generating design documentation from source code, or source code version management.
(1) Note. The subject matter of this subclass is limited to managing source code in a programming tool environment. As evidenced by the many notes which follow, the generic concepts of version management, data consistency, and data coherency are distributed throughout other classes under various titles, such as document version management, file and database maintenance, consistency, etc. Therefore, a concept search for data management, per se, should include consideration of these related topics.
(2) Note. For the purpose of this definition, preprocessing or integration of source code occurs when source code modules or files are combined or processed before compilation (e.g., using a preprocessor to process includes files or MACROS or for inlining of procedures/functions, using a MAKEFILE to select and schedule source files for compilation).
(3) Note. For the purpose of this definition, generating design documentation occurs when pseudo-code, structure
charts, flowcharts, data flow diagrams, entity-relationship diagrams, class hierarchies, comment listings, or other graphs or programming aids are generated by scanning the source code. Source code version management is where versions of source code are managed in a library to facilitate team software development.
(4) Note. For the purpose of this definition examples of source code version management include UNIX utilities SCCS (Source Code Control System) and RCS (Revision Control System).

SEE OR SEARCH THIS CLASS, SUBCLASS:
11 for software installation and version management of operating systems, application programs, and other executable programs.

SEE OR SEARCH CLASS:
345, Computer Graphics Processing, Operator Interface Processing, and Selective Visual Display Systems, subclasses 327-332 for operator interfaces aspects of work group for plural users or sites and cross-reference art collection 971 for a collection of art directed to interface aspects of cooperative decision support systems for groups of users.
705, Data Processing: Financial, Business Practice, Management, or Cost/Price Determination, subclasses 1-45 for automated financial or business practice or management systems.
707, Data Processing: Database and File Management, Data Structures, or Document Processing, subclass 8 for database concurrency, subclasses 200 through 206 for file and database maintenance systems including data coherency in database systems, and subclass 511 for document version management under document processing.
709, Electrical Computers and Digital Processing Systems: Multiple Computer or Process Coordinating, subclass 100 for identifying and dealing with run-time dependencies between executing programs, tasks, processes (e.g., data dependencies, control flow dependencies, etc.).
710, Electrical Computers and Digital Data Processing Systems: Input/Output, subclass 200 for access control, per se.
711, Electrical Computers and Digital Processing Systems: Memory, subclasses 141-146 for cache memory data coherency.
713, Electrical Computers and Digital Processing Systems: Support, subclasses 200-202 for security in digital data processing systems.
714, Error Detection/Correction and Fault Detection/Recovery, subclasses 15-22 for process and data state recovery, per se, in particular subclass 20 for use of plural data sets (i.e., logs) containing set interrelation data.

Subclass: 4 [Patents]

Program code execution analyzer, debugger, or monitor:
This subclass is indented under subclass 1. Subject matter comprising means or steps for examining code at execution using code monitoring tools such as breakpoints, hooks, tracing, or instruction substitution during development of computer software.
(1) Note. This subclass is for programming tools which help programmers debug executable code in the development phase of programming. Recovery from a run-time fault or exception in an already functioning and tested program is classified elsewhere.
(2) Note. This subclass includes performance analyzers for determining efficiency of execution, program status monitors, program execution time analysis (e.g., time profilers), program resource utilization monitors (e.g., memory use profilers or pointer utilization profilers), and the results of the analysis and/or monitoring being utilized in the development process such as optimization or debugging of the software being developed. Analysis or monitoring of program code execution for the purpose of fault location and recovery during actual use of computer software subsequent to its development are classified elsewhere. See the SEE OR SEARCH CLASS notes below.

SEE OR SEARCH THIS CLASS, SUBCLASS:
7 for translation of computer code using an intermediate form or language.
8 for analyzing syntax, data, or an expression of computer code for compilation.
9 for optimization of computer programs.

SEE OR SEARCH CLASS:
702, Data Processing: Measuring, Calibrating, or Testing, appropriate subclasses for the application of computer data processing in measuring, calibrating, or testing, particularly subclass 119 for program loading or creating in a testing system, subclass 123 for program setup in a testing system, and subclasses 176 through 178 for a time duration or rate measurement system.
703, Data Processing: Structural Design, Modeling,
Simulation, and Emulation, subclasses 23-28 for emulation, per se.
714, Error Detection/Correction and Fault Detection/Recovery, for error detection/correction not related to software program development and in particular subclasses 799-824 directed to fault locating, subclasses 15 through 24 for state recovery such as re-executing instructions in a computer process, subclass 34 for generating a halt, clock, or interrupt signal in the detection of a fault, subclass 35 for substituting or adding an instruction in the detection of a fault, and subclasses 37 through 39 for analyzing outputs, state, or design in the detection of a fault including computer software faults.

Subclass: 5 [Patents]

Program code translator or compiler:
This subclass is indented under subclass 1. Subject matter comprising means or steps for converting program code from one form to another.
(1) Note. The translation can vary in degree of complexity from a simple reordering of program code blocks or statements to reverse compiling from executable code to source code. The following are examples of program code translators:
(a) Interpreters -:{source code} -> the instructions are interpreted and executed one instruction at a time.
(b) Compiler -{source code} -> {object code}.
(c) Reverse compilers -:{executable code}-> {source code}.
(d) Cross-compilers -:{code on a first system} ->{execution on a second system}.
(e) Cross platform -:{code for HOST1 (e.g., IBM)} -> {Code for HOST2 (e.g., VAX)}.
(f) Cross language -:{source code in a first language; e.g., Pascal} -> {source code in a second language; e.g., "C" }.

SEE OR SEARCH THIS CLASS, SUBCLASS:
6 compiling code for a parallel or multiprocessor system.
7 for translation of computer code using an intermediate form or language.
8 for analyzing syntax, data, or an expression of computer code for compilation.
9 for optimization of computer programs.

SEE OR SEARCH CLASS:
341, Coded Data Generation or Conversion, appropriate subclasses for A-to-D/D-to-A converters or D-to-D converters (e.g., BCD-to-decimal).
703, Data Processing: Structural Design, Modeling, Simulation, and Emulation, subclasses 23-28 for emulators and emulation of a program or device.
704, Data Processing: Speech Signal Processing, Linguistics, Language Translation, and Audio Compression/Decompression, subclasses 1-10 for parsers and syntax checkers for linguistic and natural language applications (e.g. parsing, grammatical rules, etc.).
707, Data Processing: Database and File Management, Data Structures, or Document Processing, subclass 4 for database query language translators (e.g., SQL to QBE) and for compilers of embedded SQL database query statements (nonprocedural language).
716, Data Processing: Design and Analysis of Circuit or Semiconductor Mask, subclasses 1-18 for "silicon compilers" \'20(i.e., tools used in the design and analysis of integrated circuits).

Subclass: 6 [Patents]

Compiling code for a parallel or multiprocessor system:
This subclass is indented under subclass 5. Subject matter for analyzing and compiling code which is intended for execution on a parallel or multiprocessor system.
(1) Note. For the purpose of this definition, the code is generally analyzed for parallel sections, multiprocessor execution relationships, and parallel or cooperative data dependencies. Code is then compiled to create one or more programs for a parallel, cooperative, or distributed data processing system.

SEE OR SEARCH THIS CLASS, SUBCLASS:
9 for optimizing compilers.

SEE OR SEARCH CLASS:
708, Electrical Computers: Arithmetic Processing and Calculating, subclasses 200-714 for calculating and computing systems for performing arithmetic operations.
709, Electrical Computers and Digital Processing Systems: Multiple Computer or Process Coordinating, subclass 100 for
identifying and dealing with run-time dependencies between executing programs, tasks, and processes (e.g., data dependencies, control flow dependencies, etc.), particularly subclasses 200 through 253 for a distributed data processing system.

Subclass: 7 [Patents]

Translation using an intermediate form or language:
This subclass is indented under subclass 5. Subject matter wherein at least two levels of code conversion are performed during the conversion of program code from an initial form to a target form.
(1) Note. For the purpose of this definition, it is not required that the program code in the target form be executable code.
(2) Note. Classification here is proper even if an intermediate form of the code is produced during a transitional process of code translation from the initial form to the target form. However, for the purpose of these definitions, a symbol table generated by a multipass compiler is not considered to be an intermediate code form and is classified with compilers, per se.
(3) Note. Linkers are not found in this subclass. See the SEE OR SEARCH THIS CLASS, SUBCLASS notes below.

SEE OR SEARCH THIS CLASS, SUBCLASS:
5 for generating symbol tables by a compiler.
10 for linking object code.

SEE OR SEARCH CLASS:
707, Data Processing: Database and File Management, Data Structures, or Document Processing, subclass 523 for format transformation of document types.
709, Electrical Computers and Digital Processing Systems: Multiple Computer or Process Coordinating, particularly subclass 305 for dynamic linking.

Subclass: 8 [Patents]

Analyzing syntax, data, or an expression for compilation:
This subclass is indented under subclass 5. Subject matter wherein the grammar of a code form is analyzed before compilation for compliance with established rules of the code
form.
(1) Note. Products of preconversion analysis functions are manipulated and refined code forms. Therefore, a concept search for code refinement techniques, per se, may include a search in the preceeding related translation subclasses, per se.
(2) Note. This subclass is for subject matter directed to grammar analysis in the environment of software programming and development tools. Parsers and syntax checkers for linguistic and natural language applications (e.g., parsing, grammatical rules, etc.) are classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(3) Note. This subclass is for subject matter directed to grammar analysis of procedural languages in the environment of software programming and development tools. Database query language translators (e.g., SQL to QBE) and compilers of embedded SQL database query statements (nonprocedural language) are classified elsewhere. See the SEE OR SEARCH CLASS notes below.

SEE OR SEARCH THIS CLASS, SUBCLASS:
5 for code translators and compilers.
7 for code translation using an intermediate form.

SEE OR SEARCH CLASS:
704, Data Processing: Speech Signal Processing, Linguistics, Language Translation, and Audio Compression/Decompression, subclasses 1-10 for parsers and syntax checkers for linguistic and natural language applications (e.g., parsing, grammatical rules, etc.).
707, Data Processing: Database and File Management, Data Structures, or Document Processing, subclass 4 for database query language translators (e.g., SQL to QBE) and for compilers of embedded SQL database query statements (nonprocedural language).

Subclass: 9 [Patents]

Optimization (e.g., removing redundancy):
This subclass is indented under subclass 8. Subject matter comprising means or steps for making program code compilation or execution more efficient with respect to a performance parameter such as speed, memory usage, or other resource usage.
(1) Note. This subclass is for optimizing compilers. For the purpose of this definition, it should be understood that
optimization steps may occur during any phase of the compilation. And, if a compiler does not perform an optimization, its code would still run, however, not as efficiently as code that has been optimized with respect to a parameter or set of parameters. Further, for the purpose of this definition, a "fast" compiler is considered to be an optimizing compiler in this subclass.
(2) Note. This subclass is for optimizing compilers. Classification is proper here if the compiler addresses some specified performance cost function. For example, optimizing should be to reduce or eliminate redundant code, redundant arithmetic operations, or unnecessary memory accesses. These types of optimizations result in a smaller executable target program. In contrast, optimizing to decrease target program execution time by using inline code to eliminate the overhead of function calls will satisfy speed requirements but result in a much larger executable program. Generic systems dealing with cost functions and optimization of processes, per se, are classified elsewhere. See the SEE OR SEARCH CLASS notes below.

SEE OR SEARCH CLASS:
709, Electrical Computers and Digital Processing Systems: Multiple Computer or Process Coordinating, subclass 100 for identifying and dealing with run-time dependencies between executing programs, tasks, processes (e.g., data dependencies, control flow dependencies, etc.).

Subclass: 10 [Patents]

Linking:
This subclass is indented under subclass 1. Subject matter comprising means or steps for joining files or libraries of object code to create executable program code.
(1) Note. For the purpose of this definition, processes for linking include resolving address data references and external references between separate files or libraries of object code to create an executable program.
(2) Note. Static linking is classified in this subclass, since images of all linked object files and object libraries become an integral part of the executable program. Dynamic linking of objects during program execution is classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(3) Note. The subject matter of this subclass is directed to linking object code to create an executable program. The linking of related data, objects, text data (e.g., hypertext), and other information which is intended for graphical display is classified elsewhere. See the SEE OR SEARCH CLASS notes below.

SEE OR SEARCH CLASS:
345, Computer Graphics Processing, Operator Interface Processing, and Selective Visual Display Systems, subclass 346 for linking of related data, objects, text data (e.g., hypertext), and other information which is intended for graphical display.

Subclass: 11 [Patents]

SOFTWARE INSTALLATION AND VERSION MANAGEMENT OF AN OPERATING SYSTEM, APPLICATION PROGRAM, OR OTHER EXECUTABLE PROGRAM:
This subclass is indented under the class definition. Subject matter comprising manual or automated means or steps implemented on one or more target computers for installing an operating system, application program, or other executable program; or, version management of an operating system, application program, or other executable program.
(1) Note. The subject matter for this subclass is limited to installation and version management of executable programs and operating systems. As evidenced by the many notes which follow, the generic concept version management is classified in different classes under various titles, such as document version management, file and database maintenance, and managing source code. Therefore, a concept search for version management, per se, should include consideration of these related topics in the other classes. See the SEE OR SEARCH CLASS notes below.
(2) Note. Version management includes checking for compatibility between specific versions of application programs and operating systems. Means and steps for making systems compatible with one another, per se, are classified in different classes under topics such as emulation, peripheral configuring, peripheral adapting, network computer configuring, and digital data processing system initialization and configuration, per se (e.g., initializing, setup, configuration, and resetting). A concept search on the topic of compatibility should consider these related areas in the other classes. See the SEE OR SEARCH CLASS notes below.
(3) Note. For the purposes of this definition, "installation" is defined as a one-time loading event which occurs only when a new version of an operating system or application program is updated and released.
(4) Note. For the purpose of this definition, the installation of software includes the local and remote loading or copying of an operating system, application program, or other executable program onto a target storage medium such as a hard disk, tape drive, or memory device; and version management includes keeping track of the installed
version of an operating system, application program, or other executable program.
(5) Note. This subclass is directed to the processes for installing and managing versions of software. Medium for delivering software, per se, such as punched cards, paper or magnetic tapes, magnetic and optical disks, pluggable modules, cartridges and cards, networks, and memories are classified in the appropriate device class. When claimed in combination with installation they are classified here.
(6) Note. This subclass accepts generic updating and upgrading of software locally or over a network. However, purchasing software over a network divorced from installation or upgrading is classified elsewhere. See the SEE OR SEARCH CLASS notes below.
(7) Note. The identification of the specific hardware and/or software resources required by a particular version operating system or application program is also properly classified here. However, recovering from faults in digital data processing systems, locating faults, or detecting faults in digital data processing systems to ensure reliability and availability is classified elsewhere. See the SEE OR SEARCH CLASS notes below.

SEE OR SEARCH THIS CLASS, SUBCLASS:
3 for source code version management under software development which may include UNIX utilities such as SCCS (Source Code Control System) and RCS (Revision Control System).

SEE OR SEARCH CLASS:
703, Data Processing: Structural Design, Modeling, Simulation, and Emulation, subclasses 23-28 for emulation of system components.
705, Data Processing: Financial, Business Practice, Management, or Cost/Price Determination, appropriate subclasses for automated financial or business practice or management systems including purchasing software over a network.
707, Data Processing: Database and File Management, Data Structures, or Document Processing, subclass 8 for database concurrency, subclasses 200 through 206 for file and database maintenance systems including data coherency in database systems, particularly subclass 203 for version management of nonexecutable files and databases.
709, Electrical Computers and Digital Processing Systems: Multiple Computer or Process Coordinating, subclasses 220-222 for network computer configuring.
710, Electrical Computers and Digital Data Processing
Systems: Input/Output, subclasses 8-14 for peripheral configuring and subclasses 62 through 74 for peripheral adapting.
713, Electrical Computers and Digital Processing Systems: Support, subclass 1, 2, and 100 for digital data processing system initialization and configuration/reconfiguration, per se.
714, Error Detection/Correction and Fault Detection/Recovery, particularly subclasses 2-24 for fault recovery, per se.


Information Products Division -- Contacts

Questions regarding this report should be directed to:

U.S. Patent and Trademark Office
Information Products Division
PK3- Suite 441
Washington, DC 20231

tel: (703) 306-2600
FAX: (703) 306-2737
email: oeip@uspto.gov


[Top] [Manual of Classification, Class Listing] [Manual of Classification, Class 717] [Classification Definitions, Class Listing] [USPTO Home Page]

Last Modified: 6 October 2000