導航:首頁 > 源碼編譯 > 編譯原理非計算機專業

編譯原理非計算機專業

發布時間:2022-09-07 18:28:49

A. 非計算機專業為什麼學c語言知乎

對於題主的問題,我覺得有點大了,這個問題就好像我問一個學習金融的人這樣一個問題:對於非金融專業的學生,怎麼入門金融學?

OK,我先說說我對計算機的理解吧,因為我覺得這對學習計算機比較有好處。

我所認為計算機是什麼呢? 他是一種輔助設備,能夠拓展人類的能力。能夠輕易完成人類很難做到和很費時間和精力才能做到的事情。

Okey,理解說完了,開始干貨:

計算機分為硬體和軟體,硬體就是你看得見摸得著的,軟體是你看得見摸不著的。介於題主是想說入門,我就不推薦計算機有關硬體的東西了,我主要推薦的是軟體的方向。

通常對於計算機專業的人來說,了解計算機的硬體組成是非常有必要的。因為這不單單只是告訴你現象,還告訴你的本質。

學習計算機的軟體(還有硬體):首先,你要看一本叫《計算機科學技術導論》的書(事實上不管你專攻硬體還是軟體,這本書看看絕對沒錯),這本書包含了很多的基礎內容,
比如2進制(「計算機世界」的語言,計算機非常笨,哦,也就是cpu非常笨,只能明白01010101,其他的統統不知道),
計算機硬體的組成(運算器,控制器,存儲器,輸入輸出設備),
匯編語言(因為010101對於人類來說過於麻煩和難以理解,所以就把一段010101用幾個字母定義,例如「mov」),
然後就是c語言,一些很懶的使用匯編語言的程序員覺得匯編語言還是不夠方便,所以就發明了高級語言---c語言。(可以看出來計算機的發展史真的是一群很懶的人的奮斗史:),我希望有幸成為他們其中的一員。)
當然,裡面還說了很多其他的東西。

看完了《計算機科學技術導論》以後,好吧,這是開胃菜,正菜開始上桌了。

C++ 。推薦書目:《C++ primer》 ,C++是一門計算機高級語言,計算機語言是拿來干什麼的呢?就是和計算機交流的,你看,你和英國人說話要說英語,要和廣東人說粵語,要和荷蘭人說荷蘭語。一樣的道理。隨著「hello world」在那個黑黑的界面中顯示出來的時候,你甚至會懷疑:這TM就是編程?!
哦,這只不過是萬里長征中的第一步。後面還有好多有趣的東西呢。
你要開始了解什麼是變數,什麼是常量,什麼是循環,什麼是類,什麼是判斷語句,什麼是繼承,等等等等。
如果你學習完了語法部分(就是上述說的),那麼,恭喜你,基本上已經可以和別人說:我學過編程了。

好嘞,開始下一步:

因為題主的研究生是金融的,而且boss是做risk management的,那麼演算法就是必不可少的了。
《演算法藝術及信息學競賽》 這本書還不錯,介紹了一些基本的演算法(當然裡面不會告訴你怎麼進行風險管理,那是金融專業的事)。我只是粗略的過了一遍,所以就不獻丑了。不過研究演算法感覺就像在原始叢林裡面爬山,一般人進去就跪了,有了大量的經驗以後才能生還。

《數據結構》 ,在計算機科學或信息科學中,數據結構(英語:data structure)是計算機中存儲、組織數據的方式。通常情況下,精心選擇的數據結構可以帶來最優效率的演算法。(來自維基網路),這是修煉的內功心法之一。

《操作系統》,了解了操作系統的原理以後,才能更好的操作我們正在使用的系統。屬於中級的課程吧。

編譯原理》, 如果說計算機語言是魔法咒語的話,編譯原理就是告訴你,這些魔法咒語是怎麼生效的

《計算機組成原理》 哦,這個非常有趣,和操作系統有很大關系,但是這個是從硬體的層次上面(大部分來說)來解釋計算機的組成

《軟體工程》 估計題主暫時看不到這里的了,什麼是軟體工程呢?我的理解就是,把寫軟體規范化。形成一種規范以後好處就不言而喻了。

實話說,在學習的過程中會出現很多問題:
比如說語言選擇的問題,你會聽說JAVA無所不能,C#簡單方便,python優雅至極,php開發速度快到帶你飛。
我個人覺得,語言不是重點,語言只是個工具而已,重要的是人,就好像我們都會寫中文,為啥俺和莫言的差距咋就這么大呢!
個人建議是:發揮各個語言的優勢,在不同的情況使用不同的語言。
比如說:
1.想要開發個簡單的網站,PHP是不二的選擇(你可以想像用C++寫網站的「快感」么?)
2.windows下的程序,C#絕對是王道,還有比微軟自家的東西更懂自己的么?
3.android開發,平台的限制,最好還是用JAVA。
4.考慮到性能問題,如果你是個大神(那是不可能的,如果這樣你就不會問怎麼入門了)那絕對會使用到C++,對於一般的凡人,JAVA的回收機制以及夠用了。

