高級程序c語言,高級c語言編程

本文目錄一覽:

為什麼c語言是高級程序

Microsoft公司的Visual C++是個信號,C++語言開始取代C語言,這可能已成必然趨勢。在此之前,高級語言的編譯軟體開發公司例如Microsoft和Borland所開發出來的MS C/C++7.0,BC/C++ 3.0、4.0等都同時包含兩個編譯器,C編譯器和作為語言擴集的C++語言編譯器,兩種編譯器經過一個此消波長的競爭過程,最後是C++佔了上風,越來越多的用戶選擇了C++語言,這可能將成為最重要的、最受歡迎的軟體開發語言。 C語言是一個成功的語言 如果C++語言真能取代C,首先應歸功於它是作為C語言的擴展而出現,這一點使得C的設計者和大批以C為主要開發工具的程序員能夠接受C++。換句話說,C++的成功是在C的成功基礎上實現的。 儘管大多數程序設計方法學和程序設計語言專家對C語言一直持保留態度(他們對C語言的批評是有根據的),但C語言在過去的十幾年中成功地在軟體開發領域佔據主導地位卻是個事實。C語言的成功並非偶然。 C語言與Pascal大致產生於同一時期,它接受了結構程序設計的思想,有比較現代的數據結構和控制結構,這一點使得它不但相對於低級語言,而且相對於某些同樣有強大生命力的高級語言,如Fortran、Basic等也具有一定的優勢。目前在國內外,採用Basic或Fortran語言編程的確實大有人在,不過使用這類語言的多數都是具有計算機專業以外的其它專業背景的編程人員,他們所編的程序一般規模較小,主要是難度較低的應用軟體開發。 C語言的”類彙編語言”特徵,例如它的位操作和直接訪問內存地址以及CPU寄存器的能力,使得人們稱它為”中級語言”,不過這一點卻奠定了它在系統軟體開發中不可替代的優勢地位。雖然Pascal語言也可以勝任編譯系統的編程,但從編程手段來看顯然弱於C。另一方面,C語言的出現,大大降低了彙編語言在系統軟體開發領域的重要性,用C語言編程比彙編語言效率高得多,而目標代碼質量也完全可以接受。 C語言程序簡潔,目前已形成了一種獨特的C程序員引以自豪的風格。造成C程序簡短、高效、巧妙、精緻(當然有時也很難讀)的原因是C的一些獨有的語法特徵,例如: C語言不像Pascal語言那樣設獨立的布爾類型,使布爾表達式的邏輯值與整型、浮點型和字元型的數值相混淆; C語言雖然分別設置了整數類型和字元類型,但在實際運行中這兩種類型的數據卻幾乎完全通用; C語言的重複控制結構,特別是for語句具有極大的靈活性,有時令人眼花繚亂; C語言提供了大量的運算符,特別是那些包括多種操作含意的綜合運算符(例如,運算符”++”就包含著三種操作含義); C語言提供了多種指針(如變數指針、文件指針、函數指針等)及指針豐富的運算能力; C語言為程序員提供了可直接干予內存分配等系統功能的手段,等等。 這些特徵一方面使得人們感到C語言難於掌握,但也使得那些深諳其中奧妙的C程序員感到用任何其它語言都難於寫出C語言程序的那種風格和”味道”。 C語言的設計極為重視易於編譯實現。一般編譯系統的質量主要由三項指標來衡量,即編譯時間、執行文件長度和執行速度。 這三項指標中第一項是編譯的代價,第二、三項則代表目標代碼的質量,二者是矛盾的對立面。不過相對於其它高級語言的實現來說,C編譯器在三個方面都是令人滿意的。大多數堅持採用C語言的軟體開發公司的主要理由是:C程序的目標代碼質量接近於彙編結果。 在C語言的成功過程中,除了技術因素之外還有一種心理因素在起作用。C和Pascal雖然產生於同一時期,然而其產生背景卻不相同,Pascal可以說是以Digkstra、Hoare、Wirth等人為代表的”結構程序設計”思想的 充分體現,其重要的觀點之一是寧可犧牲一部分效率,也要保證程序的正確和可靠性,無疑這種思路是正確的,然而,明智的程序設計語言的設計者與聰明的程序設計者的想法是不一致的。前者必須假定使用語言的程序員只有一般的能力,通過規範化的語言規則保證程序統一的結構,因為這樣有利於易讀、可靠、不易出錯和便於連接。然而對於水平較高的程序員來說,這樣的程序好象是八股文味的公文,冗長、乏味,無法顯示自己的才華,無法利用自己關於系統的知識,C語言是程序員自己設計的語言,雖然它不很”高級”,不很”結構”,但它反映了能力強的程序員的心態和要求,採用C語言編程反而成了編程水平高的某種象徵。 高級語言的升級換代 高級程序設計語言已經經歷了幾代的發展過程,隨著軟體開發的規模越來越大,功能越來越複雜,語言本身也在不斷地改進和完善,以適應飛速發展的計算機科學與計算機產業的需要。 筆者認為,高級程序設計語言的改變可以分為三個階段,即初期階段、結構程序設計階段和面向對象程序設計(OOP)階段。目前則正處於後兩個階段的過渡時期。 高級語言的初級階段實際上是從低級語言(機器語言和彙編語言)向高級語言的過渡,其代表是第一個高級語言Fortran語言,初期高級語言中的問題是表達式處理,這一點從Fortran名稱的含義(FORmula TRANsformation language)可以看出,Fortran、Basic語言引入了變數、表達式、語句等概念,由於當時計算機應用的重點是數值計算,所以它與低級語言的主要區別也體現在表達式計算的自動處理上,而且把表達式的計算進一步引入到重複語句的控制和數組下標,更體現出”高級”編程的特徵。早期的高級語言已經有子程序的概念,但應該說它們還只是”萌芽”狀態的函數和過程,到結構程序設計階段,語言中的函數和過程是最重要的設施。 第二階段我們稱之為結構程序設計階段,結構程序設計語言的主要特徵就是兩點,一個是清清楚楚的數據類型說明和檢查,另一個是以過程和函數為主要形式的層次編程方法。它強調的是程序自身的結構。其代表語言首先當推Pascal語言。 有了高級語言,才有了大量比較大規模程序編製的需要,其中高級語言的編譯系統本身也是一種大規模程序。面對大程序的設計,初級階段的高級語言及其編程方法不適應了,於是,60年代末的”軟體危機”出現了,由Digkstra發起的”Goto語句有害”的討論導致了Pascal、C等語言和軟體工程思想及結構程序設計方法。當代的大多數程序員都是在這樣的理論指導下培養出來,並創造了當今軟體產業如此輝煌發展的局面。也可以說結構程序設計語言及其設計方法學,是初期階段高級語言產生後發展的必然的、合乎邏輯的結果。 在這一時期,可以說從開始就已經孕育著一些向下一階段發展的原始思想。例如,在C和Pascal語言中,允許把函數或過程像數據那樣作為函數或過程的參數來處理。而ALGOL68、Simula67、Modula-2等語言也設置了類(class)或類似的語法成分。在數據和函數(過程)組成的模塊之間由”移入表”、”移出表”來規定相互間的調用關係。在Kanth、Aho、Hopcroft、Ullman等人的數據結構與演算法文獻中,明確指出抽象數據類型的概念,這些都是OOP的原始思想。 以面向對象程序設計(OOP)為主要特徵的第三階段,可以認為是程序設計方法學發展的成熟期,公認的第一個面向對象語言是Smalltalk。以類(class)和對象(object)為主要語法成分,從抽象數據類型的思想出發,把數據和代碼作為一體封裝,如同客觀事物的物質存在和它的行為功能形成的一個統一體,這樣的對象之間的繼承關係及行為描述的多態性,構成了OOP的基本特徵。 目前,面向對象設計技術已從方法學的研究領域進入軟體產業界的實際開發環境,它已不僅是一種玄妙的理論,而成為程序員必須掌握的技術。 雖然,Smalltalk最早為人們所接受,有些報導認為這種語言已為許多用戶掌握和使用,然而實際的情況是,能夠取代C語言,並可以成為主要軟體開發語言的只能是C++。 以改良的方式實現語言的升級換代早已不是新鮮事。加強了數據類型概念和過程函數功能的Fortran、Basic的一些新版本;帶有類和對象的Pascal語言(如Turbo Pascal 5.5,6.0版本)等都是按照這種方式開發出的新成果。但與C++語言相比,都不能算是成功。 C++為什麼會成為主流語言 面向對象程序設計技術的完美,意味著軟體開發技術的成熟,另一方面,軟體技術發展到今天,OOP對於它已經不是可有可無的、用來綿上添花的改進措施,而是沒有其它選擇的唯一出路。 與六、七十年代相比,當今的軟體產業可以說已不可同日而語,這種差別,不僅體現在軟體產品的數量、品種、規模和功能結構的複雜性上,而且也體現在軟體產品本身的內在特徵上,程序設計的觀念逐漸發生了本質的變化,這種變化使得面向過程的結構化設計方法已經不再適用。 例如,大多數軟體產品(包括系統軟體和應用軟體)都是事件驅動的,程序設計者無法控制事件發生的順序,換句話說,程序員編程序的概念已經發生變化。現在的編程目標已經不能簡單地理解為告訴機器先做什麼,然後再做什麼,一項軟體開發工作,實際上是對於程序員所選擇的或自己設計的若干功能模塊的組裝。所謂組裝,主要是規定模塊間消息的傳送關係,所謂模塊的功能,就是程序模塊接收、處理和發送消息的特徵。顯然OOP方法可以說是唯一適用的技術。 另一方面,現代軟體由於面對問題的複雜性和對用戶界面的方便性要求,具有許多新特徵,如窗口、對話框、滾動條等圖形用戶界面,自動內存管理、模塊動態聯接、動態數據交換等等都不得不以一種可重用模塊的方式為程序員利用,傳統的庫標準函數的形式已不能解決問題,因為窗口、對話框之類的對象已不可能以標準(帶參數)函數的形式來描述,類和對象則是唯一適當的形式,過去C語言豐富而功能強大的庫函數是其受到程序開發者歡迎的重要原因,現在,C++語言則以其標準類庫(如Borland公司的WOL和Microsoft公司的MFC庫)作為擊敗其它面向對象語言的手段之一。 應該說是現代軟體程序的結構組織形式以及程序的保存和重用形式,決定了C語言必然要被面向對象語言所取代。哪一種面向對象語言能夠取代C語言在開發領域的地位,這並不是某一個人或一些人可以決定的事情,單從支持OOP方法這一點來衡量,第一個OOP語言Smalltalk當然是有力的競爭者,在軟體界有重大影響的Ada語言、Pascal語言(它們的一些新版本如Turbo Pascal 5.5、6.0)同樣可以擔當重任。然而,以越來越明朗的形勢看,C++語言已處於最有利的地位,這並非偶然。下面幾方面將是其成功的原因: ·C++語言的前身稱為C with class,但不能把C++理解為C語言與OOP的簡單嫁接,C++語言有其自己的發展和完善的歷史。自1980年至今,經不斷修訂已形成完備的有機整體。這一點和”帶過程的Basic”和”帶類的Pascal”等情況是不同的。 ·C++的效率,主要指目標代碼的效率和編譯的效率。顯然,語法規則的複雜性必然導致效率的下降,把C語言作為自己子集的C++語言自然效率低於C語言,但在這點上它又明顯高於其它候選者。而且到目前為止,最新版本的C++編譯系統(如Visual C++的新版本)的目標碼質量已能為開發者所接受。而且由於有條件投入人力、物力,C++編譯器的水平還可進一步提高。 ·C++語言的編程環境與工具,主要是市場因素的影響,越來越方便和豐富的環境與工具,特別是標準類庫的完備化,使C++語言的優勢更為明顯。 ·C++語言的一個成功策略是把C語言作為自己的子集,這就把大多數中高級程序員爭取到自己的陣營中來,繼承C語言的一切優秀特徵,逐漸消化掉它的某些不足,可能是它成功的關鍵。 C++語言的發展前景 C++語言是強有力的軟體開發語言,但它絕對不是完美的,或者說是相當不完美的,無論大家期待的C++語言的國際標準內容如何,都必然不斷地被改進。 隨著C++語言在軟體開發領域的地位越來越重要,與其有關的研究、開發工作必須獲得越來越多的人力和資金。它的改進是必然的。 從C語言繼承下來的語法規則,將逐漸從龐雜走向精減,而且日益清晰。 作為語言實現的編譯系統水平和效率將不斷提高。 與其相關的編程環境將越來越方便、簡化。與此同時,C++語言本身將會變得更強有力。

