編程新手快來看!關於程式語言和程序,這篇文章可以說講透了

2021-01-08 C語言編程寶典

什麼是程式語言?

我們要學習的程式語言是C++,因為自1998年起大學先修課程考試就基於C++語言了。之前的考試用的是Pascal語言。C++和Pascal都是高級語言,你或許也聽說過Java、C和FORTRAN等其他高級語言吧。

從「高級語言」這個名字可以推斷,應該同樣存在低級語言,低級語言一般也稱為機器語言或彙編語言。不嚴格地講,計算機只能執行低級語言編寫的程序。正因如此,高級語言編寫的程序需要經過翻譯才能運行。翻譯也要消耗時間,這是高級語言的一個小缺點。

但高級語言的優勢是巨大的。

首先,使用高級語言編程要容易得多,「容易」意味著編程時間更少,代碼更簡短易讀,出錯的可能性更小。

其次,高級語言是可移植的,也就是說程序只需要很小的改動甚至不需要改動就可以在各類機器上運行。而低級語言編寫的程序只能在某一種機器上運行,必須重寫才能支持其他類型的機器。

正因為這些優點,幾乎所有的程序都是用高級語言編寫的,低級語言僅用於一些特殊的應用場合。

有兩種翻譯程序的方式:解釋和編譯。解釋器讀取高級語言程序並執行程序語句。實際上,解釋器採用的是逐行翻譯的方式,每讀一行就執行該行,然後讀取下一行,交替進行。

編譯器讀取高級語言程序,並在執行程序命令之前全部翻譯好。通常,對程序進行編譯是獨立的一步,之後才能執行編譯好的代碼。在這種情況下,高級語言程序稱為原始碼,而翻譯後的程序稱為目標代碼或可執行程序。

比如使用C++編程序時,你可以使用文本編輯器編寫代碼(文本編輯器是一個簡單的字處理器),寫好之後,將它保存在一個名為program.cpp的文件中,其中「program」可以是你起的任意名字,而「.cpp」是約定的C++原始碼文件後綴。

然後,你可以離開文本編輯器並運行編譯器(具體情況取決於你的編程環境)。編譯器讀入原始碼,翻譯之後,會創建一個名為program.o的目標代碼文件,或者名為program.exe的可執行文件。

編譯完成之後,下一步就是執行程序,執行需要某種執行器。執行器負責加載程序(把程序從磁碟複製到內存)並讓計算機啟動執行程序。

這個過程可能看起來很複雜,但不必擔心,大多數編程環境(有時也稱作開發環境)已經將這些步驟自動化了。一般而言,你需要做的就是編寫代碼,然後敲一個命令就能編譯和運行程序。

另一方面,理解這個過程背後的步驟是有意義的,出錯的時候你能更好地找出問題所在。

什麼是程序

程序是說明如何執行一個計算的一組指令序列。計算既可以是數學運算(如求解方程組或者找出多項式的根),也可以是符號運算(如搜索和替換文檔中的文本,甚至是編譯一個程序)。

不同程式語言中的指令(或者說命令、語句)看起來是不同的,但每種語言都有下面幾個基本功能:

輸入:從鍵盤、文件或其他設備獲取數據。

輸出:在屏幕上顯示數據,將數據發送給文件或其他設備。

數學運算:執行基本的數學操作,比如加法和乘法。

測試:檢查指定條件並執行相應的語句序列。

重複:重複執行某些動作,但每次執行多少有些變化。

其實就這麼多東西。你用過的任何程序,不管多麼複雜,都是由上面這些基本功能組合而成的。所以,我們也可以說,編程是將複雜的任務逐步分解為越來越小的子任務,直到問題解決。

