看板 C_and_CPP 關於我們 聯絡資訊
可能是在很多環境都可以見到計算機, 讓你以為這是很好寫的程式, 計算機是很難的程式。 有興趣的話可以參考以下兩本書籍, 你就知道計算機的難度了, 特別推薦 Stroustrup 的書。 UNIX 编程环境 (Brian W.Kernighan, Rob Pike) 第八章在談一個計算機怎麼寫, 其中使 用了 lex, yacc。 Stroustrup Programming: Principles and Practice using C++ (這本有 Second Edition, 談及 c++11, c++14) 6, 7 章也在談怎麼寫一個計算機, 沒有使用 lex/yacc。 C++ 程序设计原理与实践 (Programming: Principles and Practice using C++ 的簡體 中文版本 - 第一版) p 109 提到: 「這是 50 年來的經驗, 想要一夜打破 50 年來的經 驗不是個好主意。」 ※ 引述《ljsnonocat2 (平凡是幸福)》之銘言: : 小弟新手最近剛開始入門程式 學C語言 : 之前想到寫計算機程式 要怎麼輸入算式 做加減乘除 : 一開始還在想要怎麼判讀算式裡面字串中有哪些數字與算符 : 再用switch case去分類運算 不過這樣搞得好像很複雜.... : 明明程式裡面 變數賦值等號後面就可以簡單做運算 : 要怎麼把輸入的算式編到程式裡??? : 後來看到某個網站 原來有這樣搞法.... : 用fprintf先產生一個臨時的.c原始碼檔 把算式當成參數寫進去... : 然後用system系統指令編譯這臨時.c檔並執行 ....原來可以這麼簡單orz : 想了好幾天的迷惑終於解開了 也分享給跟我想一樣問題的新手... : http://ideone.com/TMgjSC (參考範例) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.61.61 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1422856313.A.2BF.html
ljsnonocat2: 感謝回答 第一句就打中我的想法 我以為很簡單 02/02 15:11
ljsnonocat2: 但是實際要搞發現很難 剛好看到有偷吃步的做法XD 02/02 15:11
ljsnonocat2: 當然各位前輩提供的正統做法 我還得努力研究... 02/02 15:12
james732: 因為計算機已經可以算是interpreter了嗎? 02/02 21:27