對編譯原理的見解

編譯原理正則表達式

    經過上網查閱資料,讓我明白編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程序構造的通常原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。編譯原理是計算機專業設置的一門重要的專業課程。雖然只有少數人從事編譯方面的工做,可是這門課在理論、技術、方法上都對學生提供了系統而有效的訓練,有利於提升軟件人員的素質和能力。算法

    大學課程爲何要開設編譯原理呢?這門課程關注的是編譯器方面的產生原理和技術問題,彷佛和計算機的基礎領域不沾邊,但是編譯原理卻一直做爲大學本科的必修課程,同時也成爲了研究生入學考試的必考內容。編譯原理及技術從本質上來說就是一個算法問題而已,固然因爲這個問題十分複雜,其解決算法也相對複雜。咱們學的數據結構與算法分析也是講算法的,不過講的基礎算法,換句話說講的是算法導論,而編譯原理這門課程講的就是比較專一解決一種的算法了。在20世紀50年代,編譯器的編寫一直被認爲是十分困難的事情,第一Fortran的編譯器聽說花了18年的時間才完成。在人們嘗試編寫編譯器的同時,誕生了許多跟編譯相關的理論和技術,而這些理論和技術比一個實際的編譯器自己價值更大。就猶如數學家們在解決著名的哥德巴赫猜測同樣,雖然沒有最終解決問題,可是其間誕生很多名著的相關數論。編程

    根據有經驗的人可知道:不管是工做上仍是業餘中若是想編一點稍微有一些智能的程序,必然要用到。目前你們都在用的正則表達式是用編譯原理作的,那只是一個很小的應用例子。大一點的應用能夠作到必定的技術先進性,從而讓你在本行業站穩腳跟。好比能夠用語法分析來分析出一段用戶上傳是否含有代碼,從而讓你的網站更健壯。分析和分解用戶輸入的SQL語句,理解是否有害和是否有SQL注入。在業務軟件中結算方面容許用戶輸入條件表達式和四則運算,容許用戶自定義結算公式或條件,使軟件上一個檔次。甚至能夠實現本身創造的編程語言,之後編程全用自語言來作,而後編譯成老闆要的那種語言。有的公司要JAVA,有的公司要C#,C++,VB等等你都沒必要每樣都費心了。這樣作還有一個好處,你的源程序實際上是自語言,目標代碼則是社會上公認的源程序,因此是能夠公開的。若是以這種技術爲核心技術開公司的話,則有着技術上更高一層的先進性,這種核心競爭力是很值錢的。試想,你公司的員工只會用自語言,他們跳槽的機會就少了。而你公司的用戶老是能夠獲得全套的他們認爲的源程序,則市場機會就大了。別的通常軟件公司可不敢給出全套源程序,總要多少保留一點的。數據結構

    既然編譯原理如此重要,那麼咱們更須要認真的學習,逐步地鞏固這方面的知識。不管是學習哪一種技能、哪一種學問,都要一步一個腳印,從基礎出發,知己知己才能百戰不殆。誠然,對於剛接觸這門學科的我來講,編譯原理很難學,必須本身動手編,並且不要想一口吃成胖子,從詞法分析開始寫,一步步來。相信到最後,確定會有意料以外的收穫。編程語言

相關文章
相關標籤/搜索