(1)硬件基本組成:硬盤、內存、CPU
(2)個部件之間的運作協調(下圖)
(1)0和1組成的指令
(2)0和1組成的數據
(1)軟件的基本概念:指令的集合
(2)軟件的安裝運行過程
·安裝在硬盤
·運行在內存
(3)為什麼要開發軟件:寫出能控制計算機的指令
(1)一門跟計算機打交道的語言
(2)方便寫出一連串的指令
(1)簡介:所有代碼裡面只有0和1,每一條指令稱為“機器指令”
(2)優點:
·代碼能被計算機直接識別,直接對硬件產生作用,程序的執行效率非常高
·能直接訪問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等
(3)缺點:
·程序全是些0和1的指令代碼,可讀性差,還容易出錯
·對硬件的依賴性很強,因此不同型號計算機的機器語言又不一樣。也就是說,如果2台不同型號的機器想實現一樣的功能,需要編寫2套完全不同的代碼
·要熟記所用計算機的全部指令和指令的涵義,指令又多又難記
(4)使用場合
綜上所述,機器語言很難掌握和推廣,現在除了計算機生產廠家的專業人員外,絕大多數的程序員已經不再去學習機器語言了
(1)簡介:用英文單詞等符號代替機器指令
(2)優點:
·像機器語言一樣,可以直接訪問、控制計算機的各種硬件設備
·占用內存少,執行速度快
(3)缺點:
·不同的機器有不同的匯編語言語法和編譯器,代碼缺乏可移植性,也就是說,一個程序只能在一種機器上運行,換到其他機器上就不能運行
·符號非常多、難記,即使是完成簡單的功能也需要大量的匯編語言代碼,很容易產生BUG,難於調試
·必須對硬件非常了解,開發效率很低,周期長且單調
(4)使用場合
·操作系統內核、驅動程序、單片機程序
·軟件的加密、解密、破解
·病毒的制作、防治
·程序的調試、分析
(1)簡介:接近自然語言
(2)優點:
·簡單、易用、易於理解,語法和結構類似於普通英文
·遠離對硬件的直接操作,使得一般人經過學習之後都可以編程,而不用太熟悉硬件知識
·一個程序還可以在不同的機器上運行,具有可移植性
(3)缺點
·程序不能直接被計算機識別,需要經編譯器翻譯成二進制指令後,才能運行到計算機上
(4)種類:C語言、C++、C#、Java、Objective-C等
分別用機器語言、匯編語言、C語言(高級語言)來寫一個計算1+1的程序
(1)機器語言:簡直是天書!!!
10111000 00000001
00000000 00000101
00000001 00000000
(2)匯編語言:可讀性稍微好一點,但是麻煩
MOV AX,1
ADD AX,1
(3)C語言:精簡、通俗易懂
1+1
(1)OC基於C
(2)OC跟C的思想和語法很多地方不太一樣,而且OC能和C混用
(3)C是所有編程語言中的經典,很多高級語言都是從C語言中衍生出來的,比如C++、C#、Objective-C等
(1)C語言於1972年發明,首次使用是用於重寫UINX操作系統(UNIX以前主要是用匯編語言寫的,它奠定了操作系統的基礎)
(2)隨著UNIX操作系統的成功,C語言也得到了大幅度地推廣,被先後使用到大、中、小、微型主機上,至今還是世界上最流行、使用最廣泛的高級程序設計語言之一
(3)C語言是一門面向過程的語言,非面向對象的語言
(1)豐富的運算符
(2)豐富的數據類型
(3)可以直接操作硬件
(4)高效的目標代碼
(5) 可移植性好
(1)編寫系統軟件、圖形處理、單片機程序、嵌入式系統開發
(2)編寫游戲外掛
(3)編寫android程序
(4)編寫iOS程序
……
(1)1983年美國國家標准局(American National Standards Institute,簡稱ANSI)成立了一個委員會,開始制定C語言標准的工作
(2)1989年C語言標准被批准,這個版本的C語言標准通常被稱為ANSI C
(3)1999年,國際標准化組織ISO又對C語言標准進行修訂,在基本保留原來C語言特征的基礎上,針對應該的需要,增加了一些功能,命名為C99
(4)2011年12月8日,ISO正式公布C語言新的國際標准草案:C11