Abstract
Because of poor tools, developing embedded systems can be unnecessarily hard. Machine descriptions based on register-transfer lists (RTLs) have proven useful in building retargetable compilers, but not in building other retargetable tools. Simulators, assemblers, linkers, debuggers, and profilers are built by hand if at all—previous machine descriptions have lacked the detail and precision needed to generate them. This paper presents detailed and precise machine-description techniques that are based on a new formalization of RTLs. Unlike previous notations, these RTLs have a detailed, unambiguous, and machine-independent semantics, which makes them ideal for supporting automatic generation of retargetable tools. The paper also gives examples of λ-RTL, a notation that makes it possible for human beings to read and write RTLs without becoming overwhelmed by machine-dependent detail.
Preview
Unable to display preview. Download preview PDF.
References
Bailey, Mark W. and Jack W. Davidson. 1995 (January). A formal model and specification language for procedure calling conventions. In Conference Record of the 22nd Annual ACM Symposium on Principles of Programming Languages, pages 298–310, San Francisco, CA.
Benitez, Manuel E. and Jack W. Davidson. 1988 (July). A portable global optimizer and linker. Proceedings of the ACM SIGPLAN ’88 Conference on Programming Language Design and Implementation, in SIGPLAN Notices, 23(7):329–338.
Cook, Todd and Ed Harcourt. 1994 (May). A functional specification language for instruction set architectures. In Proceedings of the 1994 International Conference on Computer Languages, pages 11–19.
Davidson, Jack W. and Christopher W. Fraser. 1980 (April). The design and application of a retargetable peephole optimizer. ACM Transactions on Programming Languages and Systems, 2(2):191–202.
Davidson, Jack W. and David B. Whalley. 1990 (May). Ease: An environment for architecture study and experimentation. In Proceedings of the 1990 ACM Sigmetrics Conference on Measurement and Modeling of Computer Systems, pages 259–260, Boulder, CO.
Emmelmann, Helmut, Friedrich-Wilhelm Schröer, and Rudolf Landwehr. 1989 (July). BEG — a generator for efficient back ends. Proceedings of the ACM SIGPLAN ’89 Conference on Programming Language Design and Implementation, in SIGPLAN Notices, 24(7):227–237.
Fauth, Andreas, Johan Van Praet, and Markus Freericks. 1995 (March). Describing instruction set processors using nML. In The European Design and Test Conference, pages 503–507.
Fernández, Mary F. 1995 (November). A Retargetable Optimizing Linker. PhD thesis, Dept of Computer Science, Princeton University.
Fraser, Christopher W., Robert R. Henry, and Todd A. Proebsting. 1992 (April). BURG—fast optimal instruction selection and tree parsing. SIGPLAN Notices, 27(4):68–76.
Intel Corporation. 1993. Architecture and Programming Manual. Vol. 3 of Pentium Processor User’s Manual. Mount Prospect, IL.
Larus, James R. and Eric Schnarr. 1995 (June). EEL: machine-independent executable editing. Proceedings of the ACM SIGPLAN ’95 Conference on Programming Language Design and Implementation, in SIGPLAN Notices, 30(6):291–300.
Larus, James R. 1990 (September). SPIM S20: A MIPS R2000 simulator. Technical Report 966, Computer Sciences Department, University of Wisconsin, Madison, WI.
Lipsett, R., C. Schaefer, and C. Ussery. 1993. VHDL: Hardware Description and Design. 12 edition. Kluwer Academic Publishers.
Milner, Robin, Mads Tofte, and Robert W. Harper. 1990. The Definition of Standard ML. Cambridge, Massachusetts: MIT Press.
Milner, Robin. 1978 (December). A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17:348–375.
Morrisett, Greg. 1995 (December). Compiling with Types. PhD thesis, Carnegie Mellon. Published as technical report CMU-CS-95-226.
Proebsting, Todd A. and Christopher W. Eraser. 1994 (January). Detecting pipeline structural hazards quickly. In Conference Record of the 21st Annual ACM Symposium on Principles of Programming Languages, pages 280–286, Portland, OR.
Ramsey, Norman and Jack W. Davidson. 1997 (November). Specifying instructions’ semantics using CSDL (preliminary report). Technical Report CS-97-31, Department of Computer Science, University of Virginia. Revised, May 1998.
Ramsey, Norman and Mary F. Fernández. 1997 (May). Specifying representations of machine instructions. ACM Transactions on Programming Languages and Systems, 19(3):492–524.
Ramsey, Norman and David R. Hanson. 1992 (July). A retargetable debugger. ACM SIGPLAN ’92 Conference on Programming Language Design and Implementation, in SIGPLAN Notices, 27(7):22–31.
Ramsey, Norman. 1996 (April). A simple solver for linear equations containing nonlinear operators. Software—Practice & Experience, 26(4):467–487.
Srivastava, Amitabh and Alan Eustace. 1994 (June). ATOM: A system for building customized program analysis tools. Proceedings of the ACM SIGPLAN ’94 Conference on Programming Language Design and Implementation, in SIGPLAN Notices, 29(6):196–205.
Stallman, Richard M. 1992 (February). Using and Porting GNU CC (Version 2.0). Free Software Foundation.
Thomas, Donald and Philip Moorby. 1995. The Verilog Hardware Description Language. 2nd edition. Norwell, USA: Kluwer Academic Publishers.
Wang, Daniel C., Andrew W. Appel, Jeff L. Korn, and Christopher S. Serra. 1997 (October). The Zephyr abstract syntax description language. In Proceedings of the 2nd USENIX Conference on Domain-Specific Languages, pages 213–227, Santa Barbara, CA.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ramsey, N., Davidson, J.W. (1998). Machine descriptions to build tools for embedded systems. In: Mueller, F., Bestavros, A. (eds) Languages, Compilers, and Tools for Embedded Systems. LCTES 1998. Lecture Notes in Computer Science, vol 1474. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0057790
Download citation
DOI: https://doi.org/10.1007/BFb0057790
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65075-1
Online ISBN: 978-3-540-49673-1
eBook Packages: Springer Book Archive