View profile

大山姆的機機車車™ #8

Revue
 
我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。 ༺ 意見調查結果 ༻ 上一期提到我在編《C++ 世界的學習指南》時遇到的難題,謝謝讀者的回
 
May 1 · Issue #8 · View online
《大山姆的機機車車™》電子報
我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。
༺ 意見調查結果 ༻
上一期提到我在編《C++ 世界的學習指南》時遇到的難題,謝謝讀者的回饋。有一點蠻有趣:有人覺得有 C 語言基礎,對於指標、陣列等有概念因此比較容易上手 C++。有人覺得懂 C 的人對 C++ 多型(Polymorphism)、虛擬函式(Virtual Function)適應不良(冠希?)。
語法方面,C++ 的保留字(Keywords)不算少,而且同一個符號在不同情境有不同的意義。這點程式設計老手可能習以為常,但對新手來說卻是學習障礙。
再來就是函式多載(Function Overloading),連運算子(Operator,例 +, -, ==, >)也可以多載的 C++,這點也有可能提高理解既有程式碼的難度。再加上 Call by Value, Call by Reference, Call by Pointer…,造成多載函式的推導更為複雜。
還有公認高學習門檻的 C++ Template 以及泛型編程,Template Meta-Programming 聽起來很「秋」,學起來可能痛苦三個月還不得其門而入…
C++ 這麼複雜,一定很難學,為什麼要學這種程式語言?我的看法是:
  1. 效能榨汁機
  2. 自己嚇自己
高階語言一字排開,C++ 在當代「電腦效能榨汁機」排名前段班,而且真正跨平台又不對效能妥協。
C++ 雖難,學會她卻是百分之百可能的任務。只要用對方法,下足苦心,半年就會有滿意的成果。
再次感謝讀者回饋,我很喜歡這樣的互動。Happy coding!

人物誌
Phil Nash (@phil_nash)
參兩摘
ACCU Conference - YouTube
Stack vs Heap Memory in C++
East End Functions : Level of Indirection
Unforgettable Factory Registration · Nir's blog
我有 xx 經驗,願意無償提供 OO 咨詢
去年有人在推特發起了「我有 xx 經驗,願意無償提供 OO 咨詢。」串連,成效不錯,Compiler Explorer 的開發者也參一腳,他的專業領域是金融、遊戲、行動裝置以及後端
Matt Godbolt
A semi-regular reminder that my DMs are open, and I'd love to offer advice to anyone who thinks I might have useful things to say. In my career I've done mostly C++ in finance, games, mobile devices and servers...AMA :) My email address is easy to find if you prefer that too!
10:31 PM - 23 Apr 2018
摘影片
C++ Edinburgh: Phil Nash — Modern C++ Testing with Catch2
Phil Nash 到 JetBrains 後持續開發與推廣 Catch。這支影片也提到了 Clara Command Line Parser。
C++ Edinburgh: Phil Nash — Modern C++ Testing with Catch2
The Clang AST - a Tutorial
延續 Clang 主題,應該不少人覺得 Clang 又肥又大,因為它本身就是龐大的演算法庫,其中一個是 Clang AST 。這場影片是官方文件, Clang AST 樹節點主要分為四種:型態宣告實作敘述
編譯器流程可以看 Morgan Wilde 的演講 A Brief Introduction to LLVM 。 Scanner 處理正則文法產生標記,Parser 分析上下文無關文法產生抽象語意樹,之後才是轉成中介碼,中介碼之後才會開始做優化。
中英對照:正則文法(regular grammar)、上下文無關文法(context-free grammar)、標記(token)、抽象語意樹(abstract syntax tree)
By Sidney Niu
The Clang AST - a Tutorial
CppCon 2017: Herb Sutter “Meta: Thoughts on generative C++”
延續編譯時期決定的主題, 並不是所有的超編程都是圖靈完備,但 C++ 的樣板已經是圖靈完備。 Herb Sutter 開場先提了 Three-way comparison(<=>) 符號說明好的語法是更簡單但功能更強。接著透過 constexpr 說明編譯時期決定與執行時期碼可以互轉的抽象層次思考,最後以 Metaclass 的概念帶入 C++20 concept 的設計理念。
中英對照:超編程(Metaprogramming)、圖靈完備(Turing-complete)
By Sidney Niu
CppCon 2017: Herb Sutter “Meta: Thoughts on generative C++”
開源專案
Clara: A simple to use, composable, command line parser for C++ 11 and beyond
WorkFlowy Tips
[108] 讓作家及譯者專心工作的好撇步—善用 Ghost Bullets 以及 Completed Items
想知道更多 WorkFlowy 撇步,請快步前往 WorkFlowy Tips 。還沒有 WorkFlowy 帳號?請用此連結申請,加倍免費清單上限。
還有還有,我在臉書開了一個以 WorkFlowy 為主題的社團——山姆的 WorkFlowy 大小撇步現在人很少,快來助拳!
💌 喜歡這一期的內容,請幫我按「👍」。不喜歡請按「👎」,並寫下你認為哪裡做得不好,你的回饋是我進步的動力。想要匿名舉報的話,我開了一個 Sarahah,歡迎使用,謝謝!
本報內含 Affiliate Link 連結若干,也就是我有機會從中獲益,賺點奶粉錢,希望有朝一日能因此日進斗金(誤)。若對這樣的作法有疑慮,請讓我知道或者直接退訂也行,我不會介意,你請別生氣。☯
5, 4, 3, 2, 1, Launch!(賴床戒斷法)
在大腦有機會「說服」你繼續睡之前,讓火箭發射吧!另外一則影片也是類似的概念。「懶惰」與「拖延」是大魔王不是小囉嘍,請用盡全力克服!
How to Make Better Life Decisions in 5 Seconds
Did you enjoy this issue?
If you don't want these updates anymore, please unsubscribe here
If you were forwarded this newsletter and you like it, you can subscribe here
Powered by Revue