Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1998-01-20
2001-08-21
Powell, Mark (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S152000, C717S152000, C717S152000, C717S152000
Reexamination Certificate
active
06279151
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention is related to computer language compilers and particularly to program include statement processing.
2. Description of the Related Art
Computer language compilers are well known in the art. Basically, a compiler is a computer program that translates a computer source program into an executable program, or object program. The input to the compiler is source code, which is written in a source language such as C++. The output from the compiler is object code, which is itself executable machine code or is suitable for processing to produce executable machine code. Note that in general, the term “compiler” applies to programs written in high-level languages, and the terms “translator” and “assembler” apply to low-level computer languages or assembly languages. In this document, the term “compiler” is used to mean any and all of these things.
A source program may contain one or more preprocessor directives known as include directives or include statements. Each include statement directs the compiler preprocessor to replace the statement with the contents of a specified file, known as an include file. An include file is a source file that is used by including it (i.e., inserting it inline) in a program being compiled during the compiler preprocessing phase. Normally, include files contain common data format definitions, common constant definitions, common executable macros, or common subroutines.
Include files normally reside in libraries contained in specified subdirectories. An include statement may explicitly specify the library containing an include file by specifying a drive and path location. Otherwise, include file libraries are specified by compiler options that are known as include options. An include option is a compiler option (i.e., an optional compiler meta-statement) for specifying which program library or libraries to search for files specified in include statements. Include options function in a manner similar to PATH statements in DOS and its derivatives to specify a search path for locating files (in this case, include files).
Conventionally, when writing source code with include statements, the library containing the include files must reside on either a local drive or a connected network drive; “connected network” here means either a local area network (LAN) or other network in which LAN server disk drives or other disk drives can be accessed as if they were locally connected to each client system on the LAN. In an OS/2®, Window®, or DOS environment, the LAN server disk drives are referred to by a drive letter such as W: or Z:. In a UNIX®-based system, access to remote files is accomplished via a network file system (NFS) and is limited to disk drives attached to systems comprising the LAN. In both the above cases, a language compiler accesses the accessible disks as if they were locally attached.
As a result of this local access requirement for the include file libraries, two sets of expenses are incurred. First, software producers pay media and distribution costs for the (sometimes rather substantial) amounts of data written on disks or CD-ROMs that are used for product distribution. Second, users have to allocate substantial amounts of space on their personal computers to store the source libraries distributed with compilers and product application program interfaces (APIs). With the introduction of thin clients (cost-reduced computers having small amounts of memory and disk space that rely on a network to store most of their data), the situation becomes even more problematic.
Other reasons for dissatisfaction with the existing art relate to the practice of team software development. During development of software, programmers within a development team are conventionally given access to the same local area network (LAN) so that they can easily share their data. This practice is based on the paradigm ascribing most or all of the programmers in a team to a single company developing code.
With the widespread acceptance of the Internet and the emergence of virtual enterprises, this static team paradigm is being replaced with that of a dynamic, widely dispersed team of programmers, cooperating on a development project across vast distances, time zones, continents, etc., making it impossible to place all of the software developers on a single LAN. It is often necessary for a team of programmers to be able to access a common set of source libraries that, because of the distances involved, cannot be made available on any single LAN as a single instance.
A number of products (e.g., IBM TeamConnection) exist for software version management and group development, however, they either provide programmers with access to shared data within a LAN or replicate data among LANs or single nodes. Some way to access common source libraries is what is required.
SUMMARY OF THE INVENTION
Existing compilers do not automatically access a non-connected network destination (for example, an arbitrary Internet location outside of a local area network) that contains file libraries or other program elements, so these elements have to be separately transferred to the local system before the code can be compiled.
The present invention relates to a computer language compiler for translating a computer source program into an executable object program and contemplates a method and apparatus for operating the compiler to process include statements contained in the source program. In accordance with the invention, the compiler examines each include statement to determine whether it specifies an include file resident at a non-connected network location. If it does, the compiler establishes a connection with the network location and obtains the include file via the connection. The retrieved include file is then used for compiling the source code to create the object program.
The compiler may also receive as input one or more include options, each of which specifies an include file library containing one or more include files. In such a case, the compiler may initially examine each include option to determine whether it specifies an include file library resident at a non-connected network location. If it does, the compiler may establish a connection with the network location and obtain a list of the contents of the include file library via the connection.
The present invention allows the specification of either a Transmission Control Protocol/Internet Protocol (TCP/IP) address or name (to be resolved via a name server or local TCP/IP name resolution file) or a World Wide Web (WWW) uniform resource locator (URL) of a non-connected system that contains the libraries, source code, etc. required to properly compile the program under construction.
When the computer language compiler preprocessor encounters such a remote address specification, it calls a program which attempts to make the remote connection. If the remote connection is made, the source code/library specified is accessed via an appropriate protocol. These remote addresses are specified to the compiler via a compiler include option, just as it is done for local include paths currently.
A library definition file may be provided that contains a user ID/password, along with any other required parameters that may need to be specified, so that in the case of a protocol that has more complex access requirements, for example, the File Transfer Protocol (FTP), the compiler will know how to login and get the data it needs to include. Such a library definition file may also contain any information that may be necessary in case the remote library charges a fee for supplying remote include files, such as an account number to be charged.
REFERENCES:
patent: 5023907 (1991-06-01), Johnson et al.
patent: 5185860 (1993-02-01), Wu
patent: 5204897 (1993-04-01), Wyman
patent: 5339435 (1994-08-01), Lubkin et al.
patent: 5371852 (1994-12-01), Attanasio et al.
patent: 5386369 (1995-01-01), Christiano
patent: 5418957 (1995-05-01), Narayan
patent: 5437029 (1995-07-01), Sinha
patent: 549934
Breslau Franklin C.
Greenstein Paul G.
Rodell John T.
International Business Machines - Corporation
Kinnaman, Jr. William A.
Powell Mark
Vo Ted T.
LandOfFree
Method and apparatus for remote source code inclusion does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for remote source code inclusion, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for remote source code inclusion will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2522247