相關焦點

  • 這些程式語言老了,差不多死透了,新手不能碰
    對於編程新手而言,卻有很多碰不得的語言,它們都有一個共性,使用這門語言的人非常少,相關的職位也不多,而且也沒什麼人願意討論了。「水貨」本質凸顯無疑。Dart是Google在2011年推出的一種程式語言,它的語法類似於C語言,並且可以轉譯成Javascript。Dart在丹麥奧爾胡斯舉行的GOTO大會上發布後,引起了極大的反應。
  • 現代程式語言終極測評:概述篇
    這篇文章,原標題是These Modern Programming Languages Will Make You Suffer,作者Ilya Suzdalnitski在文章中針對15種程式語言展開了詳細測評,希望對你有所幫助。
  • 現代程式語言終極測評:一星篇
    編者按:程式語言哪種好?這可能是許多學習編程人員甚至是外行人員都會面對的頭疼問題。網絡上普遍的程式語言介紹,大多都是東拼西湊的內容,並且無法讓人真正認識和了解各種語言的優缺點。這篇文章,原標題是These Modern Programming Languages Will Make You Suffer,作者Ilya Suzdalnitski在文章中針對15種程式語言展開了詳細測評,希望對你有所幫助。
  • 現代程式語言終極測評:五星篇
    來源:36氪這篇文章,原標題是These Modern Programming Languages Will Make You Suffer,作者Ilya Suzdalnitski在文章中針對15種程式語言展開了詳細測評,希望對你有所幫助。
  • 2020十大編程博客:私藏的寶藏程式語言博客大放送
    ,每天都會發布來自不同作者的多篇文章,所有的文章都經過排版和編輯,以保證優秀的內容和良好的閱讀體驗。它涵蓋了各種主題和程式語言,內容既適合小白新手,也適合進階讀者。如果想提升編程技能,這個網站將會是你的每日必需品。筆者自己就是Better Programming的一名定期撰稿人,但在開始自己發文章之前,筆者很長一段時間內都是這裡的讀者,筆者非常高興能有機會和他們一起發表文章。
  • 2020十大編程博客:私藏的寶藏程式語言博客大放送!
    Better Programming 的主頁面Better Programming致力於編程方面的內容,每天都會發布來自不同作者的多篇文章,所有的文章都經過排版和編輯,以保證優秀的內容和良好的閱讀體驗。
  • 2020十大編程博客:私藏的寶藏程式語言博客大放送
    編程很奇妙,它賦予了人類控制計算機系統的超能力,可以用於航空、交通管控、機器人、自動駕駛汽車、網站、行動應用程式以及其他數不盡的領域。軟體工程師已經創造了許多種程式語言,每一種都對應於解決不同的問題。本文中,筆者將分享幾個有關不同編碼語言的網站和博客,以及其最佳使用方案。排名不分先後,上榜各有千秋!
  • 為什麼說php是最適合新手的程式語言?
    據說php有上千個內置函數,弱類型語言php是弱類型語言,定於變量不需要指定變量類型,報錯等級不高的情況下無需定義變量即可直接使用,在新手期會給開發者更多的便利,但是不推薦。面向過程編程php支持面向過程編程與面向對象編程,初學者在沒有任何編程基礎的情況下,直接寫面向過程的腳本,比如要查詢一個資料庫表然後將數據輸出到瀏覽器端,對照手冊即可輕鬆搞定搞定。能快速搞體會完成一段程序代碼的快感,產生成就感,以此激勵自己不斷深入學習。
  • 學編程第一門語言是什麼?教你怎麼選
    在這篇文章裡,我會交替使用「編碼」code、「編程」program、「開發」develop 等動詞,「代碼」code、「程序」program、「應用程式」application、「應用」app等名詞。這是考慮到了你可能聽過的語言用法。
  • 第8p,什麼是程式語言?學習什麼程式語言更好?
    大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第8篇文章,第二階段的課程:Python基礎知識之程式語言介紹學習本課程,建議先學習:【計算機基礎知識】課程一、什麼是程式語言三、程式語言的分類如果你想了解編程的歷史、分類,完全可以在網上找到很多答案;我在這裡講的是個人的看法;程式語言大致可以分為兩大類:低級語言、高級語言;對於計算機而言,沒有實質上的低級語言與高級語言之分;因為計算機只認識0和1,只是我們將程式語言,根據我們的使用代價與收穫進行對比各個程式語言
  • 「頭破血流」學程式語言(Rust 篇)
    通過這一系列的練習和仿造,對於如何學習新的程式語言有一些新的感悟。這篇文章講的方式並非是捷徑,也不是什麼 7 天精通,而是繼續使用笨辦法地方式來進行學習。關於程式語言學習,我已經寫過兩篇相關的文章:『學習的藝術——如何學好一門技術、語言』,文章的主旨是:介紹如何通過造相似的輪子、進行相關內容輸出的方式,來提升對於程式語言的理解。『如何同時學會兩門程式語言?
  • 適合 C++ 新手學習的開源項目——在 GitHub 學編程
    在 HelloGitHub 的群裡,經常遇到有小夥伴詢問程式語言如何入門方面的問題,如:我要學習某一門程式語言,有什麼開源項目可以推薦嗎?我是某程式語言的新手,有什麼練手的項目推薦嗎?等等See,這就是本系列文章的由來,我們希望學習各類程式語言的同學們,讀(Mark)完我們的入門系列,可以找到學習的方向、系統地學習某一門語言,然後做個簡單的小玩意,不只是
  • 程序猿的崛起,一篇文章看懂程式語言
    學習編程意味著我們將要進入一個與日常生活經驗迥然不同的新領域,這最初的曲折辛酸,以及逐漸初窺門徑、小有所成並最終笑傲江湖、獨當一面的欣喜正是上面所說的學習三境界的真實寫照。這篇文章將要介紹計算機編程的前世今生,如果你想要了解程序猿這一高收入人群的真實生態,這篇文章就是IT界的《物種起源》,為你道盡它們的演化歷程和苦樂悲喜。
  • 哪種程式語言又快又省電?有人對比了27種語言
    在這篇文章中,研究者分析了一下各種程式語言的能耗對比。研究者指出,他們嚴格遵守 CLBG 項目關於編譯器版本和最佳優化標誌的指導方針。功耗的測量使用一個來自英特爾的工具——Running Average Power Limit,每個程序運行 10 遍。作者表示,「這是為了減少冷啟動和緩存效應的影響,並能夠分析測量的一致性,避免異常值」。
  • 哪種程式語言又快又省電?有人對比了27種語言
    在這篇文章中,研究者分析了一下各種程式語言的能耗對比。當能耗也成為了一個重要指標,我們要怎麼選擇程式語言?研究者指出,他們嚴格遵守 CLBG 項目關於編譯器版本和最佳優化標誌的指導方針。功耗的測量使用一個來自英特爾的工具——Running Average Power Limit,每個程序運行 10 遍。作者表示,「這是為了減少冷啟動和緩存效應的影響,並能夠分析測量的一致性,避免異常值」。
  • 什麼語言編程最好,適合新手?
    若你想學編程,什麼語言入門都可以。沒有什麼最好,完全是適合自己的那就是最好的。首先編程是邏輯思維的訓練,它是對人的邏輯思維、形象思維、抽象思維的培養,跟語言沒有關係,不過對於初學者來說,可以選擇一門簡單易學的。
  • 區塊鏈應用程式和服務的開發需要用到哪些程式語言
    現在,全世界的開發人員都有機會測試和試驗分布式分類帳協議,這些協議為各個行業提供了真實的用例。使用區塊鏈可以做很多事情,考慮到使用這種顛覆性技術可以構建的應用程式數量是很多的。 要開始使用特定的區塊鏈協議開發應用程式,必須熟悉該平臺的隨需程式語言。這尤其適用於支持智能合約功能的開源項目。
  • 適合Go 新手學習的開源項目——在 GitHub 學編程
    因為受夠了 C++ 煎熬的 Google 首席軟體工程師 Rob Pike 召集 Robert Griesemer 和 Ken Thompson 兩位牛人,決定創造一種新語言來取代 C++,這就是 Go 的由來。在 2009 年 11 月 10 日 Google 正式發行 Go 這一程式語言。
  • 少兒編程:Python語言
    》系列已經介紹完了,我們知道青少年軟體編程等級考試考三門語言:Scratch、Python和C,從這篇起我開始給大家介紹Python。Scratch之後就要進階到代碼級語言的學習,而Python非常適合做代碼級語言的入門。Python語言語法簡潔,易於理解,對代碼級程式語言的新手來說非常友好。但同時它也非常嚴謹,可以培養良好的代碼習慣。
  • 程式語言Python為什麼這麼火?
    文章內容選自《邵恆頭條》快年底了,又到了跳槽季。我明顯感覺到,這段時間網上討論職業規劃和職場轉型的文章多起來了。你也知道,今年疫情給很多行業帶來了衝擊,這讓很多人更清楚地感知到了職業風險的存在。我最近和朋友聊天發現,他們普遍覺得,哪怕現在工作穩定,也應該早做職業規劃,平時多充充電。說起來,職業教育領域這兩年發展得特別快。