YSC4230: Programming Language Design and Implementation
  • 1. Course Syllabus
  • 2. Software Prerequisites
  • 3. OCaml Style Guide
  • 1. HW1: Hellocaml
  • 2. HW2: X86lite
  • 3. HW3: LLVMlite compilation
    • 3.1. LLVMlite Specification
    • 3.2. Project Task
  • 4. HW4: Compiling Oat v.1
  • 5. HW5: Compiling Full Oat
  • 6. HW6: Data Flow Analysis and Optimizations
  • 7. Reading Project
YSC4230: Programming Language Design and Implementation
  • »
  • 3. HW3: LLVMlite compilation

3. HW3: LLVMlite compilation

To complete this project’s task, please read carefully the LVMlite specification. After that, follow the instructions in the backend.ml file of the project.

  • 3.1. LLVMlite Specification
    • 3.1.1. Overview
    • 3.1.2. Structure and Well-Formedness of Programs
      • 3.1.2.1. Program Structure
      • 3.1.2.2. Types
      • 3.1.2.3. Named Types
      • 3.1.2.4. Global Definitions
      • 3.1.2.5. Operands
      • 3.1.2.6. Instructions and Terminators
      • 3.1.2.7. Getelementptr Well-Formedness and Result Type
      • 3.1.2.8. Blocks, CFGs, and Function Definitions
    • 3.1.3. Abstract Machine
      • 3.1.3.1. Simple and Memory Values
      • 3.1.3.2. Machine Configurations
      • 3.1.3.3. Machine Execution
      • 3.1.3.4. Instructions
      • 3.1.3.5. Initial Configurations
      • 3.1.3.6. GEP Indexing
  • 3.2. Project Task
    • 3.2.1. Overview
    • 3.2.2. Getting Started
    • 3.2.3. Preliminary Steps
    • 3.2.4. LLVM Lite Specification
    • 3.2.5. Implementing the Compiler
    • 3.2.6. Testing and Debugging Strategies
    • 3.2.7. Graded Test Cases
    • 3.2.8. Grading
Previous Next

© Copyright 2021, Steve Zdancewic, Ilya Sergey.

Built with Sphinx using a theme provided by Read the Docs.