U.S. PATENT AND TRADEMARK OFFICE
Information Products Division |
U.S. Patent Classification System - Classification Definitions
as of June 30, 2000
Patents classified in a subclass may be accessed by either clicking on
the subclass number
preceding each subclass definition or on the
" " 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
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
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
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
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
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
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
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
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
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
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
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
Last Modified: 6 October 2000