兩個字說清楚編程語言實質-Python基礎前傳(3)

大家都知道Python對於數據分析而言,意義重大。但對於運用Python來做數據分析的我們來說,學習一門編程語言,卻有不小的難度:首先大部分夥伴不是計算機相關專業的科班出身,其次我們基本上也都沒有程序員經驗,所以正確的理解編程語言,對於我們學習Python就顯得尤爲重要,今天jacky就跟大家聊聊:編程語言的實質到底是什麼?

(一)編程語言的實質

編程語言的實質是什麼?

  • 實質就是二個字:語言

1.爲什麼說編程是語言類的技能

關於編程爲什麼是語言類的技能,有這樣一個故事:
新東方的創始人之一王強,畢業留校在北大教英語,但他並不想要一種老教授的生活,還要爲理想拼搏一下,於是去了美國;
當時計算機在美國剛剛興起,王強看到了機會並決定轉行計算機領域;但是當時他連微積分都沒學過、計算機都沒見過,卻成功的說服了所報考學校的考官併成功入讀了計算機專業的碩士,最後還進入了美國著名的貝爾實驗室。
他是怎樣說服考官,讓一個零基礎的小白去深造計算機專業呢?
當時王強跟考官說:編程語言的編程我不會,但是語言我會啊,我跟語言打了半輩子交道了,漢語這麼難我都能研究的透,編程語言我也一定能研究得通,對於中文都這麼好的我們,快速的學習一門編程語言是沒有問題的。這番話打動了考官,並使得他成功的入學。
這是一個真實的故事,激勵很多人,當然也讓我明白了編程的道理。

2.寫程序就是寫作文

回憶小學,我們學寫作文的三個階段:

  • 第一階段 :學習漢字怎麼寫,數字怎麼寫,符號怎麼寫;

  • 第二階段:學習語法,學習造句,例如用“如果怎樣… …就會怎樣… …”造句;

  • 第三階段:學習完整成文;

編程語言,也是由人發明的規則,既然能稱作做語言,它同樣也遵循着語言的規律;

  • 第一階段 :學習各種數據類型的規則,字符的規則是什麼,列表的規則是什麼,字典的規則是什麼等等;

  • 第二階段:我們學習if 語句,學習循環語句等等的造句;

  • 第三階段:完整的運用代碼做出我們的項目;

(二)編程語言的演變邏輯

1.定義

現在我們可以給編程語言一個定義,並分享它的演變邏輯

  • 編程語言的定義:

    • 給定一套規則,並讓計算機運行

2.演變邏輯

(1)機器語言

  • 機器語言是計算機唯一能接受和執行的語言。機器語言由二進制碼組成,每一串二進制碼叫做一條指令。一條指令規定了計算機執行的一個動作。機器語言是直接用二進制代碼指令表達的計算機語言,指令是用0和1組成的一串代碼,它們有一定的位數,並分成若干段,各段的編碼表示不同的含義,例如某臺計算機字長爲16位,即有16個二進制數組成一條指令或其它信息。16個0和1可組成各種排列組合,通過線路變成電信號,讓計算機執行各種不同的操作。

(2)彙編語言

  • 後來寫0101的這些人寫煩了,他們就想辦法能不能給這些0101分個組,相當於我們的活字印刷術,用一些字符做對應着不同的分組,就形成了彙編語言;

  • 用能反映指令功能的助記符表達的計算機語言叫彙編語言。它是符號化了的機器語言。用彙編語言編寫的程序叫彙編語言源程序,計算機無法執行。必須用匯編程序把它翻譯成機器語言目標程序,計算機才能執行。這個翻譯過程稱爲彙編過程。

(3)C 語言

  • 隨着計算機的發展,上述簡單的編程越來越滿足不了我們日益增長的需求,這個階段就出現了C語言,對於程序員來說,有了C語言,就有了跨時代的飛躍,會了C語言就大大的節約了勞動力,我們就可以非常輕鬆的寫出一個應用程序了;

  • 但是程序員的能力參差不齊,我們想要一些“更自動化,更方便,更簡單”的編程語言,這就出了我們後面要說的高級語言,那麼在此之前,jacky會跟大家說清楚C語言爲什麼不方便;

C語言爲什麼不方便?

  • C語言需要我們自己去管理它的內存;

    • 比如說一臺計算機,我們想在某一塊內存裏開闢一塊空間,讓這個空間裏放一點東西,那麼我們需要做幾件事:1.先找到這個地址,然後說,我要用你這塊空間;2.用完之後,我們還要釋放空間,說我不用了,你可以被別人用了 ;所有這樣帶來的弊端就是:程序員的能力有高有底,有很多情況是,黑客還沒有攻破你程序的時候,你的程序自己就崩潰了,自己就把自己的內存全耗幹了;比如說我只去拿不釋放,那麼你的代碼直接就崩潰了;

  • C語言給我們提供現成的功能比較少;

(4)高級語言( Java、C#、php、Python)

我們拿Python舉例來說

  • Python是在C語言的基礎上開發,我們寫一句Python代碼,Python會轉化爲一個字節碼,然後C會執行這個字節碼並生成機器碼,最後通過機器碼在轉化成0101二進制,這樣計算機就能識別到了;

  • 有了高級語言,我們不在需要再去管理內存了;每一門語言都有自己的”虛擬機(解釋器)”,現在的程序員,我們只需寫代碼就可以了,對於分配內存和釋放內存都由虛擬機來做了;

  • 當然,C語言仍舊有它的優勢在:C的執行效率高,高級語言(如:Python)的開發效率高;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章