① 編程是什麼
編程 是個動詞,編程==寫代碼,寫代碼為了什麼? 為了讓計算機干你想要乾的事情,比如,馬化騰想跟別人聊天,於是寫了個聊天軟體,這個軟體就是一堆代碼的集合,這些代碼是什麼?這些代碼是計算機能理解的語言。
那計算能理解的語言是什麼呢? 之前,我們已經了解到,它只能理解2進制,0101010…,你總不能人肉輸一堆二進制給計算機(雖然最原始的計算機就是這么乾的)讓它工作吧,這樣開發速度太慢了。所以最好的辦法就是人輸入簡單的指令,計算機能把指令轉成二進制進行執行,舉例如下:
假如 程序員想讓計算機 播放一首 歌曲 , 只需要輸入指令 ,
open "老男孩.mp3"
play
計算機的CPU接收到這樣的指令後,會把它轉成一堆 只有cpu可以理解的指令,然後再將指令變成各種對應的如下類似二進制
[ op | rs | rt | address/immediate]
353868decimal
binary
最終cpu 去調用你的硬碟上這首歌,通過音箱播放。
上面cpu那段指令太難理解了,如果讓你天天寫這樣的代碼,大家非得自殺不可。還好,偉大的計算機先驅們,開發了各種編程語言,讓我們只需要通過寫一些簡單的規則,就能操作計算機工作啦。
有哪些編程語言?
編程語言總體分以為機器語言、匯編語言、高級語言,如下
機器語言
由於計算機內部只能接受二進制代碼,因此,用二進制代碼0和1描述的指令稱為機器指令,全部機器指令的集合構成計算機的機器語言,用機器語言編程的程序稱為目標程序。只有目標程序才能被計算機直接識別和執行。但是機器語言編寫的程序無明顯特徵,難以記憶,不便閱讀和書寫,且依賴於具體機種,局限性很大,機器語言屬於低級語言。
用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。手編程序時,程序員得自己處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作。編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。而且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯。除了計算機生產廠家的專業人員外,絕大多數的程序員已經不再去學習機器語言了。
機器語言是微處理器理解和使用的,用於控制它的操作二進制代碼。
盡管機器語言好像是很復雜的,然而它是有規律的。
存在著多至100000種機器語言的指令。這意味著不能把這些種類全部列出來。
以下是一些示例:
指令部份的示例
0000 代表 載入(LOAD)
0001 代表 存儲(STORE)
…
暫存器部份的示例
0000 代表暫存器 A
0001 代表暫存器 B
…
存儲器部份的示例
000000000000 代表地址為 0 的存儲器
000000000001 代表地址為 1 的存儲器
000000010000 代表地址為 16 的存儲器
100000000000 代表地址為 2^11 的存儲器
集成示例
0000,0000,000000010000 代表 LOAD A, 16
0000,0001,000000000001 代表 LOAD B, 1
0001,0001,000000010000 代表 STORE B, 16
0001,0001,000000000001 代表 STORE B, 1[1]
匯編語言
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作。例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能夠實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
匯編的hello world,列印一句hello world, 需要寫十多行,也是醉了。
; hello.asm
section .data ;數據段聲明
msg db "Hello, world!",0xA;要輸出的字元串
len equ $ - msg ;字串長度
section .text ;代碼段聲明
global _start ;指定入口函數
_start:;在屏幕上顯示一個字元串
mov edx, len ;參數三:字元串長度
mov ecx, msg ;參數二:要顯示的字元串
mov ebx,1;參數一:文件描述符(stdout)
mov eax,4;系統調用號(sys_write)
int0x80;調用內核功能
;退出程序
mov ebx,0;參數一:退出代碼
mov eax,1;系統調用號(sys_exit)
int0x80;調用內核功能
高級語言
高級語言是大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,像最簡單的編程語言PASCAL語言也屬於高級語言。
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行(編譯後生成的可執行文件,是cpu可以理解的2進制的機器碼組成的),使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼,修改很不方便。
編譯後程序運行時不需要重新翻譯,直接使用編譯的結果就行了。程序執行效率高,依賴編譯器,跨平台性差些。如C、C++、Delphi等
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器(想運行,必須先裝上解釋器,就像跟老外說話,必須有翻譯在場),但這種方式比較靈活,可以動態地調整、修改應用程序。如Python、Java、PHP、Ruby等語言。
總結
機器語言
優點是最底層,速度最快,缺點是最復雜,開發效率最低
匯編語言
優點是比較底層,速度最快,缺點是復雜,開發效率最低
高級語言
編譯型語言執行速度快,不依賴語言環境運行,跨平台差
解釋型跨平台好,一份代碼,到處使用,缺點是執行速度慢,依賴解釋器運行
主流編程語言介紹(10分鍾)
世界上的編程語言有600多種,但真正大家主流在使用的最多二三十種,不同的語言有自己的特點和擅長領域,隨著計算機的不斷發展,新語言在不斷誕生,也同時有很多老舊的語言慢慢無人用了。有個權威的語言排名網站,可以看到主流的編程語言是哪些
TIOBE發布編程語言排行榜已經快6年的時光了,在這六年中我們見證了不少語言的起起落落。雖然國內有很多大牛說,關注這語言的排名沒有多少意義。但仍可以看出那些語言日漸興盛,哪些日漸沒落,我們從Objective-C的上升過程中,還是能看到移動設備端,特別是iOS應用開發方面的黃金潛力。
下面介紹下幾個主流的編程語言:
C語言:
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
C++:
C++是C語言的繼承的擴展,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
JAVA:
Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平台(即JavaSE, JavaEE, JavaME)的總稱。Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於個人PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。在全球雲計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。
PHP:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域
Ruby:
Ruby 是開源的,在Web 上免費提供,但需要一個許可證。[4]
Ruby 是一種通用的、解釋的編程語言。
Ruby 是一種真正的面向對象編程語言。
Ruby 是一種類似於 Python 和 Perl 的伺服器端腳本語言。
Ruby 可以用來編寫通用網關介面(CGI)腳本。
Ruby 可以被嵌入到超文本標記語言(HTML)。
Ruby 語法簡單,這使得新的開發人員能夠快速輕松地學習 Ruby
GO:
Go 是一個開源的編程語言,它能讓構造簡單、可靠且高效的軟體變得容易。
Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發,後來還加入了Ian Lance Taylor, Russ Cox等人,並最終於2009年11月開源,在2012年早些時候發布了Go 1穩定版本。現在Go的開發已經是完全開放的,並且擁有一個活躍的社區。
由其擅長並發編程
Python:
Python是一門優秀的綜合語言, Python的宗旨是簡明、優雅、強大,在人工智慧、雲計算、金融分析、大數據開發、WEB開發、自動化運維、測試等方向應用廣泛,已是全球第4大最流行的語言。
② 編程語言的載體是什麼
一台計算機只有硬體(稱為裸機)是不能工作的,必須配備各種功能的軟體,才能發揮其運算、測控等的功能,而軟體是人使用編程語言編寫出來的,是人賦予機器智能的載源亂鎮體。
編程語言是人與計算機之間交流的語言,其種類非常多,總的來說可以分為機器語言、匯編語言、高級語言三大類。
4.1.1機器語陪罩言
計算機所使用的是由"0"和"1"組成的二進制數,二進制是計算機的語言的基礎。計算機發明之初,人們只能降貴紆尊,用計算機的語言去命令計算機干這干那,一句話,就是寫出一串串由"0"和"1"組成的指令序列交由計算機執行,這種計算機能夠認識的語言,就是機器語言。使用機器語言是十分痛苦的,特別是在程序有錯需要修改時,更是如此。
對於機器語言,一條機器語言成為一條指令。指令是不可分割的最小功能單元。而且,由於每種計算機雹粗的指令系統往往各不相同,所以,在一類計算機上執行的程序,要想在另一類計算機上執行,必須另編程序,造成了重復工作。但由於使用的是針對特定型號計算機的語言,故而運算效率是所有語言中最高的。機器語言,是第一代計算機語言。
③ 什麼叫編程編程課是指什麼
編程是編定程序的中文簡稱,就是讓計算機代碼解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。
例如說為了使計算機能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。
編程課是大學里的一項專業課程,主要就是通過各種相關的理論知識和專業技能來達到使計算體系按照該計算方式運行,並最終得到相應結果的一項學習。目前在市面上有關於編程課學習的課程有很多,除了大學以外,還有少兒編程,不少國內的孩子在初中或是小學就已經開始學習相關的少兒編程課程了。
(3)編程的回報載體是什麼擴展閱讀:
編程課對孩子綜合能力提升的主要體現在以下四個方面:
(1)編程課開發孩子大腦
小的時候孩子還沒有形成良好的思維模式,可以對孩子進行適當的鍛煉,增強孩子動手動腦能力,有利於開發孩子大腦智力發育,幫助孩子得到啟發,有助於孩子編程啟蒙發展。
(2)編程課提升專注力
少兒編程學習以編程游戲吸孩子注意力,讓孩子能夠主動投入少兒編程學習,有利於提升孩子專注力,全神貫注學習編程。
(3)編程課提高耐心與意志力
編程課學習是不斷試錯的過程,如果孩子獨自完成編程游戲製作,需要足夠的耐心與意志力,有助於孩子實現編程程序運行。
(4)編程課提高創造力及想像力
編程課學習是不斷創造的過程,需要孩子發揮想像力與創造力,將腦海中的編程游戲設計出來,有助於提升孩子創新能力,讓孩子獲得進一步的能力提升。
④ 什麼是編程,編程是用來干什麼的
編程即編定程序,就是讓計算機解決某個問題。
使計算機能夠根據人的指令去工作,完成某種特定的任務,這種人和計算體系之間交流的過程就是編程的本質。
為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機。
學習編程有很多好處:
1、學習編程, 不僅可以提升個人的未來的社會競爭力,也可以為當下的升學競爭添加籌碼。
2、編程不僅可以提升外在的競爭力,也可以增強人們內在的邏輯思維能力和自信心。
3、編程是鍛煉邏輯思維能力的重要載體,學習編程可以讓思維變得嚴謹和縝密。
4、學習編程可以增強對現實問題進行抽象、對復雜問題進行分解、對解決方案進行推演、對程序進行測試的能力。
⑤ 學編程有什麼用
編程學的主要內容包括操作系統、資料庫、設計模式、軟體工程、數據結構與演算法。
編程的含義:
編程是編定程序的中文簡稱,指的是讓計算機代為解決某個問題,對計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。上述內容不管你用什麼編程語言,是都將會使用到的主要基礎內容。然後就是學習編程語言的基礎語法,掌握基礎語法之後,就可以不斷的寫代碼,不斷的做項目。
學習編程的就業方向:
1、從事互聯網行業。互聯網時代的到來,使IT行業和非IT行業得到了大幅度發展。
2、傳統軟體企業。傳統軟體企業主要為其他公司或組織提供軟體產品或服務。
3、硬體行業。硬體廠商也是需要編程人員的,生產出來的cpu、顯卡都是需要驅動軟體來完成工作的。
孩子學習編程的好處:
1、編程能提升邏輯思維能力。在優秀與卓越之間,拉開孩子真正差距的不再是學習的密度,而是思考問題的方式。編程可以訓練孩子的思維方式,培養孩子的思維完整性和邏輯性,站在全局視角來思考問題。
2、培養專注力,耐心與細心。教育專家曾經說過,學霸和學渣的差距,不是智商的差距,而是專注力的差距,耐心和專注是做好一切事情的基礎。編程是一門嚴謹縝密的語言,同時也是培養細心、耐心與專注力的工具。
3、提高綜合素質,孩子全面成長。孩子的教育,不單單是知識的傳授,更為重要的是孩子的全面成長,編程課程不僅學習編程知識,更可以不斷鍛煉孩子的創造力、觀察力、記憶力、空間想像、數據運算、動手實踐、堅毅性格,讓孩子全面成長。
4、提升學習競爭力,為高考加分,為升學助力。在國內以及國際教育中,越來越重視學生的編程能力和創新思維能力,擁有編程特長的孩子,不僅可以在各項編程比賽中脫穎而出,為高考加分,更有機會保送名校,也可以為留學國外助力。
5、從容面對AI時代,不被人工智慧淘汰。在可預見的未來,編程將成為未來生活工作的必不可少的基本能力。讓孩子從小學習編程,站在互聯網科技的最前沿,贏在AI時代的起跑線上,從容面對人工智慧時代的各項挑戰!
編程和數學思維訓練課程的差異:
編程能夠教會學生清晰、抽象地將現實問題進行分解,並用計算機代碼的方式有效執行對應的解決方案出來。這種分析問題+解決問題的能力,是21世紀學生的核心能力,與閱讀、寫作、算術等技能同等重要,是學生發展核心素養的重要組成部分。一般的數學思維訓練課程,更多地停留在計算能力的學習上,對於孩子解決實際問題的能力鍛煉上相對比較有限。