從1+1=?談電腦軟體的相關理論課程

來源:互聯網
上載者:User
1+1=? 這是一個剛懂事的孩子的就會的問題,但是如果是遍程呢?
寫一個程式,算一個簡單運算的值? MS 比較簡單:
Cin >>a;
Cin>>b;
Return a +b;
這個程式簡單,簡單在只要你學過一門程式設計語言,你就能將它實現.
現在,我們的要求要變一下:輸入一個四則運算式子,去求它的值.
呵呵,這回不僅是1+1了,可能是1+1+2,甚至是1+2*2,現在,如果你只會程式設計語言,解決這樣一個問題就有些困難了,因為你要知道怎麼樣去判斷優先順序,怎麼樣去儲存中間結果.這時,除了程式設計語言,你要去學電腦理論中另一門基本的課程:資料結構,你要通過資料結構去實現中間結果的儲存和優先順序的判斷,說細一點,就是棧.
現在,當我們的要求進一步深化時,要加入sin cos,tan,以至於lg,開方等,如果再用一個棧去解決,去判斷,那麼會很困難,因為你需要大量的switch,這時,就要用到編譯原理的內容,因為這裡要涉及到對文法的處理,然而,學了資料結構,你是無法直接跳到編譯原理的,因為這中間你還有另一門課程,就是形式語言,學了它,你才不會被編譯原理中各種產生式嚇倒.

在這裡發這篇有些莫名奇妙的文章,是為了給各位朋友們提個醒,因為在程式員中,很多人或是半路出家,或通過職業陪訓,進入了IT這一行,或許,你會很多種程式設計語言,瞭解很多種架構,但是在工作了一斷時間後,會發現一些問題的解決無從下手,其實就是理論知識欠缺的緣故,這時,你就要去補習一下理論,更好的方式是,在遇到"瓶頸"之前,就去學一下,因為有些問題,如果書沒看到,你可能不知道他是用哪種理論解決的,比如,很多人對多線程頭疼,一運行就出問題,一同步就死結,自己弄好久也弄不明白,其實,線程的相關問題可以在作業系統中學到,隨便找一本作業系統,對線程同步的各種模型,如消費者/生產者,哲學家就餐等都會有很詳細的說明,而這種說明,肯定要比任何一個網頁上的資料更詳細.

要工作了,就寫這麼多 希望對大家有用.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.