Extra Concepts Introduced Compilation Issues Source

Extra Concepts Introduced Compilation Issues Source

Extra Concepts Introduced Compilation Issues ● General Compilation Issues ● Source Language ● Bootstrapping ● Target Language ● Testing and Maintenance ● Evaluation Criteria ● Current Research Areas in Compilers Source Language Issues Target Language Issues ● Size of the language ● Maturity of the architecture ● Stability of the language – Architectural problems may exist. – May be extensions to the architecture. ● Design of the intermediate language – Need to parameterize some decisions. ● size of data types ● alignment requirements ● argument evaluation order Bootstrapping Evaluation Criteria ● Bootstrapping involves using the facilities of the source language to compile the compiler. ● Compiler Speed ● A compiler is characterized by three languages. ● Generated Code Quality 1. S - the source language that it compiles – execution time – code size 2. T - the target language it generates – energy usage 3. I - the language in which it is implemented ● Error Diagnostics ● Can be represented with a T diagram. ● Portability – retargetability – rehostability Or with text: S I T ● Maintainability Cross Compiling Compiling a New Language ● A cross compiler runs on one machine and produces target code for another machine. ● Can write a simple compiler that consists of a ● Example: A cross compiler that compiles subset S of L that executes on machine M and language L, is written in language L, and produces code for machine M. We can then use produces code for machine N. An existing this subset S to write a compiler that compiles L compiler compiles language L, executes on into M code. machine M, and generates code for machine M. Optimizing a Compiler Tools for Compiler Development ● We can use a compiler to compile itself to get a faster compiler. Say we have implemented a compiler that compiles source language S, written in ● makefiles source language S, and produces code for machine ● profilers M. We also have access to another compiler for S that produces poor code p for machine M (call it ● source-level debuggers Mp) and executes slowly (Mp). ● cross-reference generators ● static checkers Current Research Areas in Compilers Testing and Maintenance ● Need a large test suite to attempt to verify the ● Programming language support correctness of a compiler. ● Computer architecture support ● Maintenance requires ● Static analysis – Good programming style ● Memory management – Good documentation ● Program understanding support – Configuration management ● Tuning applications ● Dynamic compilation Programming Language Support Exploiting Architectural Features ● Support for new/popular programming languages ● Instruction level parallelism – Java, C#, PHP, Python, Ruby – VLIW, SIMD ● Domain-specific languages and tools ● Thread level parallelism – multicore, distributed computing, grid computing ● Support for specialized and low power, embedded processors – DSPs, GPUs, ASIPs Static Program Analysis Memory Management Support ● Dependence analysis ● Optimizations to improve memory hierarchy performance on static data. ● Points-to analysis ● Dynamic memory management ● Interprocedural analysis – Explicit storage reclamation – Garbage collection Program Understanding Support Tuning Applications ● Source code analysis ● Techniques ● Formal methods – Autotuning – ● Verifying security properties Iterative compilation – Continuous compilation ● Performance analysis ● Optimization space exploration ● Profiling – Phase and parameter selection ● Debugging – Phase order Dynamic Compilation Systems ● Just-in-time compilation ● Dynamic optimizations.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    5 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us