Ⅰ 什麼是機器語言
英 文: Machine Language
別 名: 低級語言,二進制代碼語言
定 義:
機器語言是直接用二進制代碼指令表達的計算機語言,指令是用0和1組成的一串代碼,它們有一定的位數,並分成若干段,各段的編碼表示不同的含義,例如某台計算機字長為16位,即有16個二進制數組成一條指令或其它信息。16個0和1可組成各種排列組合,通過線路變成電信號,讓計算機執行各種不同的操作。
如某種計算機的指令為1011011000000000,它表示讓計算機進行一次加法操作;而指令1011010100000000則表示進行一次減法操作。它們的前八位表示操作碼,而後八位表示地址碼。從上面兩條指令可以看出,它們只是在操作碼中從左邊第0位算起的第6和第7位不同。這種機型可包含256(=2的8次方)個不同的指令。
特 點:
機器語言或稱為二進制代碼語言,計算機可以直接識別,不需要進行任何翻譯。每台機器的指令,其格式和代碼所代表的含義都是硬性規定的,故稱之為面向機器的語言,也稱為機器語言。它是第一代的計算機語言。機器語言對不同型號的計算機來說一般是不同的。
缺 點:
1.大量繁雜瑣碎的細節牽制著程序員,使他們不可能有更多的時間和精力去從事創造性的勞動,執行對他們來說更為重要的任務。如確保程序的正確性、高效性。
2.程序員既要駕馭程序設計的全局又要深入每一個局部直到實現的細節,即使智力超群的程序員也常常會顧此失彼,屢出差錯,因而所編出的程序可靠性差,且開發周期長。
3.由於用機器語言進行程序設計的思維和表達方式與人們的習慣大相徑庭,只有經過較長時間職業訓練的程序員才能勝任,使得程序設計曲高和寡。
4.因為它的書面形式全是"密"碼,所以可讀性差,不便於交流與合作。
5.因為它嚴重地依賴於具體的計算機,所以可移植性差,重用性差。
這些弊端造成當時的計算機應用未能迅速得到推廣。
機器語言;
一種cpu的指令系統,也稱cpu的機器語言。它是該cpu可以識別的一組由1和0序列構成的指令碼。用機器語言編程序,就是從實用的cpu的指令系統中挑選合適的指令,組成一個指令系列。
Ⅱ 什麼是機械語言
機器語言就是01這些東西,0表示不加電,1表示加電,電腦按照這樣的01序列回執行,就能完成一項項復答雜的任務。機器語言也就是機器能直接理解的語言。早期大型計算機的輸入都是用紙帶,上面打孔,有孔表示1,沒有表示0,這樣就加大了人工投入成本。
Ⅲ 機械語言/匯編語言/低級語言/高級語言各是指的什麼
程序設計語言,通常簡稱為編程語言,是一組用來定義計算機程序的語法規則。它是一種被標准化的交流技巧,用來向計算機發出指令。一種計算機語言讓程序員能夠准確地定義計算機所需要使用的數據,並精確地定義在不同情況下所應當採取的行動。
程序設計語言原本是被設計成專門使用在計算機上的,但它們也可以用來定義演算法或者數據結構。正是因為如此,程序員才會試圖使程序代碼更容易閱讀。
設計語言往往使程序員能夠比使用機器語言更准確地表達他們所想表達的目的。對那些從事計算機科學的人來說,懂得程序設計語言是十分重要的,因為在當今所有的計算都需要程序設計語言才能完成。
在過去的幾十年間,大量的程序設計語言被發明、被取代、被修改或組合在一起。盡管人們多次試圖創造一種通用的程序設計語言,卻沒有一次嘗試是成功的。之所以有那麼多種不同的編程語言存在的原因是,編寫程序的初衷其實也各不相同;新手與老手之間技術的差距非常大,而有許多語言並對新手來說太難學;還有,不同程序之間的運行成本(runtime cost)各不相同。
有許多用於特殊用途的語言,只在特殊情況下使用。例如,PHP專門用來顯示網頁;Perl更適合文本處理;C語言被廣泛用於操作系統和編譯器的開發(所謂的系統編程)。
高級程序設計語言(也稱高級語言)的出現使得計算機程序設計語言不再過度地倚賴某種特定的機器或環境。這是因為高級語言在不同的平台上會被編譯成不同的機器語言,而不是直接被機器執行。最早出現的編程語言之一FORTRAN的一個主要目標,就是實現平台獨立。
雖然大多數的語言可以既可被編譯(compiled)又可被解譯(interpreted),但大多數只在一種情況下能夠良好運行。在一些編程系統中,程序要經過幾個階段的編譯,一般而言,後階段的編譯往往更接近機器語言。這種常用的使用技巧最早在1960年代末用於BCPL,編譯程序先編譯一個叫做「0代碼」的轉換程序(representation),然後再使用虛擬器轉換到可以運行於機器上的真實代碼。這種成功的技巧之後又用於Pascal和P-code,以及Smalltalk和二進制碼,雖然在很多時候,中間過渡的代碼往往是解譯,而不是編譯的。
如果所使用的翻譯的機制是將所要翻譯的程序代碼作為一個整體翻譯,並之後運行內部格式,那麼這個翻譯過程就稱為編譯。因此,一個編譯器是一個將可閱讀的程序文本(叫做源代碼)作為輸入的數據,然後輸出可執行文件(object code)。所輸出的可執行文件可以是機器語言,由計算機的中央處理器直接運行,或者是某種模擬器的二進制代碼。
如果程序代碼是在運行時才即時翻譯,那麼這種翻譯機制就被稱作解譯。經解譯的程序運行速度往往比編譯的程序慢,但往往更具靈活性,因為它們能夠與執行環境互相作用。參見解譯語言。
目錄
1 特點
1.1 數據和數據結構
1.2 指令及流程式控制制
1.3 引用機制和重用
2 程序設計語言的歷史
3 常見的程序設計語言
4 參見
特點
每一種程序設計語言可以被看作是一套包含語法、詞彙和含義的正式規范。
這些規范通常包括:
數據和數據結構
指令及流程式控制制
引用機制和重用
設計哲學
大多數被廣泛使用或經久不衰的語言,擁有負責標准化的組織,經常會晤來創造及發布該語言的正式定義,並討論擴展或貫徹現有的定義。
數據和數據結構
現代計算機內部的數據都只以二元方式儲存,即開-關模式(on-off)。現實世界中代表信息的各種數據,例如名字、銀行賬號、度量以及同樣低端的二元數據,都經由程序設計語言整理,成為高端的概念。
一個程序中專門處理數據的那個系統被稱為程序語言的型態系統(type system);對型態系統的研究和設計被稱為型態理論(type theory)。語言可以被分為靜態型態系統(statically typed systems),例如C++和Java,和動態型態系統(dynamically typed systems),例如Lisp,JavaScript,Tcl和Prolog。前者可被進一步分為包含宣告型態(manifest type)的語言,即每一個變數和函數的型態都清楚地宣告,或type-inferred語言(例如MUMPS,ML)。
大多數語言還能夠在內置的型態基礎上組合出復雜的數據結構型態(使用數組,列表,堆棧,文件等等)。面向對象語言(Object Oriented Language,又譯作「物件導向語言」)允許程序員定義新的數據型態,即「對象」或「物件」(objects),以及運行於該對象的函數(functions)和方法(methods)。
除了何時以及如何確定表達式和型態的聯系,另外一個重要的問題就是語言到底定義了哪些型態,以及允許哪些型態作為表達式的值。諸如C編程語言之類的低端語言允許程序命名內存位置、內存區域以及編譯時的常量;ANSI C甚至允許表達式返回結構值(struct values)。功能性的語言一般允許變數直接使用運行時計算出的值,而不是指出該值可能儲存的內存地址。
指令及流程式控制制
一旦數據被確定,機器必須被告知如何對這些數據進行處理。較簡單的指令可以使用關鍵字或定義好的語法結構來完成。不同的語言利用序列系統來取得或組合這些語句。除此之外,一個語言中的其他指令也可以用來控制處理的過程(例如分支、循環等)。
引用機制和重用
引用的中心思想是必須有一種間接設計儲存空間的方法。最常見的方法是通過命名變數。根據不同的語言,進一步的引用可以包括指向其他儲存空間的指針。還有一種類似的方法就是命名一組指令。大多數程序設計語言使用宏調用、過程調用或函數調用。使用這些代替的名字能讓程序更靈活,並更具重用性。
程序設計語言的歷史
二十世紀四十年代當計算機剛剛問世的時候,程序員必須手動控制計算機。當時的計算機十分昂貴,唯一想到利用程序設計語言來解決問題的人是德國工程師楚澤(Konrad Zuse)。
幾十年後,計算機的價格大幅度下跌,而計算機程序也越來越復雜。也就是說,開發時間已經遠比運行時間來得寶貴。
於是,新的集成、可視的開發環境越來越流行。它們減少了所付出的時間、金錢(以及腦細胞)。只要輕敲幾個鍵,一整段代碼就可以使用了。這也得益於可以重用的程序代碼庫。
常見的程序設計語言
ActionScript
APL、A+和J
Ada
匯編語言
AWK
Basic、Fortran
VBScript
Brainfuck
C、C++
C#
Clipper
COBOL
dBase
PASCAL、Delphi
Forth
FoxPro
F#
Fava
IDL
Java
JavaScript
J#
LISP
Lua
LOGO
Mola
Nuva
Perl
PHP
PL/I
Prolog
Python
R
Ruby
Scheme
Smalltalk
SQL
Tcl/Tk
Visual Basic
Visual FoxPro
XML
[編輯] 參見
計算機科學課程列表
程序設計語言列表
編譯器
Hello World程序
腳本語言
維基程序員
程序設計語言編輯
工業編程語言: A+ | Ada | 匯編語言 | Basic | Brainfuck | C語言 | C++ | C++/CLI | Cg | COBOL | Eiffel | Erlang | FORTRAN |Fuxi| IronPython | Java | JRuby | Jython | LISP | Lua | Nuva | Oberon | Objective-C | Ocaml | Pascal | Perl | Powerbuilder | Python | QBASIC | R語言 | REXX | Ruby | Self | Smalltalk | SQL | Tcl語言 | Visual Basic | PHP | Lua | C# | F# | J# | Visual Basic .NET| 機器語言
腳本編程語言: ActionScript | JavaScript | JScript | Nuva | PostScript | VBScript
學術編程語言: APL/J | Haskell | Logo | ML | Prolog | Scheme | SAC
其他編程語言: ALGOL | BASIC | Clipper | Forth | Fuxi|Mola-2/Mola-3 | MUMPS | PL/I | Simula
取自https://secure.wikimedia.org/wikipedia/zh/w/index.php?title=%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E8%AF%AD%E8%A8%80&variant=zh-cn [經過修改】
頁面分類: 程序設計語言 | 人工語言
程序設計語言
programming language
用於書寫計算機程序的語言。語言的基礎是一組記號和一組規則。根據規則由記號構成的記號串的總體就是語言。在程序設計語言中,這些記號串就是程序。程序設計語言有3個方面的因素,即語法、語義和語用。語法表示程序的結構或形式,亦即表示構成語言的各個記號之間的組合規律,但不涉及這些記號的特定含義,也不涉及使用者。語義表示程序的含義,亦即表示按照各種方法所表示的各個記號的特定含義,但不涉及使用者。語用表示程序與使用者的關系。
基本成分 語言的種類千差萬別。但是,一般說來,基本成分不外4種。①數據成分。用以描述程序中所涉及的數據。②運算成分。用以描述程序中所包含的運算。③控製成分。用以表達程序中的控制構造。④傳輸成分。用以表達程序中數據的傳輸。
分類 按語言級別,有低級語言和高級語言之分。低級語言包括字位碼、機器語言和匯編語言。它的特點是與特定的機器有關,功效高,但使用復雜、繁瑣、費時、易出差錯。其中,字位碼是計算機唯一可直接理解的語言,但由於它是一連串的字位,復雜、繁瑣、冗長,幾乎無人直接使用。機器語言是表示成數碼形式的機器基本指令集,或者是操作碼經過符號化的基本指令集。匯編語言是機器語言中地址部分符號化的結果,或進一步包括宏構造。
高級語言的表示方法要比低級語言更接近於待解問題的表示方法,其特點是在一定程度上與具體機器無關,易學、易用、易維護。當高級語言程序翻譯成相應的低級語言程序時,一般說來,一個高級語言程序單位要對應多條機器指令,相應的編譯程序所產生的目標程序往往功效較低。
按照用戶要求,有過程式語言和非過程式語言之分。過程式語言的主要特徵是,用戶可以指明一列可順序執行的運算,以表示相應的計算過程。例如,FORTRAN,COBOL,ALGOL60等都是過程式語言。非過程式語言的含義是相對的,凡是用戶無法指明表示計算過程的一列可順序執行的運算的語言,都是非過程式語言。著名的例子是表格的生成程序(RPG)。它實質上不是語言,使用者只須指明輸入和預期的輸出,無須指明為了得到輸出所需的過程。
按照應用范圍,有通用語言和專用語言之分。目標非單一的語言稱為通用語言,例如FORTRAN、COBOL、ALGOL60等都是通用語言。目標單一的語言稱為專用語言,如APT等。
按照使用方式,有互動式語言和非互動式語言之分。具有反映人�機交互作用的語言成分的稱為互動式語言,如BASIC語言就是互動式語言。語言成分不反映人-機交互作用的稱非互動式語言,如FORTRAN、COBOL、ALGOL60、PASCAL等都是非互動式語言。
按照成分性質,有順序語言、並發語言和分布語言之分。只含順序成分的語言稱為順序語言,如FORTRAN、COBOL等都屬順序語言。含有並發成分的語言稱為並發語言,如並發PASCAL、MODULA和ADA等都屬並發語言。考慮到分布計算要求的語言稱為分布語言,如MODULA*便屬分布語言。
傳統的程序設計語言大都以諾伊曼式的計算機為設計背景,因而又稱為諾伊曼式語言。J.巴克斯於1977年提出的函數式語言,則以非諾伊曼式的計算機為設計背景,因而又稱為非諾伊曼式語言。
主要語言 ① APT( Automatically Pro-grammed Tools)——自動數控程序。第一個專用語言,用於數控機床加工,1956。
②FORTRAN(FORmula TRANslation)——公式翻譯程序設計語言。第一個廣泛使用的高級語言,為廣大科學和工程技術人員使用計算機創造了條件,1956。
③ FLOW-MATIC 。第一個適用於商用數據處理的語言,其語法與英語語法類似,1956。
④IPL-V(Information Processing Language V)——信息處理語言。第一個表處理語言,可看成是一種適用於表處理的假想計算機上的匯編語言,1958。
⑤ COMIT(COmpiler Massachusetts Institute foTechnology) —— 馬薩諸塞州理工學院編譯程序。第一個現實的串處理和模式匹配語言,1957。
⑥COBOL(COmmon Business Oriented Language)——面向商業的通用語言。使用最廣泛的商用語言,它是適用於數據處理的高級程序設計語言,1960。
⑦ALGOL60(ALGOrithmic language60) ——演算法語言60。程序設計語言由技藝轉向科學的重要標志,其特點是局部性、動態性、遞歸性和嚴謹性,1960。
⑧LISP(LISt Proceessing——表處理語言。引進函數式程序設計概念和表處理設施,在人工智慧的領域內廣泛使用,1960。
⑨JOVIAL(Jules Own Version of IAL)——國際演算法語言的朱爾斯文本。第一個具有處理科學計算、輸入-輸出邏輯信息、數據存儲和處理等綜合功能的語言。多數JOVIAL編譯程序都是用JOVIAL書寫的,1960。
⑩GPSS(General-purpose Systems Simulator)——通用系統模擬語言 。第一個使模擬成為實用工具的語言 ,1961。
�JOSS(Johnniac Open-Shop System ——。第一個互動式語言,它有很多方言,曾使分時成為實用,1964。
�FORMAC(FORmula MAnipulation Compiler)——公式翻譯程序設計語言公式處理編譯程序。第一個廣泛用於需要形式代數處理的數學問題領域內的語言,1964。
�SIMULA (SIMUlation LAnguage)—— 模擬語言 。主要用於模擬的語言,是ALGOL60的擴充,1966。SIMULA67是1967年SIMULA的改進。其中引進的「類」概念,是現代程序設計語言中「模塊」概念的先聲。
�APL/360 (A Programming Language)——程序設計語言360。一種提供很多高級運算符的語言,可使程序人員寫出甚為緊湊的程序 ,特別是涉及到矩陣計算的程序 ,1967。
� PASCAL ( Philips Automatic Sequence CALcul-ator)——菲利浦自動順序計算機語言。在ALGOL60的基礎上發展起來的重要語言 ,其最大特點是簡明性與結構化,1971。
�PROLOG(PROgrammingin LOGic)。 一種處理邏輯問題的語言。它已經廣泛應用於關系資料庫、數理邏輯、抽象問題求解、自然語言理解等多種領域中,1973。
�ADA。一種現代模塊化語言。屬於ALGOLPASCAL語言族,但有較大變動。其主要特徵是強類型化和模塊化,便於實現個別編譯,提供類屬設施,提供異常處理,適於嵌入式應用,1979。
除了上面列舉的語言外,還有一些較為通用的語言,特別是BASIC、PL/1、SNOBOL、ALGOL68等。BASIC雖然簡單易學,使用廣泛,但其中沒有什麼新概念,而且並不是第一個互動式語言。PL/1的設計 思想來源於JOVIAL,其功能來源於FORTRAN、COBOL、ALGOL60,具有中斷表處理等設施。SNOBOL是一種好 的語言,對COMIT中若干概念做了明顯的改進。ALGOL68在語言成分和 描述方法方面雖有所創新,但應用尚不廣泛。
發展趨勢 程序設計語言是軟體的重要方面。它的發展趨勢是模塊化、簡明性和形式化。①模塊化。不僅語言具有模塊成分,程序由模塊組成,而且語言本身的結構也是模塊化的。②簡明性。涉及的基本概念不多,成分簡單,結構清晰,易學易用。③形式化。發展合適的形式體系,以描述語言的語法、語義、語用。
Ⅳ 什麼是機械語言 匯編語言和高級語言
機器語言就是01這些東西,0表示不加電,1表示加電,電腦按照這樣的01序列執行,就能完成一項項復雜的任務。機器語言也就是機器能直接理解的語言。早期大型計算機的輸入都是用紙帶,上面打孔,有孔表示1,沒有表示0,這樣就加大了人工投入成本。
匯編語言是比機器語言更接近於人類的語言。你想阿,總用0,1輸入太麻煩了,我們需要大量的人來計算來能輸入,所以後來就出現了匯編,匯編更接近於自然語言,但同時語法卻象機器語言。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言。
由於匯編語言依賴於硬體體系,且助記符量大難記,於是人們又發明了更加易用的所謂高級語言。在這種語言下,其語法和結構更類似普通英文,且由於遠離對硬體的直接操作,使得一般人經過學習之後都可以編程。高級語言通常按其基本類型、代系、實現方式、應用范圍等分類。
Ⅳ 機械行業設備的編程一般學習什麼語言好
C語言,匯編語言,Java
Ⅵ 機械自動化控制的語言!!!
機械自動化控制語言以C語言為主體,以C++語言為輔的構成方式組成:
基本構成
數據類型
C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
常量與變數
常量其值不可改變,符號常量名通常用大寫。
變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。
數組
如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。
指針
如果一個變數聲明時在前面使用 * 號,表明這是個指針型變數。換句話說,該變數存儲一個地址,而 *(此處特指單目運算符 * ,下同。C語言中另有 雙目運算符 *) 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區別於其他同時代高級語言的主要特徵之一。
指針不僅可以是變數的地址,還可以是數組、數組元素、函數的地址。通過指針作為形式參數可以在函數的調用過程得到一個以上的返回值,不同於return(z)這樣的僅能得到一個返回值。
指針是一把雙刃劍,許多操作可以通過指針自然的表達,但是不正確的或者過分的使用指針又會給程序帶來大量潛在的錯誤。
C語言的字元串其實就是以'\0'字元結尾的char型數組,使用字元型並不需要引用庫,但是使用字元串就需要C標准庫裡面的一些用於對字元串進行操作的函數。它們不同於字元數組。使用這些函數需要引用頭文件<string.h>。
文件輸入/輸出
在C語言中,輸入和輸出是經由標准庫中的一組函數來實現的。在ANSI C中,這些函數被定義在頭文件<stdio.h>;中。
標准輸入/輸出
有三個標准輸入/輸出是標准I/O庫預先定義的:
stdin標准輸入
stdout標准輸出
stderr輸入輸出錯誤
運算
C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。在學習中,對此合理進行分類,找出它們與數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算符在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。
先要明確運算符按優先順序不同分類,《C程序設計》運算符可分為15種優先順序,從高到低,優先順序為1 ~ 15,除第2.13級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序。
關鍵字
關鍵字又稱為保留字,就是已被C語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名、函數名等標識符
由ISO標準定義的C語言關鍵字共32個:
auto double int struct break else long switch
case enum register typedef char extern return union
const float short unsigned continue for signed void
default goto sizeof volatile do if while static inline
restrict _Bool _Complex _Imaginary _Generic[21]
基本數據類型
void:聲明函數無返回值或無參數,聲明無類型指針,顯示丟棄運算結果。(C89標准新增)
char:字元型類型數據,屬於整型數據的一種。(K&R時期引入)
int:整型數據,表示範圍通常為編譯器指定的內存位元組長。(K&R時期引入)
float:單精度浮點型數據,屬於浮點數據的一種。(K&R時期引入)
double:雙精度浮點型數據,屬於浮點數據的一種。(K&R時期引入)
_Bool:布爾型(C99標准新增)
_Complex:復數的基本類型(C99標准新增)
_Imaginary:虛數,與復數基本類型相似,沒有實部的純虛數(C99標准新增)
_Generic:提供重載的介面入口(C11標准新增)
類型修飾關鍵字
short:修飾int,短整型數據,可省略被修飾的int。(K&R時期引入)
long:修飾int,長整型數據,可省略被修飾的int。(K&R時期引入)
long long:修飾int,超長整型數據,可省略被修飾的int。(C99標准新增)
signed:修飾整型數據,有符號數據類型。(C89標准新增)
unsigned:修飾整型數據,無符號數據類型。(K&R時期引入)
restrict:用於限定和約束指針,並表明指針是訪問一個數據對象的唯一且初始的方式。(C99標准新增)
復雜類型關鍵字
struct:結構體聲明。(K&R時期引入)
union:聯合體聲明。(K&R時期引入)
enum:枚舉聲明。(C89標准新增)
typedef:聲明類型別名。(K&R時期引入)
sizeof:得到特定類型或特定類型變數的大小。(K&R時期引入)
inline:內聯函數用於取代宏定義,會在任何調用它的地方展開。(C99標准新增)
存儲級別關鍵字
auto:指定為自動變數,由編譯器自動分配及釋放。通常在棧上分配。與static相反。當變數未指定時默認為auto。(K&R時期引入)
static:指定為靜態變數,分配在靜態變數區,修飾函數時,指定函數作用域為文件內部。(K&R時期引入)
register:指定為寄存器變數,建議編譯器將變數存儲到寄存器中使用,也可以修飾函數形參,建議編譯器通過寄存器而不是堆棧傳遞參數。(K&R時期引入)
extern:指定對應變數為外部變數,即標示變數或者函數的定義在別的文件中,提示編譯器遇到此變數和函數時在其他模塊中尋找其定義。(K&R時期引入)
const:指定變數不可被當前線程改變(但有可能被系統或其他線程改變)。(C89標准新增)
volatile:指定變數的值有可能會被系統或其他線程改變,強制編譯器每次從內存中取得該變數的值,阻止編譯器把該變數優化成寄存器變數。(C89標准新增)
流程式控制制關鍵字
跳轉結構
return:用在函數體中,返回特定值(如果是void類型,則不返回函數值)。(K&R時期引入)
continue:結束當前循環,開始下一輪循環。(K&R時期引入)
break:跳出當前循環或switch結構。(K&R時期引入)
goto:無條件跳轉語句。(K&R時期引入)
分支結構
if:條件語句,後面不需要放分號。(K&R時期引入)
else:條件語句否定分支(與if連用)。(K&R時期引入)
switch:開關語句(多重分支語句)。(K&R時期引入)
case:開關語句中的分支標記,與switch連用。(K&R時期引入)
default:開關語句中的「其他」分支,可選。(K&R時期引入)
編譯
#define 預編譯宏
#if 表達式 #else if 表達式 #else #endif 條件編譯
#ifdef 宏 #else #endif 條件編譯
#ifndef 宏 #else #endif 條件編譯與條件編譯
語法結構
順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如:a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為:c = a; a = b; b = c;執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b =c;則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等。[22]
選擇結構
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用選擇結構。選擇結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。選擇結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的選擇語句。選擇結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。[23]
循環結構
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do while循環和for循環。四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤。
特別要注意在循環體內應包含趨於結束的語句(即循環變數值的改變),否則就可能成了一個死循環,這是初學者的一個常見錯誤。
三個循環的異同點:用while和do…while循環時,循環變數的初始化的操作應在循環體之前,而for循環一般在語句1中進行的;while循環和for循環都是先判斷表達式,後執行循環體,而do…while循環是先執行循環體後判斷表達式,也就是說do…while的循環體最少被執行一次,而while循環和for就可能一次都不執行。另外還要注意的是這三種循環都可以用break語句跳出循環,用continue語句結束本次循環,而goto語句與if構成的循環,是不能用break和 continue語句進行控制的。
順序結構、分支結構和循環結構並不彼此孤立的,在循環中可以有分支、順序結構,分支中也可以有循環、順序結構,其實不管哪種結構,均可廣義的把它們看成一個語句。在實際編程過程中常將這三種結構相互結合以實現各種演算法,設計出相應程序,但是要編程的問題較大,編寫出的程序就往往很長、結構重復多,造成可讀性差,難以理解,解決這個問題的方法是將C程序設計成模塊化結構。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
基本特性
C++語言代碼
1、高級語言:它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。
2、結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
4、代碼級別的跨平台:由於標準的存在,使得幾乎同樣的C代碼可用於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要進行硬體操作的場合,優於其它高級語言。
5、使用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。
特有特點
C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
不同的變數類型可以用結構體(struct)組合在一起。
只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。
部份的變數類型可以轉換,例如整型和字元型變數。
通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
預編譯處理(preprocessor)讓C語言的編譯更具有彈性。
優缺點
優點
1、簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
C語言的 Hello World 程序
2、運算符豐富
C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3、數據類型豐富
C語言的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據結構的運算。並引入了指針概念,使程序效率更高。
4、表達方式靈活實用
C語言提供多種運算符和表達式值的方法,對問題的表達可通過多種途徑獲得,其程序設計更主動、靈活。它語法限制不太嚴格,程序設計自由度大,如對整型量與字元型數據及邏輯型數據可以通用等。
5、允許直接訪問物理地址,對硬體進行操作
由於C語言允許直接訪問物理地址,可以直接對硬體進行操作,因此它既具有高級語言的功能,又具有低級語言的許多功能,能夠像匯編語言一樣對位(bit)、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟體。
6、生成目標代碼質量高,程序執行效率高
C語言描述問題比匯編語言迅速,工作量小、可讀性好,易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編程序生成的目標代碼效率低10%~20%。
C語言在不同機器上的C編譯程序,86%的代碼是公共的,所以C語言的編譯程序便於移植。在一個環境上用C語言編寫的程序,不改動或稍加改動,就可移植到另一個完全不同的環境中運行。
8、表達力強
C語言有豐富的數據結構和運算符。包含了各種數據結構,如整型、數組類型、指針類型和聯合類型等,用來實現各種數據結構的運算。C語言的運算符有34種,范圍很寬,靈活使用各種運算符可以實現難度極大的運算。
C語言能直接訪問硬體的物理地址,能進行位(bit)操作。兼有高級語言和低級語言的許多優點。
它既可用來編寫系統軟體,又可用來開發應用軟體,已成為一種通用程序設計語言。
另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
缺點
1、 C語言的缺點主要表現在數據的封裝性上,這一點使得C在數據的安全性上有很大缺陷,這也是C和C++的一大區別。
2、 C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。也就是說,對用C語言的人,要求對程序設計更熟練一些。
Ⅶ 工業機器人機械手什麼語言編程
通常是c語言和c++
這個機械手都是有一套相應的軟體的,
而不是系統,
就像流水線上有一回台windows電腦,然後windows電腦上安裝答了機械手的控制軟體.
都是這樣的,不可能機械手就單獨一個操作系統.
就像取款機,也是在windows上裝了一款控製取款機的軟體.
請採納.
Ⅷ 數控機床操作系統是用什麼語言編寫的
每個數控系統的編程語言和指令各不相同,但其間也有很多相通之處。比如說相同的功能代碼和程序格式。
一、功能代碼
字與字的功能
1、字元與代碼
字元是用來組織、控制或表示數據的一些符號,如數字、字母、標點符號、數學運算符等。國際上廣泛採用兩種標准代碼:
1)ISO國際標准化組織標准代碼
2)EIA美國電子工業協會標准代碼
⒉字
在數控加工程序中,字是指一系列按規定排列的字元,作為一個信息單元存儲、傳遞和操作。字是由一個英文字母與隨後的若干位十進制數字組成,這個英文字母稱為地址符。
如:「X2500」是一個字,X為地址符,數字「2500」為地址中的內容。(FANUC系統中,地址中的值如果帶小數點,表示是毫米單位,如果不帶小數點,表示是微米單位。如X2500. 表示X坐標2500毫米 X2500 表示X坐標2500微米)
⒊字的功能
組成程序段的每一個字都有其特定的功能含義,以下是以FANUC-0M數控系統的規范為主來介紹的。
⑴順序號字N
順序號又稱程序段號或程序段序號。順序號位於程序段之首,由順序號字N和後續數字組成。其作用為校對、條件跳轉、固定循環等。使用時應間隔使用,如N10 N20 N30…… (程序號只是起標記作用,沒有實際的意義)
⑵准備功能字G
准備功能字的地址符是G,又稱為G功能或G指令,是用於建立機床或控制系統工作方式的一種指令。G00~G99
⑶尺寸字
尺寸字用於確定機床上刀具運動終點的坐標位置。
其中,第一組 X,Y,Z,U,V,W,P,Q,R 用於確定終點的直線坐標尺寸;第二組 A,B,C,D,E 用於確定終點的角度坐標尺寸;第三組 I,J,K 用於確定圓弧輪廓的圓心坐標尺寸。在一些數控系統中,還可以用P指令暫停時間、用R指令圓弧的半徑等。
⑷進給功能字F
進給功能字的地址符是F,又稱為F功能或F指令,用於指定切削的進給速度。對於車床,F可分為每分鍾進給和主軸每轉進給兩種,對於其它數控機床,一般只用每分鍾進給。F指令在螺紋切削程序段中常用來指令螺紋的導程。
⑸主軸轉速功能字S
主軸轉速功能字的地址符是S,又稱為S功能或S指令,用於指定主軸轉速。單位為r/min。
⑹刀具功能字T
刀具功能字的地址符是T,又稱為T功能或T指令,用於指定加工時所用刀具的編號,如T01。對於數控車床,其後的數字還兼作指定刀具長度補償和刀尖半徑補償用,如T0101。
⑺輔助功能字M
輔助功能字的地址符是M,後續數字一般為1~3位正整數,又稱為M功能或M指令,用於指定數控機床輔助裝置的開關動作,如M00~M99。
二、程序格式
程序段格式
一個數控加工程序是若干個程序段組成的。程序段格式是指程序段中的字、字元和數據的安排形式。程序段格式舉例:
N30G01 X88.1 Y30.2 F500 S3000 T02 M08;
N40 X90; (本程序段省略了續效字「G01,Y30.2,F500,S3000,T02,M08」,但它們的功能仍然有效)
在程序段中 ,必須明確組成程序段的各要素:
移動目標 :終點坐標值X、Y、Z;
沿怎樣的軌跡移動:准備功能字G;
進給速度:進給功能字F;
切削速度:主軸轉速功能字S;
使用刀具:刀具功能字T;
機床輔助動作:輔助功能字M。
程序格式
1)程序開始符、結束符
程序開始符、結束符是同一個字元,ISO代碼中是%,EIA代碼中是EP,書寫時要單列段。
2)程序名
程序名有兩種形式:一種是英文字母O(%或P)和1~4位正整數組成;另一種是由英文字母開頭,字母數字多字元混合組成的程序名(如TEST1 等)。一般要求單列一段。
3)程序主體
程序主體是由若干個程序段組成的。每個程序段一般佔一行..
4)程序結束
程序結束可以用M02或M30指令。一般要求單列一段。
加工程序的一般格式舉例:
% // 開始符
O2000 //程序名
N10 G54 G00 X10.0 Y20.0 M03 S1000 //程序主體
N20 G01 X60.0 Y30.0 F100 T02 M08
N30 X80.0
…… .
N200 M30 //程序結束
% // 結束符(來自網路)
Ⅸ 什麼是機械編程需要什麼
機械編程為使機器人完成某種任務而設置的動作順序描述。
機械編程需要學習的內容:
1、工業機器人應用編程,就學對應廠家的,如ABB的RAPID,PLC,這個要平台動手操作;
2、機器人演算法開發,就得學習C/C++,或者matlab;
3、機器人控制器開發,C/C++,RTX等,也有在linuxROS下開發的,界面MFC.QT.C#;
4、機器視覺opencv等,再帶點機器學習,可能用到Python。

