Hybrid computer programming environment

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000, C717S152000, C717S152000

Reexamination Certificate

active

06314557

ABSTRACT:

FIELD AND BACKGROUND OF THE INVENTION
The present invention relates to computer programming language environments, and in particular, it concerns a system to facilitate the writing and debugging of assembly language programs.
Assembly language programming is a particularly difficult task for both the code writing and debugging phases of the programming process. High-level languages, such as C++, can be used to write programs which describe algorithms in terms of abstract symbols which are relatively close to human languages. Assembly languages, on the other hand, are mechanical in nature, and describe algorithms only in terms of simple microprocessor instructions. Therefore, assembly language programs are usually longer and more difficult to understand than programs written in high-level languages.
The debugging process is especially difficult for assembly language programming. Debugging is a process which involves testing a computer program for errors (bugs) which cause the program to give results not in accordance with its design specifications. Errors can result from flaws in the underlying algorithm used as the basis of a program, or from the incorrect execution of the algorithm. On seeing such erroneous results, software engineers find the sections of the computer program which contain the errors and rewrite them. The engineers then recompile the program and test it again. This debugging process is repeated until the errors are removed from the program.
The debugging process is relatively difficult for assembly language programs because the underlying algorithm is obscured by the large number of mechanical, microprocessor-specific instructions, whereas in high-level languages the underlying algorithm is easy to identify. Also, current assembly language programming environments do not provide many of the features commonly found in high-level programming environments. As an example, high-level languages and programming environments have numerous features that facilitate the handling of files stored on hard disks. These files can be used to store the results of test output produced by programs as they are being debugged.
Another problem with the debugging process for assembly language programs is that each assembly language has its own set of debugging programs, requiring software engineers to learn how to use a new set of debugging programs each time a new microprocessor is developed.
The most accurate tool to examine the execution of assembly language programs, an emulator, is a special hardware device that attaches directly to the microprocessor in which the assembly language is used, in order to continuously monitor the state of the inputs and outputs of the microprocessor. These devices are expensive, and are not always available in the early stages of microprocessor development, causing delays in software development.
European Patent Application 90114711 describes a specialized development computer which is used to translate control programs written in high-level languages to machine language, and transfer the machine language control programs to a development microprocessor. Although this does facilitate the development process somewhat, it does not provide for the writing, testing, and debugging of programs which include both high-level language and assembly language instructions in a single program. In addition, this development method requires specialized hardware and an extra development computer for the interface.
A more efficient system would require less specialized electronic hardware. Such a system would be implemented for use on general purpose personal computers, allowing companies to apply and take advantage of the existing personal computer skills of their staff for the tasks of writing and debugging assembly language programs. A more efficient system would also make all the tools in the competitive high-level programming language market available for use in assembly language programming.
There is therefore a need for a system that brings the ease of writing and debugging high-level language programs to assembly language programs.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a sophisticated assembly language programming environment that facilitates the writing and debugging of assembly language programs. This object is attained by providing a hybrid programming environment which can compile programs containing both high-level programming language instructions and assembly language programming instructions.
According to the teachings of the present invention there is provided a system for facilitating assembly language programming by providing a sophisticated hybrid programming environment comprising a module to parse input hybrid source code files containing at least one high-level instruction; a library of functions for defining at least one assembly-language instruction in the hybrid source code file from a corresponding high-level instruction; a module for translating the high-level instructions into machine language instructions according to said library; and a module to output the translated machine language instructions into an object file.
According to the teachings of the present invention there is also provided a method for handling hybrid source code files containing any number of high-level and assembly language instructions, comprising parsing input hybrid source code files containing at least one high-level instruction; converting assembly language instructions in a hybrid source code file into high-level language instructions; translating high-level instructions into machine language instructions; and compiling the translated machine language instructions into an object file.
According to the teachings of the present invention there is also provided a method for writing and debugging assembly language programs, comprising writing a source code file containing at least one high-level instruction; debugging a source code file containing at least one high-level instruction; substituting high-level instructions in the source code file with assembly language instructions; and debugging the resultant hybrid source code file containing both high-level and assembly language instructions.


REFERENCES:
patent: 5132972 (1992-07-01), Hansen
patent: 5175856 (1992-12-01), Dyke et al.
patent: 5179702 (1993-01-01), Spix et al.
patent: 5261055 (1993-11-01), Moran et al.
patent: 5392036 (1995-02-01), Klein
patent: 5404485 (1995-04-01), Ban
patent: 5408637 (1995-04-01), Shimizu
patent: 5430862 (1995-07-01), Smith et al.
patent: 5594890 (1997-01-01), Yamaura et al.
patent: 5668989 (1997-09-01), Mao
patent: 5740469 (1998-04-01), Yin et al.
patent: 5805893 (1998-09-01), Sproul et la.
patent: 5832273 (1998-11-01), Mizuse
patent: 5860008 (1999-01-01), Bradley
patent: 5933642 (1999-08-01), Greenbaum et al.
patent: 6014513 (2000-01-01), Voelker et al.
patent: 6021275 (2000-02-01), Horwat
patent: 6083278 (2000-07-01), Olson et al.
patent: 6141791 (2000-10-01), Takuma et al.
patent: 6173441 (2001-01-01), Klein
patent: 6233545 (2001-05-01), Datig
patent: 90114711.6 (1990-07-01), None
Title: Emulation Shortens time-to-market, Source Electronic Engineering Times, Jul., 1993, AN: 93: 751457.*
Title: Memory Efficient Software Synthesis from Data flow Graph, Dec., 1998. Source ACM, Author: Sng et al.*
Title: A Software Engineering experiment in Software Component Generation. author: Kieburtz et al, source; ACM, 1996.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Hybrid computer programming environment does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Hybrid computer programming environment, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Hybrid computer programming environment will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2580999

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.