Giter VIP home page Giter VIP logo

bupt_projects's Introduction

BUPT_Projects

BUPT(Beijing University of Posts and Telecommunications) school projects index

The Course Design of Compiler Principle and Technology

  • Built using C++17/CMake
  • Use Flex & Bison for Scanner and SLR Parser
  • Implemented a GUI wrapper using Electron
    • Use Emscripten for a convenient WebAssembly library
  • 2 versions:
    • A hand-written DFA in pure C
    • flex version using regex matching
  • Implements yylex() API that resembles flex
  • implemented LL(1)/SLR(1) parser for a given grammar in C
  • use flex for scanner
  • hard-coded LR DFA table

Operating Systems

The labs includes:

  • use syscalls to write user-space utils like sleep, xargs, find
  • implements new syscalls including mmap(), symlink()
  • implements enhancements including copy on write, lazy allocation

Computer Networks

  • designed 3 versions of protocols: stop and wait, go back n, selective repeat
  • optimized version selective repeat reached theoretical value of efficiency
    • optimized by carefully select window size and max retries
    • designed a special NAK strategy to reduce latency

DNS relay server in C

  • supports A, AAAA local query and remote DNS server relay, which resembles dnsmasq (but without dhcp server functionality)
  • UDP query only. Implemented addr decompression but didn’t implement compression
  • Multithreading using pthread library

OOP: C++

  • built with C++14+CMake
    • taking advantages of OOP & templates & RAII
    • parallel with std::thread
  • interactive cli interface
  • Doc generation with Doxygen
  • use SQLite3 with SQLite ORM
  • use TCP sockets for connection(using http is not allowed)

bupt_projects's People

Contributors

sduby22 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.