情報科学の「コンパイラ設計の理論」を独学で学べるYoutube動画まとめ。大学のオンライン講義で,プログラミング言語設計と実装の手法に入門
大学の情報科学で,「コンパイラ理論」「プログラミング言語設計」を学べるYoutube動画まとめ。
プログラミング言語のシンタックス分析,構文解析やコード最適化などを独学で入門できる。
スタンフォード大の講義動画
スタンフォード大のAlex教授によるレクチャー動画。
プログラミングの知識のある学部生に対して,
プログラミング言語の設計とコンパイラ理論について教えている。
最後のほうでは,Javaのコンパイラの実例やコード最適化の話も含む。
- 1. Compilers with Alex Aiken
- 2. 1 - 1 - 01-01_ Introduction -Compilers-Professor Alex Aiken
- 3. 1 - 2 - 01-02_ Structure of a Compiler-Compilers-Professor Alex Aiken
- 4. 1 - 3 - 01-03_ The Economy of Programming Languages -Compilers-Professor Alex Aiken
- 5. 2 - 1 - 02-01_ Cool Overview -Compilers-Professor Alex Aiken
- 6. 2 - 2 - 02-02_ Cool Example II -Compilers-Professor Alex Aiken
- 7. 2 - 3 - 02-03_ Cool Example III-Compilers-Professor Alex Aiken
- 8. 3 - 1 - 03-01_ Lexical Analysis-Compilers-Professor Alex Aiken
- 9. 3 - 2 - 03-02_ Lexical Analysis Examples -Compilers-Professor Alex Aiken
- 10. 3 - 3 - 03-03_ Regular Languages-Compilers-Professor Alex Aiken
- 11. 3 - 4 - 03-04_ Formal Languages-Compilers-Professor Alex Aiken
- 12. 3 - 5 - 03-05_ Lexical Specifications-Compilers-Professor Alex Aiken
- 13. 3 - 6 - DeduceIt Demo -Compilers-Professor Alex Aiken
- 14. 4 - 1 - 04-01_ Lexical Specification-Compilers-Professor Alex Aiken
- 15. 4 - 2 - 04-02_ Finite Automata -Compilers-Professor Alex Aiken
- 16. 4 - 3 - 04-03_ Regular Expressions into NFAs -Compilers-Professor Alex Aiken
- 17. 4 - 4 - 04-04_ NFA to DFA -Compilers-Professor Alex Aiken
- 18. 4 - 5 - 04-05_ Implementing Finite Automata-Compilers-Professor Alex Aiken
- 19. 5 - 1 - 05-01_ Introduction to Parsing -Compilers-Professor Alex Aiken
- 20. 5 - 2 - 05-02_ Context Free Grammars-Compilers-Professor Alex Aiken
- 21. 5 - 3 - 05-03_ Derivations-Compilers-Professor Alex Aiken
- 22. 5 - 4 - 05-04_ Ambiguity-Compilers-Professor Alex Aiken
- 23. 6 - 1 - 06-01_ Error Handling -Compilers-Professor Alex Aiken
- 24. 6 - 2 - 06-02_ Abstract Syntax Trees-Compilers-Professor Alex Aiken
- 25. 6 - 3 - 06-03_ Recursive Descent Parsing -Compilers-Professor Alex Aiken
- 26. 6 - 4 - 06-04_ Recursive Descent Algorithm-Compilers-Professor Alex Aiken
- 27. 6 - 5 - 06-05_ Left Recursion (9m11s).mp4
- 28. 7 - 5 - 07-05_ Bottom-Up Parsing-Compilers-Professor Alex Aiken
- 29. 7 - 6 - 07-06_ Shift-Reduce Parsing -Compilers-Professor Alex Aiken
- 30. 7 1 07 01 Predictive Parsing-Compilers-Professor Alex Aiken
- 31. 7 2 07 02 First Sets -Compilers-Professor Alex Aiken
- 32. 7 3 07 03 Follow Sets -Compilers-Professor Alex Aiken
- 33. 7 4 07 04 LL1 Parsing Tables -Compilers-Professor Alex Aiken
- 34. 8 - 1 - 08-01_ Handles-Compilers-Professor Alex Aiken
- 35. 8 - 2 - 08-02_ Recognizing Handles -Compilers-Professor Alex Aiken
- 36. 8 - 3 - 08-03_ Recognizing Viable Prefixes -Compilers-Professor Alex Aiken
- 37. 8 - 4 - 08-04_ Valid Items -Compilers-Professor Alex Aiken
- 38. 8 - 5 - 08-05_ SLR Parsing -Compilers-Professor Alex Aiken
- 39. 8 - 6 - 08-06_ SLR Parsing Example-Compilers-Professor Alex Aiken
- 40. 8 - 7 - 08-07_ SLR Improvements -Compilers-Professor Alex Aiken
- 41. 8 - 8 - 08-08_ SLR Examples -Compilers-Professor Alex Aiken
- 42. 9 - 1 - 09-01_ Introduction to Semantic Analysis -Compilers-Professor Alex Aiken
- 43. 9 - 2 - 09-02_ Scope -Compilers-Professor Alex Aiken
- 44. 9 - 3 - 09-03_ Symbol Tables-Compilers-Professor Alex Aiken
- 45. 9 - 4 - 09-04_ Types -Compilers-Professor Alex Aiken
- 46. 9 - 5 - 09-05_ Type Checking-Compilers-Professor Alex Aiken
- 47. 9 - 6 - 09-06_ Type Environments -Compilers-Professor Alex Aiken
- 48. 9 - 7 - 09-07_ Subtyping -Compilers-Professor Alex Aiken
- 49. 9 - 8 - 09-08_ Typing Methods-Compilers-Professor Alex Aiken
- 50. 9 - 9 - 09-09_ Implementing Type Checking -Compilers-Professor Alex Aiken
- 51. 10 - 1 - 10-01_ Static vs. Dynamic Typing -Compilers-Professor Alex Aiken
- 52. 10 - 2 - 10-02_ Self Type-Compilers-Professor Alex Aiken
- 53. 10 - 3 - 10-03_ Self Type Operations-Compilers-Professor Alex Aiken
- 54. 10 - 4 - 10-04_ Self Type Usage -Compilers-Professor Alex Aiken
- 55. 10 - 5 - 10-05_ Self Type Checking -Compilers-Professor Alex Aiken
- 56. 10 - 6 - 10-06_ Error Recovery -Compilers-Professor Alex Aiken
- 57. 11 - 1 - 11-01_ Runtime Organization -Compilers-Professor Alex Aiken
- 58. 11 - 2 - 11-02_ Activations -Compilers-Professor Alex Aiken
- 59. 11 - 3 - 11-03_ Activation Records -Compilers-Professor Alex Aiken
- 60. 11 - 4 - 11-04_ Globals and Heap -Compilers-Professor Alex Aiken
- 61. 11 - 5 - 11-05_ Alignment -Compilers-Professor Alex Aiken
- 62. 11 - 6 - 11-06_ Stack Machines -Compilers-Professor Alex Aiken
- 63. 12 - 1 - 12-01_ Introduction to Code Generation--Compilers-Professor Alex Aiken
- 64. 12 - 2 - 12-02_ Code Generation I -Compilers-Professor Alex Aiken
- 65. 12 - 3 - 12-03_ Code Generation II -Compilers-Professor Alex Aiken
- 66. 12 - 4 - 12-04_ Code Generation Example-Compilers-Professor Alex Aiken
- 67. 12 - 5 - 12-05_ Temporaries -Compilers-Professor Alex Aiken
- 68. 12 - 6 - 12-06_ Object Layout -Compilers-Professor Alex Aiken
- 69. 13 - 1 - 13-01_ Semantics Overview -Compilers-Professor Alex Aiken
- 70. 13 - 2 - 13-02_ Operational Semantics -Compilers-Professor Alex Aiken
- 71. 13 - 3 - 13-03_ Cool Semantics I-Compilers-Professor Alex Aiken
- 72. 13 - 4 - 13-04_ Cool Semantics II -Compilers-Professor Alex Aiken
- 73. 14 1 14 01 Intermediate Code -Compilers-Professor Alex Aiken
- 74. 14 2 14 02 Optimization Overview -Compilers-Professor Alex Aiken
- 75. 14 3 14 03 Local Optimization-Compilers-Professor Alex Aiken
- 76. 14 4 14 04 Peephole Optimization -Compilers-Professor Alex Aiken
- 77. 15 1 15 01 Dataflow Analysis -Compilers-Professor Alex Aiken
- 78. 15 2 15 02 Constant Propagation -Compilers-Professor Alex Aiken
- 79. 15 3 15 03 Analysis of Loops-Compilers-Professor Alex Aiken
- 80. 15 4 15 04 Orderings-Compilers-Professor Alex Aiken
- 81. 15 5 15 05 Liveness Analysis -Compilers-Professor Alex Aiken
- 82. 16 1 16 01 Register Allocation-Compilers-Professor Alex Aiken
- 83. 16 2 16 02 Graph Coloring -Compilers-Professor Alex Aiken
- 84. 16 3 16 03 Spilling -Compilers-Professor Alex Aiken
- 85. 16 4 16 04 Managing Caches -Compilers-Professor Alex Aiken
- 86. 17 1 17 01 Automatic Memory Management -Compilers-Professor Alex Aiken
- 87. 17 2 17 02 Mark and Sweep -Compilers-Professor Alex Aiken
- 88. 17 4 17 04 Conservative Collection 3m31s
- 89. 17 5 17 05 Reference Counting -Compilers-Professor Alex Aiken
- 90. 18 1 18 01 Java -Compilers-Professor Alex Aiken
- 91. 18 2 18 02 Java Arrays -Compilers-Professor Alex Aiken
- 92. 18 3 18 03 Java Exceptions -Compilers-Professor Alex Aiken
- 93. 18 4 18 04 Java Interfaces-Compilers-Professor Alex Aiken
- 94. 18 5 18 05 Java Coercions -Compilers-Professor Alex Aiken
- 95. 18 6 18 06 Java Threads -Compilers-Professor Alex Aiken
- 96. 18 7 18 07 Other Topics -Compilers-Professor Alex Aiken
インド英語によるレクチャー動画(1)
「Compiler Design」(コンパイラ設計)シリーズ。
ホワイトボードを使い,インド英語でレクチャーしている。
作者:Gate Lectures by Ravindrababu Ravula
- 1. Compiler Design lecture 1-- Introduction and various phases of compiler
- 2. Compiler Design Lecture2 -- Introduction to lexical analyser and Grammars
- 3. Compiler Design Lecture 3 -- Ambiguous grammars and making them unambiguous
- 4. Compiler Design Lecture 4 -- Elimination of left recursion and left factoring the grammars
- 5. Compiler Design Lecture 5 -- Introduction to parsers and LL(1) parsing
- 6. Compiler Design Lecture 6 -- Examples on how to find first and follow in LL(1)
- 7. Compiler Design Lecture 7 -- Construction of LL(1) parsing table
- 8. Compiler Design Lecture 8 -- Recursive descent parser
- 9. Compiler Design Lecture 9 -- Operator grammar and Operator precedence parser
- 10. Compiler Design Lecture 10 -- LR parsing, LR(0) items and LR(0) parsing table
- 11. Compiler Design Lecture 11 -- LR(0) pasing example and SLR(1) table
- 12. Compiler Design Lecture 12 -- Examples of LR(0) and SLR(1)
- 13. Compiler Design Lecture 13 -- Examples of LR(0) and SLR(1)
- 14. Compiler Design Lecture 14 -- CLR(1) and LALR(1) Parsers
- 15. Compiler Design Lecture 15 -- conflicts and examples of CLR(1) and LALR(1)
- 16. Compiler Design Lecture 16 -- Examples of CLR(1) and LALR(1) and comparison of all the parsers
- 17. Compiler Design Lecture 17 -- Syntax directed translation examples
- 18. Compiler Design Lecture 18 -- Examples of SDT
- 19. Compiler Design Lecture 19 -- S attributed and L attributed definitions
- 20. About the lectures
インド英語によるレクチャー動画(2)
NPTELでの情報科学の講義動画。
「Computer Science - Compiler Design」
Y.N.Srikant教授が講義している。
- 1. Mod-01 Lec-01 An Overview of a Compiler
- 2. Mod-02 Lec-02 An Overview of a Compilier-Part 2 and Run-Time Environments
- 3. Mod-02 Lec-03 Run-time Environments-Part 2
- 4. Mod-03 Lec-04 Run-time Environments-Part 3 and Local Optimizations
- 5. Mod-03 Lec-05 Local Optimizations-Part 2 and Code Generation
- 6. Mod-04 Lec-06 Code Generation
- 7. Mod-04 Lec-07 Code Generation-Part 2
- 8. Mod-05 Lec-08 Code Generation-Part 3 and Global Register Allocation
- 9. Mod-05 Lec-09 Global Register Allocation-Part 2
- 10. Mod-05 Lec-10 Global Register Allocation-Part 3 and Implementing Object-Oriented Languages
- 11. Mod-07 Lec-11 Implementing Object-Oriented Languages-Part2 and Introduction to Machine-Indep Opt.,
- 12. Mod-07 Lec-12 Introduction to Machine-Independent Optimizations-Part 2 Data-flow Analysis
- 13. Mod-08 Lec-13 Data-flow Analysis-Part 2
- 14. Mod-09 Lec-14 Data-flow Analysis - Part 3 Control Flow Analysis
- 15. Mod-09 Lec-15 Control Flow Analysis-Part2
- 16. Mod-10 Lec-16 Machine-Independent Optimizations
- 17. Mod-10 Lec-17 Machine-Independent Optimizations-Part 2
- 18. Mod-11 Lec-18 Machine-Independent Optimizations-Part 3 and Data-flow Analysis:Theoretical Foundation
- 19. Mod-11 Lec-19 Data-flow Analysis:Theoretical Foundation-Part 2 and Partial Redundancy Elimination
- 20. Mod-12 Lec-20 Partial Redundancy Elimination
- 21. Mod-13 Lec-21 The Static Single Assignment Form:Construction and Application to Program
- 22. Mod-13 Lec-22 The Static Single Assignment Form: Construction and Application to Program
- 23. Mod-13 Lec-23 The StaticSingle Assignment Form:Construction and Applicationto Program Optimizations
- 24. Mod-14 Lec-24 Automatic Parallelization
- 25. Mod-14 Lec-25 Automatic Parallelization-Part 2
- 26. Mod-14 Lec-26 Automatic Parallelization-Part 3
- 27. Mod-14 Lec-27 Automatic Parallelization-Part 4
- 28. Mod-15 Lec-28 Instruction Scheduling
- 29. Mod-15 Lec-29 Instruction Scheduling-Part 2
- 30. Mod-15 Lec-30 Instruction Scheduling-Part 3
- 31. Mod-16 Lec-31 Software Pipelining
- 32. Mod-17 Lec-32 Energy-Aware Software Systems
- 33. Mod-17 Lec-33 Energy-Aware Software Systems-Part 2
- 34. Mod-17 Lec-34 Energy-Aware Software System-Part 3
- 35. Mod-17 Lec-35 Energy-Aware Software System-Part 4
- 36. Mod-18 Lec-36 Just-In-Time Compilation and Optimizations for .NET CLR
- 37. Mod-19 Lec-37 Garbage Collection
- 38. Mod-20 Lec-38 Interprocedural Data-Flow analysis
- 39. Mod-21 Lec-39 Worst Case Execution Time
- 40. Mod-21 Lec-40 Worst Case Execution Time - Part 2