3M employee and church chorister Art Fry needed something to temporarily mark pages in his hymnal. He was in luck because his colleague, Spencer Silver, accidentally developed a glue that was too weak for other purposes. After initially discouraging consumer response, Post-it Notes became a hit in 1979.
Make the Most of Our Site
See this month's Top Inventors and Most Cited Patents.
Stay on top of the latest innovations by subscribing to an RSS feed.
Registered users: Manage your profile.
| Number | Title | Issue Date |
| 5799183 | Method of processing data batch transfer among the memories in a computer system having a hierarchical memory structure A method for optimizing a program by performing a data batch transfer between a first and second memories when data is read from the second memory into the first memory and when the data is written from the first memory into the second memory. The optimiz... | 08/25/1998 |
| 5758162 | Program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions A program translating apparatus is composed of a translation unit 103 and a link unit 108. The translation unit 103 includes a determination unit 105 which detects the stack size to be needed for each subroutine included in a source program to be translat... | 05/26/1998 |
| 5748965 | Language processing method for calculating optimum address of array A language processing method targeted at hardware having a data space greater than the data width of an architecture is improved in that address calculation of an array element is performed efficiently and the size of an object is reduced while the execut... | 05/05/1998 |
| 5721893 | Exploiting untagged branch prediction cache by relocating branches An untagged branch prediction cache is exploited by relocating branches during a final pass in the compilation process, after all other optimizations have been applied, where a pass is made over the instructions in each subprogram, and all branches that u... | 02/24/1998 |
| 5712996 | Process for dividing instructions of a computer program into instruction groups for parallel processing In order to be able to execute rapid processing of a program on super-scalar microprocessors, the individual instructions of this program must be divided into instruction groups, which can be processed by processing units of the microprocessor, in such a ... | 01/27/1998 |
| 5619702 | Method and apparatus for programming registers using simplified commands A method and apparatus for programming hardware registers using a database defining each hardware register and associated bit fields of the registers, input code including bit field write (BFW) commands identifying bit fields corresponding values to progr... | 04/08/1997 |
| 5613121 | Method and system of generating combined storage references A novel method and system for optimizing the instructions produced by a compiler comprises examining pairs of load and pairs of store instructions to determine whether a pair of load or a pair of store instructions may be replaced with a single load or st... | 03/18/1997 |
| 5603030 | Method and system for destruction of objects using multiple destructor functions in an object-oriented computer system A method and system for generating code to destroy objects is provided. In a preferred embodiment, a compiler generates a plurality of destructor functions for the class. Each destructor function performs a subset of the destruction process. The compiler ... | 02/11/1997 |
| 5590332 | Garbage collection, tail recursion and first-class continuations in stack-oriented languages Methods for implementing garbage collection, tail recursion and first-class continuations for advanced computer applications in a stack-oriented language. Objects, including assignable cells, subprogram closure objects and continuation objects, can be all... | 12/31/1996 |
| 5579520 | System and methods for optimizing compiled code according to code object participation in program activities A development system having a compiler, a linker, an interface, and a code packing optimization module is described. The compiler generates or "compiles" source listings into object modules, which may be linked or combined with other object modules (e.g.,... | 11/26/1996 |
| 5542075 | Method and apparatus for improving performance of out of sequence load operations in a computer system The invention provides for improved performance of out of sequence load operations. The system has an improved compiler, with an optimizer, an improved CPU with four new instructions in its instruction set, and an address compare unit (ACU). During compil... | 07/30/1996 |
| 5504914 | Multi-level instruction boosting method using plurality of ordinary registers forming plurality of conjugate register pairs that are shadow registers to each other with different only in MSB An instruction multi-level boosting method in a compiler has the step of providing a plurality of ordinary registers to act as the destination registers for access by the ordinary instructions. At least one instruction is boosted and speculatively execute... | 04/02/1996 |
| 5493675 | Compiler back end calling predetermined front end routines that use effect and dependency indicators to provide information to the compiler to determine the validity of an optimization A compiler framework uses a generic "shell" and a generic back end (where the code generator is target-specific). The generic back end provides the functions of optimization, register and memory allocation, and code generation. The code generation functio... | 02/20/1996 |
| 5490276 | Programming language structures for use in a network for communicating, sensing and controlling information An improved programming interface which provides for event scheduling, improved variable declarations allowing for configuration of declaration parameters, and improved handling of I/O objects. In modern day computing devices and especially in networks of... | 02/06/1996 |
| 5450313 | Generating local addresses and communication sets for data-parallel programs An optimizing compilation process generates executable code which defines the computation and communication actions that are to be taken by each individual processor of a computer having a distributed memory, parallel processor architecture to run a progr... | 09/12/1995 |
| 5428786 | Branch resolution via backward symbolic execution Possible values for a computed destination address of an execution transfer instruction are found by a backward search through a flowgraph of a program. During the search, a symbolic expression for the destination address is successively modified to refle... | 06/27/1995 |
| 5418959 | Instruction operation size optimization An improved optimizer, in conjunction with a set of initial instruction ordinal assignment policies, a set of instruction ordinal adjustment policies and a set of instruction ordinal to instruction operation size mapping policies, is provided to the code ... | 05/23/1995 |
| 5367651 | Integrated register allocation, instruction scheduling, instruction reduction and loop unrolling An improved register allocator, an improved instruction scheduler, an instruction combiner, and an improved loop unroller is provided to the code generator of a compiler of a computer system. Both the improved instruction scheduler and the improved loop u... | 11/22/1994 |
| 5361357 | Method and apparatus for optimizing computer file compilation A system and a method are described for optimizing the sequencing and time requirements for compiling large sets of source code residing in multiple hierarchical file directories using an abstracted logical description of the hierarchical file relations e... | 11/01/1994 |
| 5355492 | System for compiling parallel communications instructions including their embedded data transfer information The present invention is directed towards a compiler for processing parallel communication instructions on a data parallel computer. The compiler of the present invention comprises a front end, a middle end, an optimizer, and a back end. The front end con... | 10/11/1994 |
| 5347654 | System and method for optimizing and generating computer-based code in a parallel processing environment A system and method for optimizing statements to produce more efficient assembly language for use in a parallel processing environment. In doing this, the present invention separates elemental from non-elemental nodes in a statement, encapsulates the elem... | 09/13/1994 |
| 5339420 | Partitioning case statements for optimal execution performance This invention permits an optimizing compiler to select optimal instruction sequences for handling the source level multi-way branch, commonly known as the case or switch statement. A costing heuristic is established, based on machine specific information... | 08/16/1994 |
| 5202975 | Method for optimizing instruction scheduling for a processor having multiple functional resources A method for scheduling instructions for a processor having multiple functional resources wherein the reordering of the instructions is accomplished in response to a simulation of the run-time environment of the target machine. The simulation of the run-t... | 04/13/1993 |
| 5187789 | Graphical display of compiler-generated intermediate database representation The graphical display of compiler intermediate database representation is produced to function as an aid in the development of highly optimizing compilers, the inspection of the compiler-generated intermediate representation, and the analysis of the effec... | 02/16/1993 |
| 5179702 | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling An integrated software architecture for a highly parallel multiprocessor system having multiple tightly-coupled processors that share a common memory efficiently controls the interface with and execution of programs on such a multiprocessor system. The so... | 01/12/1993 |
| 5175856 | Computer with integrated hierarchical representation (IHR) of program wherein IHR file is available for debugging and optimizing during target execution A modular compilation system that utilizes a fully integrated hierarchical representation as a common intermediate representation to compile source code programs written in one or more procedural programming languages into an executable object code file. ... | 12/29/1992 |
| 5161216 | Interprocedural slicing of computer programs using dependence graphs Programs having multiple procedures are analyzed by creating a syst This invention was made with U.S. Government support awarded by the National Science Foundation (NSF), Grant #DCR-8603356 and PYI Award #DCR-8552602. The U.S. Government has certain rights in ... | 11/03/1992 |
| 5142679 | Method and apparatus for collecting execution status data of structured program Method and apparatus provide for collecting execution status data in the execution of an object program. In compiling a source program described in a structured format to an object program, a PROBE instruction for starting a data collecting program for co... | 08/25/1992 |
| 4961141 | Generating efficient code for a computer with dissimilar register spaces A compiler generates compiled object code from source code of a computer program in a manner that produces efficient object code for a computer with dissimilar register spaces. The technique comprising the steps of (1) generating code that references symb... | 10/02/1990 |