252 210 compiler design fall 2015
play

252-210: Compiler Design Fall 2015 Thomas R. Gross - PowerPoint PPT Presentation

252-210: Compiler Design Fall 2015 Thomas R. Gross Computer Science Department ETH Zurich, Switzerland Rule 1 Peace in the lecture hall


  1. 252-­‑210: ¡Compiler ¡Design ¡ Fall ¡2015 ¡ Thomas ¡R. ¡Gross ¡ Computer ¡Science ¡Department ¡ ETH ¡Zurich, ¡Switzerland ¡

  2. Rule ¡1 ¡ ¡ ¡  Peace ¡in ¡the ¡lecture ¡hall ¡ ¡ ¡ 4 ¡

  3. Course ¡structure ¡  You ¡will ¡not ¡learn ¡this ¡material ¡from ¡lectures ¡alone ¡  Homework ¡essenDal ¡ 10 ¡

  4. Homework ¡  Core ¡element ¡of ¡the ¡course ¡  You ¡will ¡build ¡a ¡compiler ¡  More ¡on ¡this ¡topic ¡(organizaDon, ¡constraints, ¡etc) ¡tomorrow ¡ 11 ¡

  5. 1.0 ¡IntroducDon ¡  A ¡compiler ¡translates ¡a ¡program ¡wri[en ¡in ¡(programming) ¡ language ¡L 1 ¡into ¡(programming) ¡language ¡L 2 . ¡  Compilers ¡are ¡programs ¡  Implemented ¡in ¡some ¡programming ¡language ¡P ¡  Compilers ¡transform ¡programs ¡  Many ¡other ¡programs ¡include ¡(small) ¡compilers ¡ 16 ¡

  6. ObservaDons ¡  Languages ¡are ¡important ¡  Source ¡language ¡L 1 ¡  Target ¡language ¡L 2 ¡  Host ¡language ¡P ¡ ¡  Programs ¡can ¡be ¡“executed” ¡  Program ¡is ¡a ¡sequence ¡of ¡expressions ¡ ¡E 1 , ¡E 2 , ¡… ¡  A ¡processor ¡contains ¡state ¡  Each ¡expression ¡E i ¡may ¡read ¡state, ¡modify ¡state, ¡and ¡determine ¡next ¡ expression ¡E j ¡– ¡expression ¡execu+on ¡  A ¡special ¡expression ¡E stop ¡indicates ¡that ¡program ¡execu+on ¡stops ¡ 17 ¡

  7. Program ¡execuDon ¡  ExecuDon ¡(“elaboraDon”) ¡of ¡expressions ¡ ¡E 1 , ¡E 2 , ¡… ¡by ¡some ¡ machine ¡M ¡  Machine ¡M ¡defined ¡by ¡soVware ¡– ¡“virtual ¡machine” ¡  M ¡executed ¡L 1 ¡(or ¡L 2 ) ¡  Machine ¡realized ¡by ¡hardware ¡– ¡physical ¡processor ¡  …. ¡  Expressions ¡ ¡E 1 , ¡E 2 , ¡… ¡also ¡referred ¡to ¡as ¡“statements” ¡or ¡ “operaDons” ¡  ElaboraDon ¡someDmes ¡referred ¡to ¡as ¡ interpreta/on ¡  The ¡word ¡interpreta+on ¡some+mes ¡hints ¡at ¡“direct ¡execu+on” ¡ ¡ 18 ¡

  8. Issues ¡ ¡  Choices ¡for ¡L 1 ¡and ¡L 2 ¡ 19 ¡

  9. Issues ¡ ¡  Choices ¡for ¡L 1 ¡and ¡L 2 ¡  Program ¡wriZen ¡in ¡L 1 ¡(P L1 ) ¡translated ¡into ¡program ¡wriZen ¡in ¡ ¡L 2 ¡(P L2 ) ¡  ¡P L1 ¡  ¡P L2 ¡  Aspects ¡of ¡translaDon ¡of ¡programs ¡P L1 ¡  ¡P L2 ¡  When ¡does ¡it ¡mean ¡that ¡P L1 ¡is ¡a ¡“transla+on” ¡of ¡P L2 ¡  P L1 ¡should ¡produce ¡the ¡“same” ¡result ¡as ¡P L2 ¡ 24 ¡

  10. SemanDcs ¡  Describes ¡the ¡“meaning” ¡of ¡programs ¡  Meaning ¡of ¡program ¡defined ¡by ¡meaning ¡of ¡statements ¡or ¡ operaDons ¡  Opera+onal ¡seman+cs ¡  Abstract ¡machine ¡ ¡A ¡  Sequences ¡of ¡ ¡steps ¡interpreted ¡ ¡(“elabora+on”) ¡– ¡effect ¡on ¡A ¡determines ¡meaning ¡  Denota+onal ¡seman+cs ¡  Mathema+cal ¡construct ¡describes ¡effect ¡– ¡can ¡be ¡manipulated ¡(composi+on, ¡ projec+on, ¡…) ¡  Axioma+c ¡seman+cs ¡  Asser+ons ¡on ¡program ¡state ¡and ¡rules ¡that ¡describe ¡the ¡effect ¡of ¡opera+ons ¡ 25 ¡

  11. SemanDcs ¡  Translated ¡(target) ¡programs ¡P L2 ¡ has ¡the ¡same ¡meaning ¡as ¡ the ¡(source) ¡program ¡P L1 ¡  At ¡least: ¡computes ¡the ¡same ¡result(s) ¡for ¡all ¡legal ¡inputs ¡  Same: ¡must ¡be ¡defined ¡... ¡ ¡  What ¡about ¡illegal ¡inputs? ¡  What ¡about ¡non-­‑funcDonal ¡properDes? ¡ 27 ¡

  12. ComplicaDons ¡  L 1 ¡and ¡L 2 ¡have ¡different ¡resource ¡models ¡  L 1 : ¡ ¡no ¡limit ¡on ¡resources, ¡flexible ¡descripDon ¡  L 2 : ¡finite ¡resources, ¡inflexible ¡descripDon, ¡hardware-­‑based ¡ 32 ¡

  13. ComplicaDons ¡  L1: ¡ ¡no ¡limit ¡on ¡resources ¡  L2: ¡finite ¡resources, ¡ inflexible ¡descripDon, ¡  ∞ ¡number ¡of ¡variables ¡ hardware-­‑based ¡  ∞ ¡lines ¡of ¡code ¡  Fixed ¡number ¡of ¡registers ¡  ∞ ¡number ¡of ¡methods ¡  Limited ¡storage ¡  ∞ ¡data ¡space ¡  Finite ¡representa+on ¡  ∞ ¡nes+ng ¡  Machine ¡proper+es ¡maZer ¡  ∞ ¡characters ¡in ¡var ¡name ¡  Caches ¡  TLBs ¡  NUMA ¡  … ¡ 33 ¡

  14. Compiler ¡task: ¡Translate ¡P L1 ¡  ¡P L2 ¡  Management ¡of ¡resources ¡  PreservaDon ¡of ¡semanDcs ¡  Is ¡meaning ¡defined? ¡  For ¡all ¡possible ¡inputs? ¡  Check ¡constraints ¡on ¡P L1 ¡  Not ¡every ¡program ¡can ¡be ¡translated ¡  Not ¡every ¡aspect ¡can ¡be ¡checked ¡by ¡compiler ¡  Escape: ¡compiler ¡inserts ¡code ¡into ¡P L2 ¡to ¡check ¡proper+es ¡of ¡program ¡ during ¡execu+on ¡(“at ¡run+me”) ¡ 34 ¡

Recommend


More recommend