Wheres My Compiler |
Без темы | ||
<< What is your favourite season | WHY ARE STEREOTYPES HARMFUL >> |
Картинок нет |
Автор: Jim Miller. Чтобы познакомиться с картинкой полного размера, нажмите на её эскиз. Чтобы можно было использовать все картинки для урока английского языка, скачайте бесплатно презентацию «Wheres My Compiler.ppt» со всеми картинками в zip-архиве размером 102 КБ.
Сл | Текст | Сл | Текст |
1 | Where’s My Compiler? Developer tools: | 27 | layouts Output may be code or graphic |
past, present, and future Jim Miller | designs. 2-Oct-15. Where's My Compiler? | ||
Software Architect, Developer Frameworks | 27. | ||
Microsoft Corporation (with help from | 28 | Mark-up Compilers. XML schema (or DTD) | |
Carol Eidt, Phoenix Project, Microsoft | Output: parser Output: deserializer | ||
Corporation). | Web-services Description (WSDL) Output: | ||
2 | Outline. What Is A Compiler? A Brief | proxy that parses input and dispatches | |
History of Developer Tools My First | Output: code to convert data structure to | ||
Compiler Compilers, compilers, everywhere. | XML (“serializer”) XAML (Windows | ||
2-Oct-15. Where's My Compiler? 2. | Presentation Framework) Output: parser | ||
3 | What Is A Compiler? A converter from | Output: executable code XSL. 2-Oct-15. | |
one representation (source code) to | Where's My Compiler? 28. | ||
another (executable code) Preserves (most | 29 | Outline. What Is A Compiler? A Brief | |
of) the meaning of the source One part of | History of Developer Tools My First | ||
a modern “tool chain” used to produce | Compiler Compilers, compilers, everywhere | ||
executable artifacts (applications). | Free-standing compilers Under the hood | ||
2-Oct-15. Where's My Compiler? 3. | Inside applications In the tool chain | ||
4 | A Compiler. Compiler. 2-Oct-15. | Inside libraries. 2-Oct-15. Where's My | |
Where's My Compiler? 4. | Compiler? 29. | ||
5 | Figures of Merit. Code Quality: how | 30 | Modern Hardware: CPU. Compile “machine |
efficient is the generated code? Speed and | code” to “micro code” CPU Architecture is | ||
Space: these aren’t independent, but they | the abstraction boundary RISC vs CISC is | ||
aren’t the same either Throughput: how | an old debate x86 and x64 are CISC on the | ||
fast is the code generated? Footprint: how | outside, RISC on the inside Part of the | ||
large is the compiler? 2-Oct-15. Where's | instruction cache Engineering note: an | ||
My Compiler? 5. | icache miss now often means a pause to | ||
6 | Outline. What Is A Compiler? A Brief | compile in addition to a memory fetch! | |
History of Developer Tools My First | Allows innovation in actual hardware while | ||
Compiler Compilers, compilers, everywhere. | still running existing code Chips | ||
2-Oct-15. Where's My Compiler? 6. | optimized for specific usage scenarios | ||
7 | 1950s: Just a Compiler, Please. The | Chips take advantage of materials science | |
compiler references a runtime, but the | advances Chips take advantage of new | ||
runtime is supplied by the OS at a fixed | internal architectures (multi-core). | ||
location in memory FORTRAN runtime: | 2-Oct-15. Where's My Compiler? 30. | ||
input/output formatting COBOL runtime: | 31 | Modern Hardware: Graphics. Graphics | |
also search and sort OS loader loads the | memory isn’t just for data Very | ||
compiler output into memory, transfers | sophisticated compilation steps Parallel | ||
control Address space is small (< 8K | execution with CPU Adapts to changing | ||
word), CPU is slow (< 1,000 | hardware organization Raster scan vs | ||
instructions/sec.) Figure of merit: Code | vector Resolution, speed, synchronization | ||
Quality Compiler must optimize code for | Adapts to predominant usage pattern | ||
space Compiler must optimize code for | Animation 3D Shading. 2-Oct-15. Where's My | ||
speed. 2-Oct-15. Where's My Compiler? 7. | Compiler? 31. | ||
8 | Inside the Compiler (in concept). | 32 | Outline. What Is A Compiler? A Brief |
Source Code. Front End. Back End. | History of Developer Tools My First | ||
Executable Code. 2-Oct-15. Where's My | Compiler Compilers, compilers, everywhere | ||
Compiler? 8. | Free-standing compilers Under the hood | ||
9 | Inside the Compiler (in concept). | Inside applications In the tool chain | |
Source Code. Back End. Executable Code. | Inside libraries. 2-Oct-15. Where's My | ||
2-Oct-15. Where's My Compiler? 9. | Compiler? 32. | ||
10 | Inside the Compiler (in concept). | 33 | Databases. SQL is a full programming |
Source Code. Front End. Linearize parse | language Compiled to intermediate form on | ||
tree Code Analysis Basic block analysis | client Intermediate form is passed to | ||
Control- and data-flow graph analysis | server for execution Server optimizes the | ||
Optimize (machine-independent) Redundant | intermediate form to produce an “execution | ||
and dead code elimination Code | plan” Query optimization Additional inputs | ||
restructuring Convert to executable code | include Size of tables Frequency of query | ||
Register allocation Peephole optimization | types Indexing information Outputs include | ||
Branch prediction and tensioning. Back | Executable code Temporary indexes | ||
End. Executable Code. 2-Oct-15. Where's My | Background indexing requests Updated | ||
Compiler? 10. | frequency information. 2-Oct-15. Where's | ||
11 | 1960s: Linkers. Programs are growing | My Compiler? 33. | |
in size Programs are built with libraries | 34 | Hardware Emulators. Object code | |
Libraries provide reusable code fragments | translation at runtime HP3000 to PA-RISC | ||
Virtual memory systems are invented Tool | in 1983 Vax to Alpha in 1990s 32-bit | ||
chain is in two stages Compile independent | programs on 64-bit hardware Alternate | ||
modules Combine the modules using a linker | hardware emulation Device emulators for | ||
Figure of merit: Code quality (speed). | everything from smart cards to cell phones | ||
2-Oct-15. Where's My Compiler? 11. | to iPod to pocket PCs JIT compilation | ||
12 | Tools: Compiler + Linker. Includes | trades start-up time for high performance | |
external references. Linker. 2-Oct-15. | execution Often, but not always, a good | ||
Where's My Compiler? 12. Executable Code. | trade-off. 2-Oct-15. Where's My Compiler? | ||
13 | 1970s: Symbolic Debugger. OS written | 34. | |
in high-level language Compilers provide | 35 | Code Analysis Tools. Analyzing API | |
sufficient code performance and low-level | surface Simple to do with front end ASTs | ||
access High-level languages provide large | “Remodularizing” implementation Requires | ||
runtime libraries in multiple units Static | static and dynamic dependency analysis – | ||
linker pulls only required units into a | normal compiler back end work Requires | ||
given program image Compiler exports | rebuilding the program, easily done using | ||
symbol table for use by debugger, not just | front end ASTs Race detection Instrument | ||
internal to front-/back-end Figure of | code at compile time Gather data as it | ||
merit: Code quality (speed). 2-Oct-15. | runs under high stress. 2-Oct-15. Where's | ||
Where's My Compiler? 13. | My Compiler? 35. | ||
14 | Compiler, Linker, Debugger. Running | 36 | “Tree Shakers”. Start with AST tree |
Program. Symbol table(s). Linker. | and appropriate dependency graph Pull AST | ||
Debugger. 2-Oct-15. Where's My Compiler? | nodes found starting at a given graph | ||
14. | node, recursively Convert resulting set of | ||
15 | 1980s: Dynamic Loading, Threading. To | AST nodes to appropriate output format | |
improve OS performance, by reducing | Example uses: Subset library based on | ||
physical memory pressure, read/only parts | initial set of types Statically link | ||
of libraries are shared between | subset of library for a given application. | ||
applications Loaded on first reference OS | 2-Oct-15. Where's My Compiler? 36. | ||
loader fixes up references to shared | 37 | Outline. What Is A Compiler? A Brief | |
libraries – just like the static linkers | History of Developer Tools My First | ||
Not all libraries are loaded into the same | Compiler Compilers, compilers, everywhere | ||
virtual address Concurrency issues | Free-standing compilers Under the hood | ||
addressed in programming languages Locks, | Inside applications In the tool chain | ||
monitors, events, polling Order of | Inside libraries. 2-Oct-15. Where's My | ||
operations visible across thread | Compiler? 37. | ||
boundaries Memory model semantics become | 38 | A Modern Interactive Development | |
an issue Ada™ introduces rendez-vous, | Environment (IDE). Code editor Knows the | ||
other languages have other constructs Tool | programming language, provides syntax | ||
chain Compiler(s) Linker Loader Symbolic | support and context-sensitive name lookup | ||
debugger Figure of merit: Code quality | Project system Tracks the public shape of | ||
(speed, but this is related to space). | components Tracks dependencies between | ||
2-Oct-15. Where's My Compiler? 15. | components Build system Orders clean-up, | ||
16 | OS Dynamic Loader. Running Program. | compile, and link operations Debugger | |
Includes fixups for shared code. Static | Allows inspection and modification of | ||
Linker. OS Loader. Debugger. Symbol | values at runtime Allows control | ||
table(s). 2-Oct-15. Where's My Compiler? | operations (e.g., breakpoint, continue, | ||
16. Image File. Image File. Image File. | restart) Dynamic Support Allows program | ||
17 | 1990s: JITs and Managed Runtimes. | modification interwoven with execution | |
Garbage Collection goes mainstream | (“edit and continue”) Global interaction | ||
Previously: LISP, APL, SmallTalk 1990s: | space (“read-eval-print loop”). 2-Oct-15. | ||
Java, Jscript, C#, VB Verification | Where's My Compiler? 38. | ||
requires runtime to analyze code | 39 | Compilers in the IDE (I). In the code | |
Verification is similar to front-end | editor Incrementally parses the code as it | ||
compiler work Can be done to native code, | is being entered. Note: must deal with | ||
but much simpler with an intermediate | incorrect syntax and partial programs. | ||
language Just-in-time (JIT) compilation | Suggests possible completions based on a | ||
increases performance over pure | symbol table. Note: symbol table must | ||
interpretation Typically by a factor of 5 | include external references maintained by | ||
to 15 Tool chain: split the compiler in | the project system. Refactoring operations | ||
two! Linearize the AST to create | require both syntactic and semantic | ||
Intermediate Language (IL) Save symbol | analysis. Note: refactoring requires | ||
table as “metadata” Reorder the chain | information maintained by the project | ||
Figures of merit: Throughput first, code | system. In the debugger Expression | ||
quality second. 2-Oct-15. Where's My | evaluation. 2-Oct-15. Where's My Compiler? | ||
Compiler? 17. | 39. | ||
18 | OS Dynamic Loader (repeat). Running | 40 | Compilers In the IDE (II). Dynamic |
Program. Includes fixups for shared code. | support Edit-and-continue Requires a full, | ||
Static Linker. OS Loader. Debugger. Symbol | incremental compiler For efficiency, it | ||
table(s). 2-Oct-15. Where's My Compiler? | also requires the ability to compress the | ||
18. Image File. Image File. Image File. | output as a “diff” between the original | ||
19 | OS Dynamic Loader (repeat). Compiler. | and the new code Interactive workspace | |
Running Program. Static Linker. OS Loader. | Like LISP, APL, SmallTalk, Python, etc. | ||
Debugger. 2-Oct-15. Where's My Compiler? | Requires a compiler or an interpreter -- | ||
19. Source Code. Front End. Back End. | really, a compiler front end to generate | ||
Object Code. Image File. | an AST combined with a tree walker to | ||
20 | Managed Runtime. Compiler. Compiler. | execute the tree. The compiler must be | |
Runtime. Running Program. OS Loader. | capable of generating code that uses code | ||
Dynamic Linker. Debugger. 2-Oct-15. | and objects resident in the evaluation | ||
Where's My Compiler? 20. Image File. Back | environment, which generally means a | ||
End. | reliance on reflection. 2-Oct-15. Where's | ||
21 | Managed Runtime. Compiler. Compiler. | My Compiler? 40. | |
Runtime. Running Program. OS Loader. | 41 | Compilers in the Linker. The linker | |
Dynamic Linker. Debugger. Metadata + | sees “the whole program”, so it’s better | ||
Intermediate Language. 2-Oct-15. Where's | positioned to do global analysis Solution: | ||
My Compiler? 21. Image File. Back End. | write a compiler Input language is object | ||
22 | 2000s: Reflection-based Computation. | file format (native code or IL) Output | |
Reflection: ability of a program to | language is OS image file format | ||
observe and possibly modify its structure | Optimizations: Aggressive in-lining across | ||
and behavior Compilers “preserve meaning” | module boundaries Code motion across | ||
but runtime reflection makes more | module boundaries Full type system | ||
information visible, so optimizations are | analysis (treat leaf types as sealed) | ||
more limited Metadata (symbol table) or | Issues: These flow graphs are *big* The | ||
equivalent needed at runtime, not just | linker doesn’t see the whole program | ||
compile/link time Interactive Development | (dynamic linking) Reflection and dynamic | ||
Environments (IDEs) Intellisense™ | linking reduce permitted optimizations Or | ||
Refactoring Interactive syntax analysis | require the ability to back out or | ||
Query Integration Builds expression trees | recompute optimizations at runtime. | ||
(ASTs) at compile time Runtime operations | 2-Oct-15. Where's My Compiler? 41. | ||
to combine and manipulate them Figures of | 42 | Profile-Guided Optimization. Idea: | |
merit: “Compiler” and “JIT compiler”: | Instrument the program, run it with | ||
throughput “Pre-JIT” compiler: balance of | typical loads, then re-optimize using this | ||
throughput and code quality. 2-Oct-15. | profiling data. (Similar to “Hotspot”) | ||
Where's My Compiler? 22. | Optimizations: Optimize only “hot” code | ||
23 | Runtime Reflection. Metadata (symbol | fragments So you can spend more time on | |
table). Running Program. Development | them Method and basic block reordering to | ||
Environment. OS Loader. Dynamic Linker. | increase code density Code reordering to | ||
Debugger. Metadata + Intermediate | optimize branch prediction and minimize | ||
Language. 2-Oct-15. Where's My Compiler? | “long” references Cache locality | ||
23. Source Code. Front End. Image File. | optimizations for data and code. 2-Oct-15. | ||
Back End. | Where's My Compiler? 42. | ||
24 | Outline. What Is A Compiler? A Brief | 43 | Outline. What Is A Compiler? A Brief |
History of Developer Tools My First | History of Developer Tools My First | ||
Compiler Compilers, compilers, everywhere. | Compiler Compilers, compilers, everywhere | ||
2-Oct-15. Where's My Compiler? 24. | Free-standing compilers Under the hood | ||
25 | 1970: Numbles. “Number puzzles for | Inside applications In the tool chain | |
Nimble minds” Column in “Computers and | Inside libraries. 2-Oct-15. Where's My | ||
Automation” Numble verifier written by | Compiler? 43. | ||
Stuart Nelson Input language: SEND + MORE | 44 | For the Developer. “Regular | |
====== MONEY Output: a program to try all | expression” parsing Grammar is usually | ||
possible values for letter assignments to | more powerful than regular expressions | ||
digits Handled +, -, *, and = Hand coded | Serialization and Deserialization Reflects | ||
in PDP-9 assembly language. 2-Oct-15. | on data type to be marshalled Generates | ||
Where's My Compiler? 25. | specialized code to convert to stream | ||
26 | Outline. What Is A Compiler? A Brief | format (serialization) or parse into | |
History of Developer Tools My First | in-memory format (deserialization). | ||
Compiler Compilers, compilers, everywhere | 2-Oct-15. Where's My Compiler? 44. | ||
Free-standing compilers Under the hood | 45 | For the Compiler Writer. | |
Inside applications In the tool chain | Parser-generators lex yacc AST tool kits | ||
Inside libraries. 2-Oct-15. Where's My | Microsoft is investing in this area | ||
Compiler? 26. | Provides integration into may aspects of | ||
27 | Special-Purpose Compilers. | the IDE Executable file format tool kits | |
Compile-to-hardware Aspect-Oriented | Queensland University of Technology | ||
Programming (AOP) weaver Parser finds new | PERWAPI Optimization tool kits Microsoft’s | ||
syntax to mark insertion points Back-end | Phoenix project. 2-Oct-15. Where's My | ||
inserts code snippets for different | Compiler? 45. | ||
aspects More generally: “assembly | 46 | Questions? 2-Oct-15. Where's My | |
rewriting” Work-flow and object design | Compiler? 46. | ||
languages Input may be textual or graphic | |||
Wheres My Compiler.ppt |
«Лондонский зоопарк» - «Путешествие в Лондонский зоопарк». A monkey. A squirrel. Внеклассное мероприятие по английскому языку. A horse. An elephant. A crocodile. A wolf. A parrot. Let’s go. An ostrich. A camel. A tiger.
«Вопросы на английском» - Русский язык очень красивый. Студенты. Грамматика. Сима говорит о письме. Что изучает студент. Ask what subjects the following people are studying. Французская история. Кирилл Петрович работает на филологическом факультете. Сима говорит обо мне. Я занимаюсь в библиотеке. Аргументы и факты. Интересная книга.
«Местоимения английского языка» - Pronouns. Open the breaks. Обстоятельство времени. Tom, don’t jump here. Translate into english. Past simple. Инфинитив. Строгий порядок слов. Абсолютная форма. Some flowers. He took care of himself. Grandfather. Simple tenses. Articles. Topic english tenses. Word order in english sentences. English-Russian crossroads.
«Animals in our life» - A sheep. Animals In danger. A hedgehog is one of the endangered animals. Endangered. Английский язык. Wild. Совершенствование навыков диалогической речи. Подготовительный этап. Very important role. Редкие животные. A dog. A statistic of endangered animals. There are three kinds of animals in the world.
«Отличия британского английского от американского» - Есть слова, которые пишутся по-разному. Почему стоит начать с классического английского. Сегодня американский английский распространен шире, чем британский. Разные слова, имеющие одно и то же значение. Фонетические различия. Значительное отличие британского английского от американского. Различное значение.
«Great Britain and Northern Ireland» - Andrew was first hoisted in 1512. The Tudor rose is the national floral emblem of England. Westminster Cathedral. Thames flows through London. Paul’s Cathedral. UK Royal Coat-of-Arms. The bascules will open to let ships pass through. Big Ben, the big clock tower, is the symbol of London. It is 245 m wide here.