One of the main problems in debugging parallel programs is in determining how far a parallel program has executed when it crashes or stops. Even if the program dumps core files for all the parallel processes, the information is at such a low level that it is difficult to interpret...
Multiparadigm languages are languages that are designed to support more than one style of programming. Leda is a strongly-typed multiparadigm programming language that supports imperative, functional, object-oriented, and logic programming. The constraint programming paradigm is a declarative style of programming where the programmer is able to state relationships among some...
Understanding of techniques that can be used to develop software for various parallel machines has not fully matched the dramatic progress in hardware in recent years. Most parallel programming techniques have been closely tied to specific hardware. Different machines have different primitives and architectures. Programming and porting an application with...
When changes are made to programs - to enhance their functionality, to improve performance, to migrate from one language or machine to another, or to convert a serial program to parallel form - there is no easy way to verify that the changes maintain program correctness. Checking the final result...
In this project we have designed a new construction method for t error correcting constant weight codes. This method is an improvement over the existing codes in terms of information rate. The construction method is recursive as it is based on the observation that 2t error correcting code can be...
A good code generator must effectively utilize the registers provided by the target architecture. Although a number of register allocation techniques exist, few address the issues involved in multiple register banks and no known techniques exist for effectively using register banks of the same type that are associated with multiple...
The goal of this project was to investigate the addition of parameterized types to the Java programming language. Two different parametric polymorphism mechanisms were developed and compared. The first was a preprocessor and the second was a compiler.
Parameterized types allow a programmer to create generic programs. Much as a...
This paper presents a study of the distribution of assembly language instructions in two avionics software applications and the development of an information theoretic software complexity metric based on the study. The instructions were grouped into classes , e.g. load and store, arithmetic, jump, compare, etc. As expected the distribution...
Since its introduction in 1995 by Sun Microsystems, the Java programming language has been widely accepted by the software development community. Besides being a natural fit for Internet and World Wide Web (WWW) based applications, Java is also being used in other diverse application areas due to its simplicity, reduced...