如果你想要買書,個人覺得最好不要買國人寫的,因為國內大部分都是你抄我我抄你的節奏,最好買國外的書。圖靈系列的我覺得不錯。

我個人覺得,學習計算機並不神秘和復雜,甚至有些可怕的簡單,有付出,就一定有回報。因為計算機的嚴謹性,他永遠不會出錯,你給出了正確的方法,就會得到正確的結果。

這里推薦題主一個小網站,名字叫做提問的智慧:
http://www.beiww.com/doc/oss/smart-questions.html

B. 編譯原理 學的是什麼

編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。 編譯原理是計算機專業設置的一門重要的專業課程。雖然只有少數人從事編譯方面的工作,但是這門課在理論、技術、方法上都對學生提供了系統而有效的訓練,有利於提高軟體人員的素質和能力。 目前各個大學使用的教材機械工業出版社、國防工業出版社出版的《編譯原理》。
編譯原理課程
這門課程關注的是編譯器方面的產生原理和技術問題,似乎和計算機的基礎領域不沾邊,可是編譯原理卻一直作為大學本科的 必修課程,同時也成為了研究生入學考試的必考內容。編譯原理及技術從本質上來講就是一個演算法問題而已,當然由於這個問題十分復雜,其解決演算法也相對復雜。 我們學的數據結構與演算法分析也是講演算法的,不過講的基礎演算法,換句話說講的是演算法導論,而編譯原理這門課程講的就是比較專註解決一種的演算法了。在20世紀 50年代,編譯器的編寫一直被認為是十分困難的事情,第一Fortran的編譯器據說花了18年的時間才完成。在人們嘗試編寫編譯器的同時,誕生了許多跟 編譯相關的理論和技術,而這些理論和技術比一個實際的編譯器本身價值更大。就猶如數學家們在解決著名的哥德巴赫猜想一樣,雖然沒有最終解決問題,但是其間 誕生不少名著的相關數論。

C. 編程從什麼開始學(自學)我是名非計算機專業學生,

先從C語言開始吧 有了C的基礎,學其他語言也會很方便的。
還要了解硬體的一些知識,如《計算機組成原理》
匯編語言(C語言是高級語言,最低級的是機器語言),了解一些低級的語言會有幫助的
編譯原理也可以看(如果你看的懂的話)

D. 請問一下非計算機專業的想考計算機的研究生,需要准備哪些,本人大一。

跨考計算機專業的研究生都要做的准備:

  1. 首先要明確一點計算機專業不等於修電腦,不等於會編程,學計算機最基本的要數學好,還要有一定的邏輯推理能力,最重要的是對這個專業有興趣,肯花很多時間去學習;

  2. 喜歡編程,那隻能稱為編程愛好者,不能稱為學習過計算機的人,如果為了編程學習計算機,那最好放棄,因為計算機專業開的課程中,編程語言的學習是次要的,花費更多的,是學習計算機的原理;

  3. 計算機必須掌握的課程:計算機組成原理、計算機網路、操作系統、C、資料庫、離散、概率論、演算法、UML、數據結構、電工電子等,要跨專業考試,這些課程自己必須搞懂。

  4. 考研必考的科目:高數、英語、政治、組成原理、離散、概率、數據結構。

E. 非計算機專業目前從事軟體開發,沒有計算機基礎。有沒有必要去補學,如編譯原理

作為一個計算機專業的,實話跟你講,就算是本專業的學完了一年之後除非天天用否則也基本忘的差不多了。但是,如果你想在這行長時間做下去,每時每刻都要學習,如果只是做碼農,你學這些語言什麼的就夠用了,要是真想好好做,操作系統編譯數據結構演算法組成原理這些必須得看,而且要學明白,雖然課本里的很多東西已然落伍了以後根本用不到,但是學是為了了解計算機的工作原理,這樣哪怕只是做碼農也能編出高質量代碼。

總的來說就是,若是不想在這一行長干,不用學,要是想要做大牛,必須學還要學好

F. 非計算機專業的,如何學習編程,請各位給點參考意見,謝謝。

