Microcode compaction is an essential tool for the compilation of high-level language microprograms into microinstructions with parallel microoperations. Although guaranteeing minimum execution time is an exponentially complex problem, recent research indicates that it is not difficult to obtain practical results. This paper, which assumes no prior knowledge of microprogramming on the part of the reader, surveys the approaches that have been developed for compacting microcode. A comprehensive terminology for the area is presented, as well as a general model of processor behavior suitable for comparing the algorithms. Execution examples and a discussion of strengths and weaknesses are given for each of the four classes of loc .al compaction algorithms: linear, critical path, branch and bound, and list scheduling. Local compaction, which applies to jump-free code, is fundamental to any compaction technique. The presentation emphasizes the conceptual distinction between data dependency and conflict analysis.
OverviewThe objectives of the workshop were to bring together researchers in object-oriented programming, review current research in this area, and explore the role of object-oriented programming in the design and realization of complex systems. The 35 participants presented about 30 papers on iaoguages, concepts, applications and theory of object-oriented programming. In addition, there were five break-out sessions on the following topics: Multiparadigm programming; Object-oriented databases; Inheritance; Concurrency; and Type theory.The papers in this issue are a representative sample of about half the presented papers but have been restricted in length for this SIGPIan Notices presentation. We have, however, included a complete set of abstracts from the meeting at the end of the papers in this issue. We have grouped the papers in this issue into three categories:Object-oriented systems, including extensions to concurrency, knowledge representation, graphical programming, and actors (7 papers) Concepts, including type-based versus instance-based inheritance, integration with block-structure, and layered system description (8 papers)Theoretical issues, including integration with functiooal and logical programming, and type theory (3 we=)
A dynamically microprogrammable processor called MATHILDA is described. MATHILDA has been designed to be used as a tool in emulator and processor design research. It has a very general micro-instruction sequencing scheme, sophisticated masking and shifting capability, high speed local storage, a 64-bit wide main data path, a horizontally encoded microinstruction, and other facilities which make it reasonably well suited for this purpose. This paper presents an overview of the MATHILDA system.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.