Skip to content

Instantly share code, notes, and snippets.

@ashigeru
Created May 24, 2011 14:31
Show Gist options
  • Save ashigeru/988810 to your computer and use it in GitHub Desktop.
Save ashigeru/988810 to your computer and use it in GitHub Desktop.
Asakusa SCR #1 - draft

Flow:

  1. Syntax Analysis
  2. Semantic Analysis
  3. Code Generation

Models:

  1. Source Code
  2. Abstract Syntax Tree
  3. Semantic Graph
  4. Target Code
  • *.dmdl
  • DmdlParser
  • AstScript
  • DmdlAnalyzer
  • ModelDeclaration
  • JavaModelClassGenerator
  • *.java
  • *.java
  • javac (JDK)
  • TypeElement (javax.lang.model.element)
  • OperatorClassCollector
  • OperatorClass
  • OperatorClassEmitter
  • *Factory.java, *Impl.java

(by javac)

4-Layered:

  • Batch
    • Jobflow
      • External I/O
      • Stage (= MapReduce Job)
        • Map/Reduce
        • Shuffle

Flow:

  • Description Analysis (Batch DSL)
  • Semantic Analysis (transaction planning)
    • Description Analysis (Flow DSL)
    • Semantic Analysis (jobflow: stage planning)
      • Semantic Analysis (stage: shuffle planning)
        • Code Generation (Map/Reduce)
        • Code Generation (Shuffle)
      • Code Generation (stage)
      • Code Generation (external I/O)
    • Code Generation (jobflow)
  • Code Generation (batch)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment