A new implementation of LSI, LSI++, seeks to solve the maintenance, portability, and efficiency problems of the Bellcore implementation while providing a great deal of flexibility to both the programmer and the user of an LSI system that incorporates LSI++. LSI++ provides an Application Programming Interface (API) that allows the programmer to create a variety of user interfaces that do not depend on the underlying implementation details of the LSI system. The programming interface allows LSI++ to be used in a variety of applications without modification and also allows LSI++ to take advantage of special features of the machine architecture (such as parallelism) without affecting the application-level code that uses it.