Abstract
Microprogramming has traditionally been done in assembly language because of the perceived need for fast execution; compiler technology does not yet exist for discovering and performing many of the clever tricks of an experienced microprogrammer. Unfortunately, programming at the machine-instruction level is both tedious and error-prone. A possible compromise between these two approaches is that of an interactive compiler, where the programmer guides the crafting of critical data structures and sections of code, while the compiler ensures that the resulting code has the same semantics as the original program, generates code where speed is not critical, and performs bookkeeping tasks. We are in the process of implementing a prototype of such a system. This paper describes the system being developed and discusses some of the key design issues.
- Bishop 82 G. Bishop, "Gary's Ikonas Assembler Version 2 Differences between GIA-2 and C,' Technical Report 82- 010, University of North Carolina (June 1982).Google Scholar
- Darlington 72 J. Darlington, A Semantic Approach to Automatic Program Zmprovment, PhD thesis, University of Edinburgh, Scotland (1972).Google Scholar
- Davidson 78 S. Davidson and B. Shriver, "An Overview of Firmware Engineering," IEEE Computer 11(5), pp, 21-34 (May 1978).Google Scholar
Digital Library
- Deak 81 E. Deak, "A Transformational Derivation of a Parsing Algorithm in a High-Level Language," IEEE Transuctions on Software Engineering SE-7(1), pp. 23-31 (January 1981).Google Scholar
Digital Library
- Goldberg 83 A. Goldberg and D. Robson, Smulltulk-80: The Language and its Implementation, Addison-Wesley, Reading, Massachusetts (1983). Google Scholar
Digital Library
- Kernighan 78 B.W. Kemighan and D.M. Ritchie, The C Programming Lunguage, Prentice-Hall, Englewood Cliffs, New Jersey (1978). Google Scholar
Digital Library
- Levy 84 B. Levy, "Microcode Verification Using SVDS - The Method and a Case Study," Proc. 17th Annual Microprogramming Workshop, pp. 234-245 (1984). Google Scholar
Digital Library
- Manna 74 Z. Manna, Mathematical Theory of Computution, McGraw-Hill, New York (1974). Google Scholar
Digital Library
- Marcus 84 L. Marcus, S.D. Cracker, and J.R. Landauer, "SDVS: A System for Verifying Microcode Correctness," Proc. 17th Annual Microprogramming Workshop, pp. 246- 255 (1984). Google Scholar
Digital Library
- Partsch 83 H. Partsch and R. Steinbruggen, "Program Transformation Systems," ACM Computing Surveys U(3), pp. 199-236 (September 1983). Google Scholar
Digital Library
- Patterson 76 D.A. Patterson, "STRUM: Structured Microprogramming System for Correct Firmware," IEEE Trunsuctions on Computers C-25(10), pp. 974-986 (October 1976).Google Scholar
Digital Library
- Shaw 81 M. Shaw, W.A. Wulf, and R.L. London, "Abstraction and Verification in Alphard: Iteration and Generators," pp. 71-116 in Alphard: Form and Content, Springer-Verlag, New York (1981).Google Scholar
- Torczon 85 L.M. Torczon, Compilation Dependencies in an Ambitions Optimizing Compiler, PhD thesis, Rice University (1985). Google Scholar
Digital Library
- Vegdahl 82 S.R. Vegdahl, Local Code Generation and Compaction in Optimizing Microcode Compilers, PhD thesis, Carnegie-Mellon University (1982). Google Scholar
Digital Library
- Wile 81 D. Wile, "Program Developments as Formal Objects," Technical Report, USC/ISI (1981).Google Scholar
Index Terms
The design of an interactive compiler for optimizing microprograms
Recommendations
The design of an interactive compiler for optimizing microprograms
MICRO 18: Proceedings of the 18th annual workshop on MicroprogrammingMicroprogramming has traditionally been done in assembly language because of the perceived need for fast execution; compiler technology does not yet exist for discovering and performing many of the clever tricks of an experienced microprogrammer. ...
Optimizing Compiler for the CELL Processor
PACT '05: Proceedings of the 14th International Conference on Parallel Architectures and Compilation TechniquesDeveloped for multimedia and game applications, as well as other numerically intensive workloads, the CELL processor provides support both for highly parallel codes, which have high computation and memory requirements, and for scalar codes, which ...
EPIC - a retargetable, highly optimizing Lisp compiler
SIGPLAN '86: Proceedings of the 1986 SIGPLAN symposium on Compiler constructionThe Experimental Portable Standard Lisp Compiler (EPIC) is a compiler testbed for experimentation with, and development of, Lisp compilation strategies. EPIC uses an architectural description of the target machine to increase portability, and performs ...






Comments