Research Projects

apache/tvm Deep Learning Compilers, Graph-level IR, Automatic Differentiation.
Working on the TVM Unity compiler. Developed an algorithm of automatic differentiation (AD) and a training workflow in Relax IR.

Course Projects in my B.S.

Masterball Compiler Design, Java, LLVM, Compiler Optimization, Register Allocation, JIT.
A Compiler from a C++ & Java like to RV32I Assembly, with many optimizations on LLVM IR, e.g. ADCE, CSE, SCCP, LICP. Its performance is close to GCC O2 on testcases. Received a perfect score in two different compilation courses.
Also check out the sub-project for JIT (Just-in-time) complication. It's a virtual machine for LLVM (quite simple): [DarkSwordVM].
NightWizard Computer Architecture, Verilog, C++, FPGA, Out-of-order Execution.
A RISC-V CPU implemented in Verilog HDL. It uses Tomasulo algorithm for dynamic scheduling and supports at most 120MHz clock rate to pass all testcases. It runs on Basys3 FPGA Board (XC7A35T-ICPG236C). I modified the traditional framework of this course project so that it can operate two RAMs, which makes it possible to separate RAM into IRAM and DRAM.
And there are two simulators written in C++ for debugging and understanding the algorithms: [Simulator-Pipeline], [Simulator-Tomasulo]
fscape Operating System, File System, FUSE, Pure C
A File System Escape game. The file system is implemented by Linux FUSE. Use `cd` to move, find `exit` in this randomly generated file system. Welcome to try breaking the SPEEDRUN record if you are a proficient shell user!
Alice Model Checking, Linear Temporal Logic, C++
Alice is an [A]utomatic [Li]near Temporal Logic [C]hecking Syst[e]m implemented in C++. It implements serveral model checking algorithms described in class. And it can check the correctness of given LTL formulas.
DHTengu Go, Distributed Hash Table, P2P
DHTengu is "DHT (Distributed Hash Table)" + "Tengu (a supernatural spirit)". It implements two DHT protocols (Chord and Kademlia) in Go-lang. Then I developed a App based on it, which enables P2P file sharing and music playing.
Ticket System C++, Python, Web, Data Structure (B+ Tree)
A system for train ticket selling. It's the first collaborating projects in my B.S, which includes two part: Frontend (Web) and Backend (Database). For backend, the data query is implemented by the B+ Tree data structure; For frontend, we use Flask framework to develop a nice Web application for users.
Python3 Interpreter C++, Python, Antlr, Interpreter
A toy Python 3 Interprter written in C++. The frontend parser is powered by Antlr framework. It doesn't support all syntax of Python programming language。

Hobby Projects

ACM Class OnlineJudge Online Judge (OJ), Python, Web
Online Judge for students in SJTU. Previous maintainer.
CoconutJVM JVM, Interpreter, C++
A toy JVM (Java Virtual Machine) written in C++. Now it doesn't contain JIT complication so its execution engine is just a Java bytecode interpreter
Moment Chatbots, Python, Web, Tecent QQ
Chatbots in Multi-Platforms with multiple useful plugins. Supported Platforms: Linux Shell, QQ (Mirai), QQ (CQHTTP).
Frozen!C++, QT, Game
A survival game implemented in QT framework.
Sudoku-BreakerC++, Algorithm
Using Dancing-LinkX (DLX) algorithm to solve the Sudoku problem! Simple but beautiful.

Copyright© 2022 Chaofan Lin | Last Edited, Nov. 20, 2023 | Source code: Lambda, feel free to use and modify. 闽ICP备2022013458号