Compiler 编译器代写

编译器课程的内容包括:

  • 理解编译原理和技术
  • 了解编译器的数据结构和算法
  • 熟悉编译器实现语言(如C)和汇编
  • 了解编译器优化技术
  • 学习实现编译器的工具,如Lex和Yacc
  • 学习如何编写有效的编译器
  • 了解如何使用可移植汇编和汇编器,以及他们如何与编译器一起使用
  • 了解如何使用虚拟机,以及它们如何与编译器一起使用

CIS 547 Dataflow Analysis

CIS 547 – Dataflow Analysis CIS 547 – Software Analysis Introduction to Software Analysis The LLVM Framework Random Input Generation Delta Debugging Statistical Debugging Dataflow Analysis Pointer Analysis Constraint-Based Analysis Dynamic Symbolic Execution Introduction to Software Analysis The LLVM Framework Software Specifications Random Testing Delta Debugging Statistical Debugging Dataflow Analysis – Part I Dataflow Analysis …

CIS 547 Dataflow Analysis Read More »

CS 6340 Software Analysis Lab 1 Fuzzing

Lab 1: Fuzzing Spring Semester 2020 Due: 27 January, at 8:00 a.m. Eastern Time Corresponding Lesson: Lesson 3 (Random Testing) In Part 1 you will implement a simple tool to automatically check for divide-by-zero errors in C programs at runtime. You will create an LLVM pass that will instrument C code with additional instructions that …

CS 6340 Software Analysis Lab 1 Fuzzing Read More »

CS 6340 Software Analysis Lab 2 Dataflow

Lab 2: Dataflow Fall Semester 2020 Due: 28 September, 8:00 a.m. Eastern Time Corresponding Lecture: Lesson 5 (Dataflow Analysis) This lab will familiarize you with writing static program analyses using the LLVM compiler infrastructure. LLVM is a collection of compiler and analysis toolchain utilities widely used in the software analysis community. You will use LLVM …

CS 6340 Software Analysis Lab 2 Dataflow Read More »

CS 6340 Lab 0 Introduction to LLVM

CS 6340 Software Analysis Lab 0 Lab 0: Introduction to LLVM Spring Semester 2020 Due: 20 January, at 8:00 a.m. Eastern Time This lab involves running and extending LLVM, a popular compiler framework for a large class of programming languages, that will be used to implement all the labs in this course. You will setup …

CS 6340 Lab 0 Introduction to LLVM Read More »

CS 6340 Lab 7 KLEE

CS 6340 Software Analysis Lab 7 KLEE Lab 7: KLEE Symbolic Execution Engine Fall Semester 2022 Due: 12 December, 8:00 a.m. Eastern Time Corresponding Lecture: Lesson 11 (Dynamic Symbolic Execution) The goal of this lab is to gain familiarity with a research based symbolic execution engine called KLEE. KLEE is a hybrid analysis engine built …

CS 6340 Lab 7 KLEE Read More »

CS 6340 Lab 4 Type Systems

CS 6340 Software Analysis Lab 4 Type Systems Lab 4: Type Systems Fall Semester 2022 Due: 24 October, 8:00 a.m. Eastern Time Corresponding Lecture: Lesson 8 (Type Systems) The goal of this lab is to experience the difference between untyped and strongly typed languages. Typescript is a strongly typed language built on top of the …

CS 6340 Lab 4 Type Systems Read More »

CS 6340 Lab 3 Datalog

CS 6340 Software Analysis Lab 3 Datalog Lab 3: Datalog Fall Semester 2022 Due: 17 October, 8:00 a.m. Eastern Time Corresponding Lecture: Lesson 7 (Constraint Based Analysis) Writing a constraint-based static analysis for C programs with LLVM and Z3. Approaching the same goals of “Lab 2: Dataflow” from a different direction. In this lab, you …

CS 6340 Lab 3 Datalog Read More »

CS 6340 Lab 5 CBI

CS 6340 Software Analysis Lab 5 CBI Lab 5: Cooperative Bug Isolation (CBI) Fall 2022 Semester Due: 7 November, 8:00 am Eastern Time Corresponding Lecture: Lesson 9 (Statistical Debugging) ¡ñ Enumerating basic blocks and instructions in a function: o http://releases.llvm.org/8.0.0/docs/ProgrammersManual.html#basic-inspection-and- traversal-routines ¡ñ Instrumenting LLVM IR o http://releases.llvm.org/8.0.0/docs/ProgrammersManual.html#creating-and-inserting- new-instructions ¡ñ Important classes o http://releases.llvm.org/8.0.0/docs/ProgrammersManual.html#the-function-class o https://cs6340.cc.gatech.edu/LLVM8Doxygen/classllvm_1_1CallInst.html …

CS 6340 Lab 5 CBI Read More »

CSE 3341 Project 3 CORE Interpreter

CSE 3341 Project 3 CORE Interpreter Overview The goal of this project is to build an interpreter for the Core language discussed in class. Your submission should compile and run in the standard environment on stdlinux. If you work in some other environment, it is your responsibility to port your code to stdlinux and make …

CSE 3341 Project 3 CORE Interpreter Read More »