機電行業能用到編程的地方非常多,工控的PLC需要編程,其他人說的採集數據需要上位機也需要MFC或者Labview等編程,包括各種通信協議。
開發一些專用的控制器也需要一些MCU或者DSP也需要C語言來實現,還涉及控制器實現的演算法通過C來實現,比如控制個系統,使用最基本的模糊神經控制,或最基本的PID,工業上很多用的地方都需要機電出身的人把演算法編成C語言。
有一些會使用基於模型的設計MATLAB和c混合,老平台甚至需要用匯編,高端一些需要速度快的場合的需要使用FPGA,有一些學機械的也會弄一些資料庫開發的工作。
另外涉及到純機械領域,各種計算或者優化需要MATLAB,包括一些演算法模擬用的simulink也是編程,使用個ANSYS有限元分析最基本的強度剛度,也需要APDL的程序。
(9)機械操作是什麼語言擴展閱讀:
機械運動和作業的指令都是由程序進行控制,常見的編制方法有兩種,示教編程方法和離線編程方法。
其中示教編程方法包括示教、編輯和軌跡再現,可以通過示教盒示教和導引式示教兩種途徑實現。由於示教方式實用性強,操作簡便,因此大部分機器人都採用這種方式。
離線編程方法是利用計算機圖形學成果,藉助圖形處理工具建立幾何模型,通過一些規劃演算法來獲取作業規劃軌跡。與示教編程不同,離線編程不與機器人發生關系,在編程過程中機器人可以照常工作。