編譯原理和數據結構之間的關系
㈠ 大二的數據結構和編譯原理有什麼用,學了c#不是一樣編程嗎
學以致用這個詞一般都用在走上工作崗位之後,在學生期間的學習都是為了豐富自己,你並不知道將來你要用的是哪個,只是你會的多了,就業面就廣,能乾的東西就越多。
如果每次學習的時候都考慮有什麼用,沒用就不學,等到用的時候再學往往就來不急。
當然編譯原理這種學起來困難而且確實用處不大的東西可能確實不愛學,但是數據結構這種絕對是編程中基礎的基礎的東西還是非常有必要學的,數據結構教會你如何最佳的抽象問題,規劃解決方案,是為實際問題找到最優解的前置條件,也是學習演算法和如高效解決編程問題的核心,絕對是重中之重。
㈡ 編譯原理和演算法與數據結構那門課比較重要
坦白的講都很重要,但這等於沒有回答你的問題,我理解你是想問學習的先後。其實演算法和數據結構是計算機編程技術的精髓,偏重理論和抽象,是重中之重;一旦你進入計算機編程領域時,編譯原理是你實現想法的重要工具,是知其然,而後知其所以然,讓你知道機器是如何實現你的想法的,方便你更好的利用機器,讓你的想法有可行性。
㈢ 「數據結構」,「編譯原理」,「演算法設計」哪個是核心
編譯原理是第一位
數據結構是第二位
演算法設計是第三位
我平時寫程序都是這樣的想的
㈣ 操作系統 編譯原理 跟 組成原理 有關系嗎
操作系統、編譯原理、計組本身沒有關系。
一般計算機學科有兩條線分為
偏軟:C語言、C++、數據結構、編譯原理、操作系統、計算機網路
偏硬:數字(模擬)電路、微機介面與原理、計算機組成原理
這些都是基本功,如果都學通了,後續的學習都沒問題。
通常情況下,看你個人的興趣發展方向,如果選擇軟體方向,學完了數據結構一般會學習《編譯原理》(公認計算機最難的學科)
㈤ 編譯原理的數據結構
編譯原理一直是計算機學習的必修課.
當然,由編譯器的階段使用的演算法與支持這些階段的數據結構之間的交互是非常強大的。編譯器的編寫者盡可能有效實施這些方法且不引起復雜性。理想的情況是:與程序大小成線性比例的時間內編譯器,換言之就是,在0 ( n )時間內,n是程序大小的度量(通常是字元數)。本節將講述一些主要的數據結構,它們是其操作部分階段所需要的,並用來在階段中交流信息。 臨時文件(temporary file):計算機過去一直未能在編譯器時將整個程序保留在存儲器中。這一問題已經通過使用臨時文件來保存翻譯時中間步驟的結果或通過「匆忙地」編譯(也就是只保留源程序早期部分的足夠信息用以處理翻譯)解決了。存儲器的限制現在也只是一個小問題了,現在可以將整個編譯單元放在存儲器之中,特別是在可以分別編譯的語言中時。但是偶爾還是會發現需要在某些運行步驟中生成中間文件。其中典型的是代碼生成時需要反填(backpatch)地址。例如,當翻譯如下的條件語句時 if x = 0 then ... else ... 在知道else部分代碼的位置之前必須由文本跳到else部分:
CMP X,0 JNE NEXT ;;
location of NEXT not yet known < code for then-part > NEXT : < code for else-part >
通常,必須為NEXT的值留出一個空格,一旦知道該值後就會將該空格填上,利用臨時文件可以很容易地做到這一點。
如果想利用上面的編譯原理開發一套屬於自己的編程語言,或者想在一個產品中嵌入編程語言,可以參考zengl開源網開發的zengl編程語言,該編程語言為國人使用C語言開發,裡麵包含兩個部分,一個是編譯器,一個是解釋執行中間代碼的虛擬機。編譯器包含了詞法掃描,語法分析,中間代碼輸出等,虛擬機則類似JAVA一樣解釋執行中間代碼。作者將所有的版本都公布出來,好讓讀者可以由淺入深的做研究,並且為了證明該編程語言的實用性,還結合SDL游戲開發庫開發了一款圖形界面和命令行界面的21點撲克小游戲 。
zengl編程語言目前適用平台為windows和linux (最開始在Linux下使用gcc開發,後來移植到windows平台)
㈥ 編譯原理與什麼課程有聯系
與人工智慧、機器學習、操作系統、編譯器等都有關系,屬於計算機專業的核心課程,需要扎實掌握;
㈦ 資料庫,數據結構,編譯原理對編程有那些影響和幫助
他們太重要了,
(1)數據結構:首先要明白---->程序=演算法+數據
「數據結構」就是做數據這塊的,例如一個「電影播放器」程序,首先要有「電影」嗎,這個就是「數據」,那麼就要用「數據結構」的知識,怎麼存儲每一幀,怎麼高效,怎麼能無損,怎麼空間最節省.........,然後才是怎麼去「解碼」(解碼就是「演算法」做的啦),當然這么講起來不是很嚴謹,但你可以看得出,數據結構可以說的上是有50%的重要性了。
(2)編譯原理:不要以為,自己不去開發「語言」,編譯原理就沒有用啦,它能讓你從根本上理解編譯器,這對怎麼提高程序的效率,怎麼變出漂亮的程序很有用................當然貌似如果從事,「人工智慧」這一塊的話,編譯原理也非常重要。
(3)資料庫:又是剛才哪一點----------->程序=演算法+數據
數據以文件的形式存儲,是在不是很高效,所以,為了方便數據的管理與查找等等..........人類作出了「資料庫」,說白了,它就是用來解決「數據」這部分內容的,現在基本無論你做什麼都離不開資料庫了,從大型網游到網站,到手機等的移動設備編程,都要用到資料庫
--------------------------------------------------------------------------------------------------
從你的體溫來看,你可能剛剛接觸編程,沒有做過什麼成品,隨著你越來越了解這個領域,你會剛到這些東西非常重要,當然還有很多東西,與以上三者地位相當,或更高,例如,微型計算機組成原理,等一些硬體方面的知識.......................................
---------------------------------------------------------------------------------------------------
還是「廣泛閱讀」吧。
㈧ 數據結構,計算機操作系統,編譯原理,軟體工程在計算機專業的重要性,它們的區別和聯系,近況與發展
偶曾經是計算機應用技術(網路工程)專業,專業對口。如果你非要選擇計算機,就你以上所述我簡單闡述一下職業技術掌握。(同專業的女生基本上沒幾個對口的)
資料庫---熟練掌握Linux、Solaris、Windows等主流操作系統安裝、配置和管理。當然,WINDOWS 2003 SERVER之類的操作系統你應該會用。Oracle、SQL Server、MySQL等軟體安裝、配置和管理。任意一款你要會熟練操作。
信息安全---這個現在屬於網路工程師/技術支持。企業網路安全,區域網網路安全。掌握路由器、交換機配置和管理。能迅速查找網路故障並提出解決方案;熟悉防火牆(市面主流防火牆的一種)的配置和管理。熟悉常用的病毒防範方法和防病毒軟體;熟悉主流入侵檢測(如你所述,基本屬實,基本上沒有女的)
嵌入式系統---這個基於匯編,C/C++/ASP.NET/JAVA都還不錯,女孩子嘛可以去測試。
網路工程 ---系統維護 網路拓撲 綜合布線 區域網構架 伺服器維護。(你至少要對一個server類操縱系統很熟悉,linux/unix/windows server ,如何將電腦連接成區域網,實現資源共享,熟練配置伺服器配置,網路安全等等)
也許,僅僅是也許你現在認為自己學的不錯,真到應用的時候會發現自己學的一點都沒用,如果沒有猜錯你們肯定學了數據結構,操作系統,C語言,系統結構,8086單片機之類的··說不定教你的老師連系統都不會裝也不出奇。計算機是講究操作的。如果你有疑問可以+偶QQ 71833980 工作一般隱身。