home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / compiler / 2268 < prev    next >
Encoding:
Text File  |  1993-01-28  |  7.8 KB  |  264 lines

  1. Newsgroups: comp.compilers
  2. Path: sparky!uunet!think.com!spdcc!iecc!compilers-sender
  3. From: tac@eos.ncsu.edu
  4. Subject: Architecture description languages for compilers?
  5. Reply-To: tac@eos.ncsu.edu
  6. Organization: Compilers Central
  7. Date: Tue, 26 Jan 1993 17:41:15 GMT
  8. Approved: compilers@iecc.cambridge.ma.us
  9. Message-ID: <93-01-194@comp.compilers>
  10. Keywords: architecture, VHDL
  11. References: <93-01-180@comp.compilers>
  12. Sender: compilers-sender@iecc.cambridge.ma.us
  13. Lines: 249
  14.  
  15. > I'm planning on doing some research in optimization and code generation
  16. > next quarter.  One of the topics I'm interested in is machine
  17. > descriptions--some vanilla way to describe the architecture of a machine
  18. > for purposes of code generation.  (Numbers of registers, addressing modes,
  19. > etc.)
  20.  
  21. Below, I've included some references dealing with machine description
  22. languages.  Some discuss the use of a description language more than the
  23. language itself.
  24.  
  25. > [There have been lots of architecture description languages over the years.
  26. > Whether any of them can be used to mechanically generate a compiler is
  27. > another question.  I suspect they'd be more useful for validation. -John]
  28.  
  29. This depends entirely on what you mean by "architecture description
  30. language".  I would define it as meaning a language that describes the
  31. behavior that a processor exhibits to an assembly language programmer
  32. independent of performance-only issues (since a single instruction set can
  33. have many different implementations at many different levels of
  34. performance).
  35.  
  36. Given this definition, I have been unable, after a very thorough search,
  37. to find a language which satisfies it (though I am working hard to correct
  38. this egrerious situation :-).  Hardware description languages (HDLs), such
  39. as VHDL, really describe high-level implementations of architectures, not
  40. the architectures themselves.  The difference is similar to that between a
  41. program in a high-level language and a program in assembly; they do the
  42. same thing, but the level of abstraction is substantially different
  43. (unless you are using C :-).
  44.  
  45. (I mention HDLs because it is trivially easy to find papers whose
  46. abstracts say "a new language for describing computer architectures" and
  47. whose bodies talk about gate-level logic specification.  Logic design is
  48. not computer architecture.)
  49.  
  50. Anyway, back to compilers.  Compiler generators need to know what
  51. instructions, addressing modes, etc., a processor has.  Unfortunately,
  52. HDLs provide no way of differentiating between instruction descriptions
  53. and arbitrary blocks of hardware.  Therefore, in the general case, it is
  54. not possible (the Halting Problem and all that mess) for a compiler
  55. generator to derive the necessary information from an HDL-based
  56. description.
  57.  
  58. Also, the machine descriptions found in the articles below don't really
  59. describe the machines, but rather the code generators.  However, this post
  60. is already too long.
  61.  
  62. --  todd cook
  63. --  tac@eos.ncsu.edu
  64.  
  65.  
  66. @article {TOPLAS:Ganapathi85,
  67.     author   = "Mahadevan Ganapathi and Charles N. Fischer",
  68.     title    = "Affix Grammar Driven Code Generation",
  69.     journal  = TOPLAS,
  70.     month    = oct,
  71.     year     = 1985,
  72.     pages    = "560-599"
  73.     }
  74.  
  75. @article {TOPLAS:Aho89,
  76.     author   = "Alfred V. Aho and Mahadevan Ganapathi and
  77.         Steven W. K. Tjiang",
  78.     title    = "Code Generation Using Tree Matching and Dynamic
  79.         Programming",
  80.     journal  = TOPLAS,
  81.     month    = oct,
  82.     year     = 1989,
  83.     pages    = "491-516"
  84.     }
  85.  
  86. @article {SWPE:Davidson89,
  87.     author   = "Jack W. Davidson and David B. Whalley",
  88.     title    = "Quick Compilers Using Peephole Optimization",
  89.     journal  = SWPE,
  90.     month    = jan,
  91.     year     = 1989,
  92.     pages    = "79-97"
  93.     }
  94.  
  95. @article {TOPLAS:Davidson84,
  96.     author   = "Jack W. Davidson and Christopher W. Fraser",
  97.     title    = "Code Selection through Object Code Optimization",
  98.     journal  = TOPLAS,
  99.     month    = oct,
  100.     year     = 1984,
  101.     pages    = "505-526"
  102.     }
  103.  
  104. @article {AI:Ganapathi88,
  105.     author   = "Mahadevan Ganapathi and Charles N. Fischer",
  106.     title    = "Integrating Code Generation and Peephole Optimization",
  107.     journal  = "Acta Informatica",
  108.     month    = jan,
  109.     year     = 1988,
  110.     pages    = "85-109"
  111.     }
  112.  
  113. @inproceedings {SCC:Davidson84,
  114.     author    = "Jack W. Davidson and Christopher W. Fraser",
  115.     title     = "Automatic Generation of Peephole Optimizations",
  116.     booktitle = SCC,
  117.     year      = 1984,
  118.     pages     = "111-116"
  119.     }
  120.  
  121. @inproceedings {SCC:Kessler84,
  122.     author    = "Robert R. Kessler",
  123.     title     = "Peep - An Architectural Description Driven Peephole
  124.         Optimizer",
  125.     booktitle = SCC,
  126.     year      = 1984,
  127.     pages     = "106-110"
  128.     }
  129.  
  130. @book {Cattell82,
  131.     author    = "R. G. G. Cattell",
  132.     title     = "Formalization and Automatic Derivation of Code
  133.         Generators",
  134.     publisher = "UMI Research Press",
  135.     year      = 1982,
  136.     note      = "QA268 C37 1982"
  137.     }
  138.  
  139. @article {TOPLAS:Cattell80,
  140.     author   = "R. G. G. Cattell",
  141.     title    = "Automatic Derivation of Code Generators from Machine
  142.         Descriptions",
  143.     journal  = TOPLAS,
  144.     month    = apr,
  145.     year     = 1980,
  146.     pages    = "173-190"
  147.     }
  148.  
  149. @article {TOPLAS:Davidson80,
  150.     author   = "Jack W. Davidson and Christopher W. Fraser",
  151.     title    = "The Design and Application of a Retargetable Peephole
  152.         Optimizer",
  153.     journal  = TOPLAS,
  154.     month    = apr,
  155.     year     = 1980,
  156.     pages    = "191-202"
  157.     }
  158.  
  159. @article {SWPE:Davidson84,
  160.     author   = "Jack W. Davidson and Christopher W. Fraser",
  161.     title    = "Register Allocation and Exhaustive Peephole Optimization",
  162.     journal  = SWPE,
  163.     month    = sep,
  164.     year     = 1984,
  165.     pages    = "857-866"
  166.     }
  167.  
  168. @article {SWPE:Davidson87,
  169.     author   = "Jack W. Davidson and Christopher W. Fraser",
  170.     title    = "Automatic Inference and Fast Interpretation of Peephole
  171.         Optimization Rules",
  172.     journal  = SWPE,
  173.     volume   = 17,
  174.     year     = 1987,
  175.     pages    = "801-812"
  176.     }
  177.  
  178. @inproceedings {PoPL:Ganapathi82,
  179.     author    = "Mahadevan Ganapathi and Charles N. Fischer",
  180.     title     = "Description-Driven Code Generation Using Attribute
  181.         Grammars",
  182.     booktitle = PoPL,
  183.     year      = 1982,
  184.     pages     = "108-119"
  185.     }
  186.  
  187. @article {CL:Hatcher91,
  188.     author   = "Philip J. Hatcher",
  189.     title    = "The Equational Specification of Efficient Compiler Code
  190.         Generation",
  191.     journal  = "Computer Languages",
  192.     volume   = 16,
  193.     number   = 1,
  194.     year     = 1991,
  195.     pages    = "81-95"
  196.     }
  197.  
  198. @inproceedings {PLDI:Fraser89,
  199.     author   = "Christopher W. Fraser",
  200.     title    = "A Language for Writing Code Generators",
  201.     booktitle= PLDI,
  202.     year = 1989,
  203.     pages    = "238-245"
  204.     }
  205.  
  206. @techreport {UVA:Davidson85,
  207.     author      = "Jack W. Davidson",
  208.     title       = "Simple Machine Description Grammars",
  209.     institution = "University of Virginia",
  210.     address     = "Department of Computer Science",
  211.     number      = "85-22",
  212.     year        = 1985
  213.     }
  214.  
  215. @inproceedings {PLDI:Giegerich90,
  216.     author   = "Robert Giegerich",
  217.     title    = "On the Structure of Verifiable Code Generator
  218.         Specifications",
  219.     booktitle= PLDI,
  220.     year = 1990,
  221.     pages    = "1-8"
  222.     }
  223.  
  224. @inproceedings {PLDI:Wendt90,
  225.     author   = "Alan L. Wendt",
  226.     title    = "Fast Code Generation Using Automatically-Generated
  227.         Decision Trees",
  228.     booktitle= PLDI,
  229.     year = 1990,
  230.     pages    = "9-15"
  231.     }
  232.  
  233. @inproceedings {PLDI:Bradlee91,
  234.     author   = "David G. Bradlee and Robert R. Henry and Susan J. Eggers",
  235.     title    = "The Marion System for Retargetable Instruction
  236.         Scheduling",
  237.     booktitle= PLDI,
  238.     year = 1991,
  239.     pages    = "229-240"
  240.     }
  241.  
  242. @phdthesis {UW:Bradlee91,
  243.     author   = "David G. Bradlee",
  244.     title    = "Retargetable Instruction Scheduling for Pipelined
  245.         Processors",
  246.     school   = "University of Washington",
  247.     address  = "Dept. of Computer Science and Engineering",
  248.     year     = 1991,
  249.     note     = "Available as Technical Report 91-08-07",
  250.     }
  251.  
  252. @inproceedings {CC:Despland90,
  253.     author   = "Annie Despland and Monique Mazaud and Raymond Rakotozafy",
  254.     title    = "PAGODE: A Back End Generator Using Attribute Abstract
  255.         Syntaxes and Term Rewritings",
  256.     booktitle= CC90,
  257.     year = 1990,
  258.     pages    = "86-105"
  259.     }
  260.  
  261. -- 
  262. Send compilers articles to compilers@iecc.cambridge.ma.us or
  263. {ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.
  264.