分享到plurk 分享到twitter 分享到facebook

版本 09f3defcb1cb6331f1a9121817814fd31c3e8ca4

embedded/2015q3h4

Changes from 09f3defcb1cb6331f1a9121817814fd31c3e8ca4 to current

---
title: 2015q3 Homework #4
toc: no
...

預期目標
------------
- 驗證 [Week #5 課程](https://embedded2015.hackpad.com/ep/pad/static/83hsxgJZcZd)
- 學習動態編譯器
- 學習 code review
- 研究軟體最佳化

截止日期
-------------
* Oct 26, 2015 (含) 之前
* 越早在 GitHub 上有動態、越早接受 code review,評分越高

作業要求 (A)
----------------
* 難度:低 (適合之前 Homework #2 自認作不好的學生)
* 研究其他同學在 [Homework #2](/embedded/2015q3h2) 的[程式成果](https://embedded2015.hackpad.com/2015q3-Homework-2-y6EF1Im4GEr),選出對自己有啟發 (正面) 的兩份作業成果,以及認為應該改善 (負面 ) 的三份作業,需要評註與解說
    - 就事論事,不要怕得罪人,重點是提昇彼此的能力和視野
    - 一定要有出處
* 將成果整合到自己的實做中
    - 指出自己獲得的啟發、程式效能的改善
    - 說明自己為何兩週前進度落後
* 建立新的 Hackpad,列在「[作業區](https://embedded2015.hackpad.com/2015q3-Homework-4-8AvSmXDYC38)」
    - 標注「開發紀錄(A)」

作業要求 (B)
----------------
* 難度:中
* 詳讀 [Virtual Machine Constructions for Dummies](http://www.slideshare.net/jserv/vm-construct),改善 Brainf*ck 執行效能
    - 改善 JIT compiler,加入若干 optimization techniques
* 在 GitHub 上 fork [jit-construct](https://github.com/embedded2015/jit-construct)
    - 紀錄若干效能最佳化技巧帶來的提昇
* 建立新的 Hackpad,列在「[作業區](https://embedded2015.hackpad.com/2015q3-Homework-4-8AvSmXDYC38)」
    - 標注「開發紀錄(B)」

作業要求 (C)
-----------------
* 難度:中
* 將 [Rubi](https://github.com/embedded2015/rubi) 實做切換到 DynASM,並且設計效能評估機制,從而改善
    - 原本 x86 code generator 換成 [DynASM 語法](http://luajit.org/dynasm.html)
    - [The Unofficial DynASM Documentation](https://corsix.github.io/dynasm-doc/)
* 在 GitHub 上 fork [rubi](https://github.com/embedded2015/rubi)
    - 紀錄修改和效能分析
* 建立新的 Hackpad,列在「[作業區](https://embedded2015.hackpad.com/2015q3-Homework-4-8AvSmXDYC38)」
    - 標注「開發紀錄(C)」