c語言是高級語言嗎 C語言是高級語言詳解

1、C語言是高級語言。

2、機器語言(machine language)是一種指令集的體系。這種指令集,稱機器碼(machine code),是電腦的CPU可直接解讀的數據。

3、彙編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。在彙編語言中,用助記符(Mnemonics)代替機器指令的操作碼,用地址符號(Symbol)或標號(Label)代替指令或操作數的地址。在不同的設備中,彙編語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。普遍地說,特定的彙編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。

4、高級語言主要是相對於彙編語言而言的,是較接近自然語言和數學公式的編程,基本脫離了機器的硬體系統,用人們更易理解的方式編寫程序。編寫的程序稱之為源程序。

c語言是高級語言嗎?

是高級語言。

C語言是一種計算機程序設計語言。它既有高級語言的特點,又具有彙編語言的特點。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。因此,它的應用範圍廣泛。

C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它解釋型高級語言,有一些大型應用軟體也是用C語言編寫的。

C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。

常用的C語言IDE(集成開發環境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C等等。

C語言的難點就是指針和內存操作,在其他高級語言中,這些內容都被優化掉了。正因為C語言有指針,對內存的操作十分靈活,所以才廣泛應用於底層驅動和協議棧相關的領域。

但是在應用級別,C語言就力不從心了,因為其他高級語言如Java和C#就是針對高級應用而開發的,它的目標就是模塊化,使用簡單。

所以,你就會發現使用C#等開發窗口程序,就是拖拖拽拽的過程。所以,並不能說C語言是最有用的,只是更適合某個領域而已。

之所以認為C語言難,大多都是沒把指針和內存搞清楚的緣故,而且有的教材也沒有教明白,甚至都有錯誤。之前我看過那本出版量最多的廣泛被推薦的教材,書中居然就有指針就是地址的這種錯誤概念。

c語言是計算機的什麼語言是高級還是低級?

c語言是計算機的高級編程語言,計算機只能識別二進位,c語言對其進行了簡化,所以說是高級語言

計算機中的c語言是什麼意思?

計算機中的c語言是一種高級程序設計語言,人們用這種語言規定的詞法句法寫出給計算機的命令,計算機就能理解和執行。

計算機能識別很多種高級程序設計語言。c只是其中之一。

在c語言發明前,已有ALGOL高級語言,BASIC高級語言,FORTRAN語言。ALGOL用了字母A,BASIC用了字母B,依次下來,就用C

c語言.

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/259624.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 16:29
下一篇 2024-12-15 16:29

相關推薦

  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟體。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29

發表回復

登錄後才能評論