ccccourse / sp110b

課程:系統程式 -- 筆記、習題與報告
1 stars 50 forks source link

期中作業:請繳交一份《程式專案+報告》!2022/6/17 24:00 截止繳交 #1

Open ccckmit opened 2 years ago

ccckmit commented 2 years ago

從以下主題中擇一撰寫《程式專案+報告》,可以自製或研究他人專案

參考:https://github.com/ccc-c/c6/wiki/

  1. 自己寫一份小型的 C 語言的標準函式庫,例如:
    • 以 getc, putc 為基礎,寫出 gets/puts/scanf/printf/....
    • 自己寫一套記憶體管理的 malloc 與 free 函式庫
  2. 組譯器:
  3. 虛擬機:
    • 題目1:JIT, 把 c6 的虛擬機目的碼用 JIT 立即編譯的方式,轉成你 CPU 的機器碼後立刻執行
    • 題目2:JIT, 把 c6 的虛擬機目的碼用 JIT 立即編譯的方式,轉成只有 if, goto 的 C 語言,然後再呼叫 gcc 去編譯這個 c 語言檔案後執行。(例如:hello.o => hello.o.c => ./hello.o.o
    • 題目3:JIT, 把 c6 的虛擬機目的碼用 JIT 立即編譯的方式,轉成 LLVM 的中間碼 (文字檔或二進位都行),LLVM 去將中間碼轉成執行檔後執行。(例如:hello.o => hello.ir => ./hello.ir.o
    • 題目4:自製一個 RISC-V 的虛擬機,可以在你電腦的處理器上面執行。
  4. 編譯器:
  5. 解譯器:
    • 題目 1 :研究 minilisp 解譯器後寫成報告
  6. 作業系統:
  7. 網路程式 (web server, crawler, ftp client/server, telnet client/server, mail client/server, bbs client/server, 直播 client/server)
  8. 檔案系統
  9. 資料庫

注意事項:

  1. 若你有使用外部資源,或者圖片,請一定要標示 來源或套件名稱。
  2. 若你的程式碼 (C/ASM) 是修改自別人的,或者網路上的,也務必要聲明。
    • 我的程式是修改自 github 的 某某專案,網址為 ....
  3. 若你某個期末作業主要部分 (例如是個 Compiler),完全沒有用別人的東西,也請你標示出來
  4. 應該寫一份報告,說明你的程式設計原理與使用方式,就像 github 專案中的 README.md 那樣

若沒有宣告『來源』,會被嚴重扣分 (完全自創就請宣告完全自創)

另外,關於授權

README.md 一開頭一定要聲明『程式的原創性或修改來源』,否則會嚴重扣分,例如:

  1. 本程式修改自某某 github 專案 ...
  2. 本程式完全是原創作品,沒有修改自任何來源,也沒有剪貼自其他程式作品。

有引用外部文章或圖片時,請注意應使用合法授權的資料!

例如引用維基百科,應採用創作共用 CC:BY-SA 授權!

維基百科:CC BY-SA 3.0協議文本

最常用的方式是在專案下加一個 LICENSE 檔案,像這樣

https://github.com/cccriscv/mini-riscv-os/blob/master/LICENSE

Soober9260 commented 2 years ago

110910546 資工二 施威帆

OohelloworldoO commented 2 years ago

資工二 110910539 鄭智陽 https://github.com/OohelloworldoO/sp110b/wiki/middleTest

4YCAaaa commented 2 years ago

資工三 110710336 李思慧 https://hackmd.io/wAowO33dQUiM6_s1tOVMvQ

jenny126 commented 2 years ago

資工二 110910516 蔡宜潔

ccckmit commented 2 years ago

成績已結算上傳!