近日,人民郵電出版社下屬圖靈公司出版了所謂“圖靈原創”《C程序設計伴侶》一書,作者 陳良喬,策划編輯 陳冰
然而,閱讀該書樣張時發現,很多部分是從百度百科及CSDN網友qj6549的博客“復制”“粘貼”來的
且作者不提出處,不提原創者名字。我在此公開質問圖靈公司:這是不是抄襲、剽竊?!
1.2.B 從匯編語言到高級語言——風格各異的計算機語言
在理解了計算機語言的本質以及使用過程之后,我們有必要來了解一下計算機世界中的各種語言。就像現實世界中有很多種語言一樣,有廣為人知的英語,也有只有幾百人知道的土著語言;有寫起來方方正正的漢語,也有寫起來拐彎抹角的阿拉伯語。不同的語言各具特色,也都有各自不同的應用場景。這一現象在計算機世界中也是同樣的。雖然計算機語言可以泛指所有人與計算機交流的語言,包括譚老師介紹的機器語言、符號語言以及高級語言,但是實際上,機器語言和符號語言我們都很少用到,更多的,我們與計算機溝通是通過高級語言,也就是我們在這里要介紹的高級程序設計語言。
在過去的幾十年間,大量的計算機程序設計語言被發明、被取代、被修改或組合在一起成為新的計算機語言。經過實踐的檢驗,現在還在業界普遍流行的計算機程序設計語言主要有以下幾種:
l 匯編語言
匯編語言(Assembly Language)是面向機器的程序設計語言。它是一種功能很強的程序設計語言,也是可以充分利用計算機所有硬件特性並能直接控制硬件的語言。相對於機器語言,在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。於是匯編語言亦稱為符號語言。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序(也被稱作匯編器),匯編程序是系統軟件中的語言處理系統軟件。匯編程序把匯編語言翻譯成機器語言的過程稱為匯編,也就對應於高級程序設計語言的編譯,而匯編程序也就對應於高級語言的編譯程序。
現在主流的匯編器如MASM、TASM等等為我們寫匯編程序提供了很多類似於高級語言的特征,比如結構化、抽象等。在這樣的環境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經類同於高級語言。現在的匯編環境已經如此高級,即使全部用匯編語言來編寫Windows的應用程序也不是一件難事,但這並不是匯編語言的長處。匯編語言的長處在於編寫高效且需要對機器硬件精確控制的程序。大多數情況下,C語言程序員不需要使用匯編語言,因為即便是硬件驅動這樣的底層程序在操作系統中也可以完全用C語言來實現,再加上GCC這樣一些優秀的編譯器目前已經能夠對最終生成的代碼進行很好的優化,的確有足夠的理由讓我們可以暫時將匯編語言拋在一邊,放進歷史博物館了。但實際情況是,C語言程序員有時還是需要使用匯編,或者不得不使用匯編,理由很簡單:匯編語言精簡、高效,同時與庫無關。特別是當今越來越流行的嵌入式硬件環境下的開發,首先必然面臨如何減少系統大小、提高執行效率等問題,而這正是匯編語言的用武之地。在這一領域,目前正是匯編語言的春天。
l C語言
C語言是我們這本書的主角,在程序設計當中,自然少不了它的戲份。作為一種計算機程序設計語言,它既具有高級語言的面向過程的特點,又具有匯編語言的面向底層的特點。它可以作為操作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用范圍非常廣泛,不僅僅是在軟件開發上,而且各類科研都需要用到C語言,具體應用包括單片機以及嵌入式系統開發等。關於C語言,我們稍后還有詳細介紹。不要走開,馬上就來。
l C++語言
說到C語言,就不得不提到C++語言。單單從它們的名字上,就可以看出它們之間的親戚關系。C++語言是一種優秀的面向對象程序設計語言,它是在C語言的基礎上增加了一些現代程序設計語言的機制(例如面向對象思想、異常處理等)發展而來的,但它比C語言更容易為人們所學習和掌握。C++以其獨特的語言機制在計算機科學的各個領域中得到了廣泛的應用。相對於C語言的面向過程的設計方法,C++的面向對象的設計思想讓它有了一個質的飛躍,使得C++更加適合於對性能要求較高的、大型的復雜系統的開發。
l Java語言
Java語言誕生於1991年,起初被稱為OAK語言,Java平台是SUN公司為一些消費性電子產品而設計的一個通用環境。他們最初的目的只是為了開發一種獨立於平台的軟件技術,而且在網絡出現之前,OAK可以說是默默無聞的,甚至差點夭折。但是,網絡的出現改變了OAK的命運。從此,Java與網絡結下了不解之緣。
要全面地介紹Java,我們需要用到很多定語,它是一種簡單的、跨平台的、面向對象的、分布式的、解釋執行的、健壯安全的、結構中立的、可移植的、性能優異的、多線程的、動態的高級程序設計語言。
在眾多的計算機程序設計語言中,Java確實是一顆耀眼的明星。當1995年SUN推出Java語言之后,全世界的目光都被這個神奇的語言所吸引。如果你希望進行網絡相關的開發,Java語言確實是一個不錯的選擇。
《C程序設計伴侶》 P4~P5 http://chenlq.net/books/c-mate/what-is-the-c-programming-partner-probation-1-2-computer-language.html
匯編語言是面向機器的程序設計語言。在匯編語合中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。於是匯編語言亦稱為符號語言。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟件中語言處理系統軟件。匯編程序把匯編語言翻譯成機器語言的過程稱為匯編。中國著名計算機科學教育家王爽寫過一本名叫《匯編語言》的書。
百度百科——匯編語言 http://baike.baidu.com/view/49.htm
匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬件特性並能直接控制硬件的語言。匯編語言,作為一門語言,對應於高級語言的編譯器,需要一個“匯編器”來把匯編語言原文件匯編成機器可執行的代碼。高級的匯編器如MASM,TASM等等為我們寫匯編程序提供了很多類似於高級語言的特征,比如結構化、抽象等。在這樣的環境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經類同於高級語言。現在的匯編環境已經如此高級,即使全部用匯編語言來編寫Windows的應用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在於編寫高效且需要對機器硬件精確控制的程序。
百度百科——匯編語言 http://baike.baidu.com/view/49.htm
C語言是一種計算機程序設計語言。它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用范圍廣泛。
【原】《關於各類編程論述--C語言》 作者 qj6549 http://blog.csdn.net/qj6549/article/details/2901704
C++語言是一種優秀的面向對象程序設計語言,它在C語言的基礎上發展而來,但它比C語言更容易為人們學習和掌握。C++以其獨特的語言機制在計算機科學的各個領域中得到了廣泛的應用。面向對象的設計思想是在原來結構化程序設計方法基礎上的一個質的飛躍,C++完美地體現了面向對象的各種特性。
【原】《關於各類編程論述--C++語言》 作者 qj6549 http://blog.csdn.net/qj6549/article/details/2901722
Java是一種簡單的,跨平台的,面向對象的,分布式的,解釋的,健壯的安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。
當1995年SUN推出Java語言之后,全世界的目光都被這個神奇的語言所吸引。那么Java到底有何神奇之處呢?
Java語言其實最早是誕生於1991年,起初被稱為OAK語言,是SUN公司為一些消費性電子產品而設計的一個通用環境。他們最初的目的只是為了開發一種獨立於平台的軟件技術,而且在網絡出現之前,OAK可以說是默默無聞,甚至差點夭折。但是,網絡的出現改變了OAK的命運。
【原】《關於各類編程論述--Java語言》 作者 qj6549 http://blog.csdn.net/qj6549/article/details/2901808