課程都是次要的。主要靠自學。你如果要做開發,首先得確定你所需要使用的語言,不管是Java,C#/VB.NET,還是C++。先看一些比較簡單的案例,試著仿照範例自己編寫出來。逐步由淺入深,才會得到鍛煉。純粹的開發靠的是經驗,所以要多多積累。
C語言和C++還是比較接近的,作為程序員C++基本是必須掌握的語言。如果搞開發,資料庫系統也絕對避免不了。《C++ Primer》、《資料庫系統概念》都是經典好書。

G. 編譯原理

編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。 編譯原理是計算機專業設置的一門重要的專業課程。編譯原理課程是計算機相關專業學生的必修課程和高等學校培養計算機專業人才的基礎及核心課程,同時也是計算機專業課程中最難及最挑戰學習能力的課程之一。編譯原理課程內容主要是原理性質,高度抽象[1]。

中文名
編譯原理[1]
外文名
Compilers: Principles, Techniques, and Tools[1]
領域
計算機專業的一門重要專業課[1]
快速
導航
編譯器

編譯原理課程

編譯技術的發展

編譯的基本流程

編譯過程概述
基本概念
編譯原理即是對高級程序語言進行翻譯的一門科學技術, 我們都知道計算機程序由程序語言編寫而成, 在早期計算機程序語言發展較為緩慢, 因為計算機存儲的數據和執行的程序都是由0、1代碼組合而成的, 那麼在早期程序員編寫計算機程序時必須十分了解計算機的底層指令代碼通過將這些微程序指令組合排列從而完成一個特定功能的程序, 這就對程序員的要求非常高了。人們一直在研究如何如何高效的開發計算機程序, 使編程的門檻降低。[2]
編譯器
C語言編譯器是一種現代化的設備, 其需要藉助計算機編譯程序, C語言編譯器的設計是一項專業性比較強的工作, 設計人員需要考慮計算機程序繁瑣的設計流程, 還要考慮計算機用戶的需求。計算機的種類在不斷增加, 所以, 在對C語言編譯器進行設計時, 一定要增加其適用性。C語言具有較強的處理能力, 其屬於結構化語言, 而且在計算機系統維護中應用比較多, C語言具有高效率的優點, 在其不同類型的計算機中應用比較多。[3]
C語言編譯器前端設計
編譯過程一般是在計算機系統中實現的, 是將源代碼轉化為計算機通用語言的過程。編譯器中包含入口點的地址、名稱以及機器代碼。編譯器是計算機程序中應用比較多的工具, 在對編譯器進行前端設計時, 一定要充分考慮影響因素, 還要對詞法、語法、語義進行分析。[3]
1 詞法分析[3]
詞法分析是編譯器前端設計的基礎階段, 在這一階段, 編譯器會根據設定的語法規則, 對源程序進行標記, 在標記的過程中, 每一處記號都代表著一類單詞, 在做記號的過程中, 主要有標識符、關鍵字、特殊符號等類型, 編譯器中包含詞法分析器、輸入源程序、輸出識別記號符, 利用這些功能可以將字型大小轉化為熟悉的單詞。[3]
2 語法分析[3]
語法分析是指利用設定的語法規則, 對記號中的結構進行標識, 這包括句子、短語等方式, 在標識的過程中, 可以形成特殊的結構語法樹。語法分析對編譯器功能的發揮有著重要影響, 在設計的過程中, 一定要保證標識的准確性。[3]
3 語義分析[3]
語義分析也需要藉助語法規則, 在對語法單元的靜態語義進行檢查時, 要保證語法規則設定的准確性。在對詞法或者語法進行轉化時, 一定要保證語法結構設置的合法性。在對語法、詞法進行檢查時, 語法結構設定不合理, 則會出現編譯錯誤的問題。前端設計對精確性要求比較好, 設計人員能夠要做好校對工作, 這會影響到編譯的准確性, 如果前端設計存在失誤, 則會影響C語言編譯的效果。[3]

閱讀全文

與編譯原理非計算機專業相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:768
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:843
安卓怎麼下載60秒生存 瀏覽:802
外向式文件夾 瀏覽:235
dospdf 瀏覽:430
怎麼修改騰訊雲伺服器ip 瀏覽:387
pdftoeps 瀏覽:492
為什麼鴻蒙那麼像安卓 瀏覽:735
安卓手機怎麼拍自媒體視頻 瀏覽:185
單片機各個中斷的初始化 瀏覽:723
python怎麼集合元素 瀏覽:480
python逐條解讀 瀏覽:832
基於單片機的濕度控制 瀏覽:498
ios如何使用安卓的帳號 瀏覽:882
程序員公園采訪 瀏覽:811
程序員實戰教程要多長時間 瀏覽:974
企業數據加密技巧 瀏覽:134
租雲伺服器開發 瀏覽:813
程序員告白媽媽不同意 瀏覽:335
攻城掠地怎麼查看伺服器 瀏覽:600