Ⅰ 學編譯原理好苦逼啊,根本聽不懂,什麼自動機的,覺得很抽象,是我以前學離散數學沒有學好嗎請教大大們
估計C語言沒學好,會基本編程了,在學編譯會發現不過是邏輯關系集中抽象而已,沒什麼難的~認真聽,照著例題多做幾遍,會明白他的邏輯關系的~~不過前提是你的IQ夠正常人的數值~~~
Ⅱ 編譯原理有限自動機問題,不是說DFA不存在ε 邊嗎,為什麼這個答案有ε 邊,不是還能化簡嗎
自動機是有限狀態機(FSM)的數學模型。 FSM 是給定符號輸入,依據(可表達為一個表格的)轉移函數「跳轉」過一系列狀態的一種機器。在常見的 FSM 的「Mealy」變體中,這個轉移函數告訴自動機給定當前狀態和當前字元的時候下一個狀態是什麼。逐個讀取輸入中的符號,直到被完全耗盡(把它當作有一個字寫在其上的磁帶,通過自動機的讀磁頭來讀取它;磁頭在磁帶上前行移動,一次讀一個符號)。一旦輸入被耗盡,自動機被稱為「停止」了。依賴自動機停止時的狀態,稱呼這個自動機要麼是「接受」要麼「拒絕」這個輸入。如果停止於「接受狀態」,則自動機「接受」了這個字。在另一方面,如果它停止於「拒絕狀態」,則這個字被「拒絕」。自動機接受的所有字的集合被稱為「這個自動機接受的語言」。自動機 automaton 原來是模仿人和動物的行動而做成的機器人的意思。但是現已被抽象化為如下的機器。時間是離散的(t=0,1,2……),在每一個時刻它處於所存在的有限個內部狀態中的一個。對每一個時刻給予有限個輸入中的一個。那麼下一個時刻的內部狀態就由現在的輸入和現在的內部狀態所決定。每個時刻的輸出只由那個時刻的內部狀態所決定。作為自動機的例子可以舉出由McCulloch-pitts的神經模型組合所得到的神經網路模型、數字計算機等。
Ⅲ 請問linux在實際生活中的應用是什麼
Linux就是個操作系統:它和Windows XP、Windows 2003、2008什麼的一樣就是一個操作系統而已! 現在不要管這個玩意兒是誰發明的,以後再說。
Linux能幹什麼:它能當伺服器,伺服器上安裝者各種企業應用、服務。 比如:Web服務(apache,就是能架設網站的)、資料庫(MySQL,存儲網站信息數據的)、博客系統(wordpress) 等……
Linux系統用在哪些領域: 比如某網站的伺服器,他們肯定用Linux。再比如某網站的資料庫,他們差不多也基於Linux。再比如機關部歷盯門、學校、東莞夜總會、某中介公司,搜冊總之他們都用的到Linux。 因為他們的部分業務需要在網路上處理,需要存儲,需要管理數據。那麼恰恰Linux就是很好的服務端操作系統。
騰訊招聘的業務運維工程師:
1、精通linux操作系統,對系統性能相關問題有較深刻理解;
2、精通shell編程,熟練應用awk、sed、grep、strace、tcump、gdb等常用命令;
3、熟悉網站B/S開發結構,熟悉linux下常用的B/S結構軟體apache、tomcat、squid、mysql、lvs 等的使用與調優配置;
4、熟悉集群高可用性方案,有一定帶寬成本速度優化經驗;
5、熟悉TCP/IP協議,能夠定位linux網路下普通的網路異常。
阿里巴巴招聘的運維工程師:
1、熟悉LINUX操作系統日常維護、優化;
2、熟悉apache,Jboss等Web應用伺服器部署、優化;
3、精通Shell/Perl/python的一種;
Linux 系統主要是占據伺服器領域市場。通常用linux 系統的地方:
1、Linux 控
Linux 更加自由,我可以根據自己的需求寫一段屬於自己的腳本代碼來使用,執行程序的時候只需要設定自己的快捷鍵就可以打開它。在 Linux 下,幾乎所有的軟體都是開源的,每個人都可以修改它來為自己所用,甚至是 Linux 本身.
2、個人娛樂或辦公
Linux 發行版 ubuntu,因為這個操作系統對於很多個人用戶都比較友好,不世爛宏必進行太多的設置,不用寫任何復雜的代碼,對於滿足個人娛樂來說已經足夠了。
3、政府企業等部門,出於保密,內部使用的操作系統。
隨著棱鏡門時間的曝光,各國政府和企業都越來越重視網路安全問題,windows的安全問題也顯露出越來越明顯的不足之處,而安全性高,穩定性強的linux系統成為各國首選的政府辦公操作系統,被大量的采購。
Ⅳ 什麼是嵌入式
嵌入式即嵌入式系統,IEEE(美國電氣和電子工程師協會)對其定義是用於控制、監視或者輔助操作機器和設備的裝置,
嵌入襲或橘式是一種拍團專用的計算機系統;國內普遍認同的嵌入式系統定義是以應用為中心,以計算機技術為基礎,軟硬體可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統;從應用對象上加以定義來說,嵌入式系統是軟體和硬體的綜合體,還可以涵蓋機械等附屬裝置。
(4)編譯原理課件自動售貨機擴展閱讀:
嵌入式系統組成:一個嵌入式系統裝置一般都由嵌入式計算機系統和執行裝置組成,嵌入式計算機系統是整個嵌入式系統的核心,由硬體層、中間層、系統軟體層和應用軟體層組成。執行裝置也稱為被控對象,它可以接受嵌入式計算機系統發出的控制命令,執行所規定的操作或任務。
執行裝置可以很簡單,如手機上的一個微小型的電機,當手機處於震動接收狀態時打開;也可以很復雜,如SONY 智能機器狗,上面集成了多個微小型控制電機和多種感測器,從而可以執行各種復雜的動作和團宴感受各種狀態信息。
Ⅳ 什麼是編譯原理
問題一:什麼是編譯原理 編譯:就是將程序語言進行翻譯,生成可供用戶直接執行的二進制代碼,即可執行文件。
任務是個比較模糊的概念,指的是操作系統中正在進行的工作,既可以指進程,也可以指程序春坦灶。
程序指的是可以連續執行,並能夠完成一定任務的一條條指令的 *** 。
進程是程序在一個數據 *** 上運行的過程,它是傳統操作系統進行資源分配和調度的一個獨立單位。
線程是一個指令執行序列,是操作系統調度的最小單位。一個或多個線程構成進程,構成一個進激的線程之間共享資源。進程和線程之間的最大區別就是線程不能獨立擁有資源,進程擁有自己的資源。
問題二:編譯原理中V*是什麼意思 V是一個符號 *** ,假設V指的是三個符號a, b, c的 *** ,記為 V = {a, b, c }
V* 讀作「V的閉包」,它的數學定義是V自身的任意多次自身連接(乘法)運算的積,也是一個 *** 。
也就是說,用V中的任意符號進行意多次(包括0次)連接,得到的符號串,都是V*這個 *** 中的元素。
0次連接的結果是不含任何符號的空串,記為 ε
1次連接就是只有一個符號的符號串,比如,a,b, c
2次連接是兩個符號構成的符號串,比如,aa, ab, ac, ba, bb, bc,等等
……
n次連接是一個長度為n、由a、b、c三個符號構成的符號串,比如abaacbbac……
因此,V*包含一切由a,b,c三個符號連接而成的、任意長度的符號串(以及空串ε)
問題三:編譯原理 V+什麼意思,例如下面的例子。。。 v表示終結符和非終結符 *** 。
+表示 *** 中的一個或多個元素構成的串的 *** 。
所以v+表示由一個或多個終結符或非終結符構成的串的 *** 。比如如果a∈VT,A∈VN,那麼a,A,aA,Aa,aAA,AaA等都是v+中的元素。
問題四:誰能夠解釋下編譯原理中什麼是FIRSTVT,和LASTVT,盡量淺顯易懂點謝謝 Firstvt和Lastvt是為了畫算符優先關系表的(就是表裡面填優先大於小於等於的那個)。
然後要注意他們可都是終結符的 *** 。
Firstvt
找Firstvt的三條規則:如果要找A的Firstvt,A的候選式中出現:
A->a.......,即以終結符開頭,該終結符入Firstvt
A->B.......,即以非終結符開頭,該非終結符的Firstvt入A的Firstvt
攻 A->Ba.....,即先以非終結符開頭,緊跟終結符,則終結符入Firstvt
Lastvt
找Lastvt的三條規則:如果要找A的Lastvt,A的候選式中出現:
A->.......a,即以終結符結尾,該終結符入Lastvt
A->.......B,即以非終結符結尾,該非終結符的Lastvt入A的Lastvt
A->.....aB,即先以非終結符結尾,前面是終結符,則終結符入Firstvt
問題五:編譯原理 什麼是語義分析 在編譯原理中,語法規則和詞法規則不同之處在於:規則主要識別單詞,而語法主要識別多個單片語成的句子。詞法分析信孝和詞法分析程序:詞法分析階段是編譯過程的第一個階段。這個階段的任務是從左到右一個字元一個字元地讀入源程序,即對構成源程序的字元流進行掃描然後根據構詞規則識別單詞(也稱單詞符號或符號)。詞法分析程序實現這個任務。詞法分析程序可以使用lex等工具自動生成。語法分析(Syntax *** ysis或Parsing)和語法分析程序(Parser) 語法分析是編譯過程的一個邏輯階段。語法分析的任務是在詞法分析的基礎上將單詞序列組合成各類語法短語,如「程序」,「語句」,「表達式」等等.語法分扒扮析程序判斷源程序在結構上是否正確.源程序的結構由上下文無關文法描述.語義分析(Syntax *** ysis) 語義分析是編譯過程的一個邏輯階段. 語義分析的任務是對結構上正確的源程序進行上下文有關性質的審查, 進行類型審查.語義分析將審查類型並報告錯誤:不能在表達式中使用一個數組變數,賦值語句的右端和左端的類型不匹配.
問題六:編譯原理中,(E)是什麼意思? E→(E)? 10分 就是 字元本身 意思是F產生( E ) 或者 i 比如If語句的開頭 就是 帶括弧的 必須是 if(表達式)這樣的形式 丟了任何即括弧就是其 終結符 「(」 和 「)」.
問題七:大家覺得對編譯器及編譯原理需要掌握到一個什麼程度 我跟你說,編譯原理太有用了。
我是做手機游戲的,現在做一個游戲引擎。既然是引擎,就需要提供抽象的東西給上層使用。這里,我引入了腳本系統。
這個腳本系統包括一堆我根據實際需求自行設計的指令集,包括基本的輸入輸出,四則運算,系統功能調用,函數聲明,調用等等(其實你要是用過lua或者其他游戲腳本你就知道了。)整個結構包括指令集、編譯器、虛擬機等部分。這樣,引擎提供一些基礎服務,比如繪圖,計算位置等,腳本就可以非常簡單控制游戲。甚至快速構建新游戲。你應該知道QUAKE引擎吧?
這里提供給你一個計算器的小程序,應用了EBNF理論,支持表達式,比如(2+3*6)*4+4,你自己體驗一下它的簡潔和強大。
/*
simple integer arithmetic calculator according to the EBNF
-> {}
->+|-
->{}
-> *
-> ( )| Number
Input a line of text from stdin
Outputs Error or the result.
*/
#include
#include
#include
char token;/*global token variable*/
/*function prototypes for recursive calls*/
int exp(void);
int term(void);
int factor(void);
void error(void)
{
fprintf(stderr,Error\n);
exit(1);
}
void match(char expectedToken)
{
if(token==expectedToken)token=getchar();
else error();
}
main()
{
int result;
token = getchar();/*load token with first character for lookahead*/
result = exp();
if(token=='\n')/*check for end of line */
printf(Result = %d\n,result);
else error();/*extraneous cahrs on line*/
return 0;
}
int exp(void)
{
int temp = term();
while((token=='+')||(token=='-'))
switch(token)
{
case '+':
match('+');
temp+=term......>>
問題八:編譯原理中,自動機究竟是什麼. 形式語言
形式語言 是一個字母表上的某些有限長字串的 *** 。一個形式語言可以包含無限多個字串。
語言的形式定義
字母表 ∑ 為任意有限 *** ,ε 表示空串, 記 ∑ 0 為{ε},全體長度為 n 的字串為 ∑ n , ∑ * 為 ∑ 0 ∪∑ 1 ∪…∪∑ n ∪…, 語言 L 定義為 ∑ * 的任意子集。
注記:∑ * 的空子集 Φ 與 {ε} 是兩個不同的語言。
語言間的運算
語言間的運算就是 ∑ * 冪集上的運算。
字串 *** 的交並補等運算。
連接運算:L 1 L 2 = { xy | x 屬於L 1 並且 y 屬於L 2 }。
冪運算:L n = L … L (共 n 個 L 連接在一起),L 0 = {ε}。
閉包運算:L * = L 0 ∪L 1 ∪…∪L n ∪…。
(右)商運算:L 1 /L 2 = {x | 存在 y 屬於L 2 使得 xy 屬於L 1 }。
語言的表示方法
一個形式語言可以通過多種方法來限定自身,比如:
枚舉出各個字串(只適用於有限字串 *** )。
通過 形式文法 來產生(參見 喬姆斯基譜系 )。
通過正則表達式來產生。
通過某種自動機來識別,比如 圖靈機 、 有限狀態自動機 。
自動機
automata
對信號序列進行邏輯處理的裝置。在自動控制領域內,是指離散數字系統的動態數學模型,可定義為一種邏輯結構,一種演算法或一種符號串變換。自動機這一術語也廣泛出現在許多其他相關的學科中,分別有不同的內容和研究目標。在計算機科學中自動機用作計算機和計算過程的動態數學模型,用來研究計算機的體系結構、邏輯操作、程序設計乃至計算復雜性理論。在語言學中則把自動機作為語言識別器,用來研究各種形式語言。在神經生理學中把自動機定義為神經網路的動態模型,用來研究神經生理活動和思維規律,探索人腦的機制。在生物學中有人把自動機作為生命體的生長發育模型,研究新陳代謝和遺傳變異。在數學中則用自動機定義可計算函數,研究各種演算法。現代自動機的一個重要特點是能與外界交換信息,並根據交換得來的信息改變自己的動作,即改變自己的功能,甚至改變自己的結構,以適應外界的變化。也就是說在一定程度上具有類似於生命有機體那樣的適應環境變化的能力。
自動機與一般機器的重要區別在於自動機具有固定的內在狀態,即具有記憶能力和識別判斷能力或決策能力,這正是現代信息處理系統的共同特點。因此,自動機適宜於作為信息處理系統乃至一切信息系統的數學模型。自動機可按其變數集和函數的特性分類,也可按其抽象結構和聯結方式分類。主要有:有限自動機和無限自動機、線性自動機和非線性自動機、確定型自動機和不確定型自動機、同步自動機和非同步自動機、級聯自動機和細胞自動機等。
這可能有你想要的答案
./question/7218281?fr=qrl3
問題九:編譯原理中"(E)"表示什麼 字元( 表達式 字元)
Ⅵ 嵌入式 是做什麼的
嵌入式是用於控制、監視或者輔助操作機器和設備的裝置。嵌入嘩灶態式是一種專用的計算機系統,作為裝置或設備的一部分。
嵌入式是才發展起來的一項IT開發技術。嵌入式開發在FPGAARMDSPMCU等各個方面都有了細分專業團隊進行外協設計。亂源提供從原型樣機、頂層軟體架構到源碼的所有設計。
通常,嵌入式系統是一個控製程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字介面的設備,如手錶、微波爐、錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含操作系統,但大多數嵌入式系統都是是由單個程序實現整個控制邏輯。
可在從事嵌入式系統開發的計算機與電子技術、IT 、通信、軍工、工業控制、汽車電子、大型設備智能故障診斷、電子設備等領域進行產品的開發、生產、測試、維護、銷售、技術支持、技術咨詢等工作。
具體就業崗位包括:嵌入式軟體開發工程師、基於ARM系統的研發崗位、Linux系統應用軟體開發崗位、Linux下C/C++軟體工程師、嵌入式Linux系統研發工程師。
(6)編譯原理課件自動售貨機擴展閱讀:
嵌入式在各個領域的開發運用:
1、手機領域
以手機為代表的移動設備可謂是近年來發展最為迅猛的嵌入式行業。甚至針對於手機軟體開發,還曾經衍生出「泛嵌入式開發」這樣的新詞彙。
2、汽車電子領域
電子導航系統在汽車電子中占據的比重比較大,目前導航系統在國外已經有了廣泛的應用。汽車電子領域的另外一個發展趨勢是與汽車本身機械結合,從而可以實現故障診斷定位等功能。
3、電子產品
消費類電子產品主要包括便攜音頻視頻播放器、數碼相機、掌上游戲機等。目前,消費類電子產品已形成一定的規模,並且已經相對成熟。對於辯讓消費類電子產品,真正體現嵌入式特點的是在系統設計上經常要考慮性價比的折衷,如何設計出讓消費者覺得劃算的產品是比較重要的。
4、軍工航天
在這個領域裡面,無論是硬體還是操作系統、編譯器,通常並不是市場上可以見到的通用設備,它們大多數都是專用的。許多最先進的技術最前沿的成果,往往都會用在這個領域。
Ⅶ 求助 自動售貨機C語言代碼改寫成C++語言代碼 程序已經寫好只要改
//AutoSale頭文件
#pragmaonce
#defineCAPACITY10
typedefstruct{
charName[32];
intnPrice;
}ITEM_UNIT;
classCAutoSale
{
public:
CAutoSale();
virtual~CAutoSale();
public:
voidGetltemName(char*item);
intGetltemPrice(FILE*file);
voidAcceptMoney(intprice);
BOOLFileInit(FILE*file);//
public:
CArray<ITEM_UNIT,ITEM_UNIT&>m_ItemArray;//存儲商品的名稱和價格
private:
}
//AutoSale.cpp
#include"stdafx.h"
#include"AutoSale.h"
CAutoSale::CAutoSale()
{
}
CAutoSale::~CAutoSale()
{
}
BOOLCAutoSale::FileInit(FILE*file)//pricelist.txt.打開文件失敗返回false
{
ITEM_UNITItemUnit;
memset((char*)&ItemUnit,0,sizeof(ItemUnit));
//把文件內所有商品的名稱和價格循環添加到m_ItemArray中
//格式:
//memcpy(ItemUnit.Name,0,Name);//Name從文件中讀取灶滲指
//ItemUnit.nPrice=nPrice;//nPrice從文件中讀取,對應於Name
//m_ItemArray.Add(ItemUnit);
}
voidCAutoSale::AcceptMoney(intprice)
{
}
...其他函數都是這么寫,自己來吧
//主函數里
添加聲明:CAutoSaleAutoSale;
if(!AutoSale.FileInit(filename))
{
printf("Errorinitialisingvend:pricelist.txtnot喊舉opened");
}
成功之後,下面不必再去對文隱配件進行任何操作。商品的名稱和價格全部通過AutoSale.m_ItemArray來獲取、查詢。
接收money函數調用也是AutoSale.Accept(price);
個人建議:做一個xml文件,每個商品為一條xml記錄。
<Item>
<Name>xxx</Name>
<Price>123</Price>
</Item>
解析這個xml文件,所有商品添加到上面那個Array里
Ⅷ 為什麼要用嵌入式軟體
問題一:什麼是嵌入式軟體和非嵌入式軟體 簡單的說,嵌入式軟體就是基於嵌入式平台(比如ARM+Linux)的應用軟體或者系統軟體;而非嵌入式軟體大多指基於通用處理器和操作系統平台俯軟體(比如桌面應用軟體)。
問題二:嵌入式為什麼要有操作系統 在8位或16位嵌入式系統應用中,由於CPU資源量比較少,任務比較簡單,程序員可以在應用程序中管理CPU資源,而不一定要專用的系統軟體。如果嵌入式系統比較復雜並且採用32位CPU時,情況就完全不同了。32位CPU的資源量非常大,處理能力也非常強大,如果還是採用手工編制CPU的管理程序,面對復雜的應用,很難發揮出32位CPU的處理能力,並且程序也不可靠。
舉個例子:我們平時用的電腦,有比較豐富的外設資源,如果不使用操作系統,你自己用開發工具從底層開始寫程序,搞個一年半載的,或許也可以讓電腦跑起來,在顯示器上搞個類似的windows界面。然而,如此的裸程序根本無法讓PC機發揮出強大的處理能力,要想在已有的程序上加個應用功能,必須要熟悉其餘程序的流程,或許還要去熟悉硬體知識,看硬體的datasheet。如果想移植到另外一台配置不同的電腦上,估計大部分程序都得推倒重來!
從我目前的認知水平來看,我覺得在嵌入式上使用操作系統有兩個方面的好處:
1、操作系統的一個強項就是它可以使應用程序編碼在很大程度上與目標板的硬體和結構無關。使程序員可以將盡可能多的精力放在應用程序本身,而不不必去關心系統資源的管理。
2、使系統開發變得簡單,縮短開發周期。使應用系統更加健壯、高效、可靠。
當然,對於很簡單的單片機應用,大可不必去跑操作系統。操作系統雖然聽起來很好,很強大,但不論什麼東西都往上移植的話就顯得很傻、很天真了。
~~~~~~~~~~~~~~~~
ps:
針對嵌入式的操作系統有很多種,還有51上面的操作系統,如 *** all_rtos,uCOS-II,還有針對較高層次應用的clinux,linux,wince等等!~~~~
問題三:嵌入式軟體系統中是否一定要有操作系統,為什麼? 首先你得明白操作系統式干嗎的
操作系統就是讓一個cpu處理多個不同的任務
沒有操作系統的時候呢,只能處理一個任務,該處理其他任務時怎麼辦呢
1,輪詢:在處理主任務的時候不斷的查詢是不是該處理其他的任務的,如果是就去處理其他任務,處理完了以後呢就馬上回到主任務上
2,前後台:處理主任務的時候設置了中斷,中斷可根據外部情況觸差顫發,打斷主任務,去處理中斷任務,中斷任務處理完了又回到主任務
而有操作系統的時候呢就能同時處理很多任務,
只有一個cpu為什麼能處理很多事情呢,操作系統把cpu的時間分割,每一小段時間執行一個任務的一部分(這一小段時間很短,一般在0.02秒以下),然後切換到下個任務上,不斷的循環。由於切換時間很短,處理速度又很快,賣猜這樣在人看來就是好像同時處理了很多任務一樣
所以用不用操作系統要根據你的應用情況
問題四:為什麼要學習嵌入式技術 之所以學習嵌入式主要還是因為嵌入式的發展前景還是不錯的,主要有以下幾點:
一:嵌入式軟體開發可謂是軟體項目開發的掌舵者,一名優秀的嵌入式軟體開發應當具有較強的邏輯思維能力,對於技術的發展有敏銳的嗅覺。
二:嵌入式軟體開發雖然要求技術全面,但無須偏執於門門技術都精通,任何嵌入式軟體開發都有自己的技術特長和偏向,對於自己手中的技術,嵌入式軟體開發可有精通-掌握-熟悉-了解之分,根據工作需要和職業發展的具體情況來劃分。
三:由於IT技術在日常生活中各個方面的全面發展促進了各個軟體開發方向的發展,嵌入式軟體開發很多都享受地位和薪水的雙高待遇。
問題五:嵌入式和軟體工程哪個發展方向更好 不要被我樓下的誤導了,「嵌入式學好了薪水也比軟工高」這些都是P話,說到錢,即時你技術再牛如果不會賺錢也就是個窮人,很多不會技術的一樣在富豪榜,一樣家財萬貫。說以用錢來說什麼嵌入式與軟體工程的區別就是狗P,那微中慶型軟的人大多都是搞軟體的,看看外面有多少搞嵌入式高工的待遇能超過微軟的這些高工待遇?你拿國內的什麼嵌入式高工待遇就更沒法和人家比。這就是地方不同,方向、重點不同造成的待遇各有不同。如果更好是值金錢方面,建議不要選擇搞技術,因為這會消磨很多時間,甚至浪費很多賺錢的機會與時間。如果從技術追求方面,那什麼技術都要學的,那樣沒學都是損失,甚至這些只是一些小分類,還有更多的東西值得去弄。
問題六:嵌入式系統與軟體工程哪個好 目前國內外這方面的人都很稀缺。一方面,是因為這一領域入門門檻較高,不僅要懂較底層軟體(例如操作系統級、驅動程序級軟體),對軟體專業水平要求較高(嵌入式系統對軟體設計的時間和空間效率要求較高),而且必須懂得硬體的工作原理,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,很多軟硬體技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很找。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟體,另外需要有經驗的人進行指導開發流程。
近幾年嵌入式軟體行業迅猛發展,嵌入式產品滲入各個行業,像常見到的手機、PDA、機頂盒、高清電視(HDTV)、路由器、汽車電子、數碼相機、醫療儀器、航天航空設備等等都是典型的嵌入式系統,嵌入式開發已經成為當前最熱門最有發展前途的行業之一。業內人士認為,目前嵌入式行業至少存在30-50萬的人才缺口,僅成都市場嵌入式軟體開發人員的需求就已經超過了4-6萬人,其中嵌入式應用軟體需求佔80%,而且還在持續增加,這主要有兩方面的原因:一是與目前我們高校的專業設置有關,我國高校的計算機教育普遍很少涉及嵌入式軟體的開發,因此企業很難招聘到馬上可以投入嵌入式軟體開發的實戰型人才;二是嵌入式領域門檻相對較高,知識要求比較全面,而且需要一定的實驗環境(開發板和工具軟體)和有經驗的人進行指導。目前在北京,一個成熟的嵌入式軟體工程師平均月薪在8000元左右。我想要這樣的就業機會。現在嵌入式確實很熱門,即丁是在現在不是很景氣的經濟環境下,這類崗位依然很緊缺,企業找不到合適的人才。價格和價值成正比,所以我有個同學現在去了一個叫東方賽富的參加嵌入式培訓學習,聽說在北京口碑是最好的,現在學完出來,找了個5.5K做底層驅動開發的工作,很令人羨慕。。。
嵌入式行業分工作類型,嵌入式開發,測試,技術支持,業務等。技術支持最輕松。開發最累壓力大。
問題七:嵌入式軟體開發好還是硬體開發好 硬體相對比較死板固定,但軟體特別是系統架構的設計就很能鍛煉
人的腦力。巨立安技術一直認為做軟體更能體現人腦的價值。
不過對工作,尤其是嵌入式這個方向的開發來說,也許最好的策略
就是堅持 linux 內核裡面多任務調度時所採用的 「完全公平的調度(C
FS)」哲學。任何一個進程,只要它最需要cpu、或者已得到cpu時間
相對於其他進程最少,那調度器就優先調度cpu給他。
軟體硬體的學習也是一樣,什麼時候哪方面需要你花時間多一些、
或者你自己不擅長哪一方面,那就堅持往那方面發展用勁。如此,
到最後,你就會發現已然成為一個嵌入式乃至計算機系統的專家。
問題八:為什麼嵌入式系統開發需要軟體硬體綜合開發 做什麼不是軟硬結合的 - -。
打個比方,嵌入式相當於自己配裝一台計算機,系統什麼的當然要自己配置。
問題九:嵌入式軟體開發與軟體開發有什麼不同 我正好是做嵌入式的。嵌入式主要是處理軟硬結合部分,主要是基於linux上C開發,要求懂一定的硬體知識,能夠看懂原理圖,知道常用的通信介面,I2C,SPI等等,出問題還需要調時序。基於某款晶元開發產品時,要看數據手冊,了解地址映射,地址劃分,知道寄存器功能,定義好各種功能介面。要移植bootloader,內核,製作文件系統,編寫自家設備驅動等等,匯編也需要有一定了解。入門不易,精通很難。
問題十:嵌入式軟體發展趨勢有哪些 1.嵌入式開發是一項系統工程,因此要求嵌入式系統廠商不僅要提供嵌入式軟硬體系統本身,同時還需要提供強大的硬體開發工具和軟體包支持。目前很多廠商已經充分考慮到這一點,在主推系統的同時,將開發環境也作為重點推廣。比如三星在推廣Arm7,Arm9晶元的同時還提供開發板和版及支持包(BSP),而WindowCE在主推系統時也提供Embedded VC++作為開發工具,還有Vxworks的Tonado開發環境,DeltaOS的Limda編譯環境等等都是這一趨勢的典型體現。當然,這也是市場競爭的結果。
2.網路化、信息化的要求隨著網際網路技術的成熟、帶寬的提高日益提高,使得以往單一功能的設備如電話、手機、冰箱、微波爐等功能不再單一,結構更加復雜。這就要求晶元設計廠商在晶元上集成更多的功能,為了滿足應用功能的升級,設計師們一方面採用更強大的嵌入式處理器如32位、64位RISC晶元或信號處理器DSP增強處理能力,同時增加功能介面,如USB,擴展匯流排類型,如CAN BUS,加強對多媒體、圖形等的處理,逐步實施片上系統(SOC)的概念。軟體方面採用實時多任務編程技術和交叉開發工具技術來控制功能復雜性,簡化應用程序設計、保障軟體質量和縮短開發周期。如HP
3.網路互聯成為必然趨勢。未來的嵌入式設備為了適應網路發展的要求,必然要求硬體上提供各種網路通信介面。傳統的單片機對於網路支持不足,而新一代的嵌入式處理器已經開始內嵌網路介面,除了支持TCP/IP協議,還有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信介面中的一種或者幾種,同時也需要提供相應的通信組網協議軟體和物理層驅動軟體。軟體方面系統系統內核支持網路模塊,甚至可以在設備上嵌入Web瀏覽器,真正實現隨時隨地用各種設備上網。
4.精簡系統內核、演算法,降低功耗和軟硬體成本。未來的嵌入式產品是軟硬體緊密結合的設備,為了減低功耗和成本,需要設計者盡量精簡系統內核,只保留和系統功能緊密相關的軟硬體,利用最低的資源實現最適當的功能,這就要求設計者選用最佳的編程模型和不斷改進演算法,優化編譯器性能。因此,既要軟體人員有豐富的硬體知識,又需要發展先進嵌入式軟體技術,如Java、Web和WAP等。
5.提供友好的多媒體人機界面 嵌入式設備能與用戶親密接觸,最重要的因素就是它能提供非常友好的用戶界面。圖像界面,靈活的控制方式,使得人們感覺嵌入式設備就象是一個熟悉的老朋友。這方面的要求使得嵌入式軟體設計者要在圖形界面,多媒體技術上痛下苦功。手寫文字輸入、語音撥號上網、收發電子郵件以及彩色圖形、圖像都會使使用者獲得自由的感受。目前一些先進的PDA在顯示屏幕上已實現漢字寫入、短消息語音發布,但一般的嵌入式設備距離這個要求還有很長的路要走。
6、對於企業專用解決方案,如物流管理、條碼掃描、移動信息採集等,這種小型手持嵌入式系統將發揮巨大的作用。自動控制領域,不僅可以用於ATM機,自動售貨機,工業控制等專用設備,和移動通訊設備結合、GPS、娛樂相結合,嵌入式系統同樣可以發揮巨大的作用。
7、在廣播電視領域,美國已開始由模擬電視向數字電視轉變,歐洲的DVB(數字電視廣播)技術已在全球大多數國家推廣。數字音頻廣播(DAB)也已進入商品化試播階段。而軟體、集成電路和新型元器件在產業發展中的作用日益重要。所有上述產品中,都離不開嵌入式系統技術。象前途無可計量的維納斯計劃生產機頂盒,核心技術就是採用32位以上晶元級的嵌入式技術。
Ⅸ 編譯原理已知正規文法:S->aA|bB|ε A->aB|bA B->bA|aS|ε 畫出自動機
Ⅹ 考「軟考」的軟體設計師,該看什麼書
比特培訓-26期(2018年上)-軟體設計師培訓課件,免費下載
鏈接:https://pan..com/s/1oa9pUzl8q8VoWt2UVtsxOQ
軟體設計師是指能根據軟體開發項目管理和軟體工程的要求,按照系統總體設計規格說明書進行軟體設計,編寫程序設計規格說明書等相應的文檔的實用性人才。還能夠組織和指導程序員編寫、調試程序,並對軟體進行優化和集成測試,開發出符合系統總體設計要求的高質量軟體;具有工程師的實際工作能力和業務水平,可聘任工程師職務。2004年人社部將高級程序員更名為軟體設計師。