Browse Prior Art Database

Tool for Common Code Support between Two Robot Controllers

IP.com Disclosure Number: IPCOM000113545D
Original Publication Date: 1994-Sep-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 4 page(s) / 114K

Publishing Venue

IBM

Related People

Kishi, GT: AUTHOR [+2]

Abstract

The IBM 3495 uses a source code pre-processing tool to support two different levels of OEM robot controllers with the same original source code module. This tool additionally reduces translator overhead if required to allow larger source modules to be handled by the OEM supplied translator.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 45% of the total text.

Tool for Common Code Support between Two Robot Controllers

      The IBM 3495 uses a source code pre-processing tool to support
two different levels of OEM robot controllers with the same original
source code module.  This tool additionally reduces translator
overhead if required to allow larger source modules to be handled by
the OEM supplied translator.

      The IBM 3495 uses a OEM robot that is either attached to an
"OLD" OEM controller or a "NEW" OEM controller.  Each type of
controller uses a slightly different version of the same robot
language.  A programming methodology and a "program tool" that allows
a single source module to build code for both types of controllers
are described in this article.  In addition, symbol table size
problems arose using the "NEW" OEM supplied source code translator
that are also solved by the "program tool".

Two specific items are described:
  o  A method to use a common source module for two different
     languages that are similar - or two different versions of the
     same language that are different.
  o  A method to reduce language translator (and maybe compiler)
     symbol table and parsing requirements.

These features are provided as follows:
  o  Dual Language Support

      In the case of the "OLD" and "NEW" controllers, the basic
language is the same, but many individual functions and procedures
have changed, either in name, or the way they are invoked.
Therefore, the general code structure between the same program
written for the "OLD" and "NEW" controllers would look the same, with
numerous changes where different function or procedure calls are
required.

      In our case, we had a well tested "OLD" version of the code.  A
complete rewrite for the "NEW" would incorporate errors from improper
function/procedure substitution as well as typographical errors.

      Our method allows us to use the original "OLD" source module as
the basis for the common "OLD"/"NEW" source module, keeping the
investment previously made in the "OLD" code.  In addition, future
changes are made on one source module (instead of two) insuring code
integrity between "OLD" and "NEW" code in the field.

      A processing program OEMCRNCH has been written that inputs the
common source module and outputs a "NEW" source module and an "OLD"
source module.  This is done by using special tags in the source
code.
  o  #OLDSTART - #OLDEND

          Whenever source code is surrounded by this pair of tags,
    the included source is processed into the "OLD" output source
    file only.
  o  #NEWSTART - #NEWEND

          Whenever source code is surrounded by this pair of tags,
    the included source is processed into the "NEW" output source
    file only.
  o  Translator Overhead Reduction

      During the processing of the input source module to the output
source modules ("OLD" and "NEW"), the processing program compresses
the source...