計算機硬件的歷史
第一代(1951-1959)
使用真空管存儲信息
主存儲器:磁鼓 ? ?恰當條件下寫入/讀出
輸入:讀卡機
輸出:穿孔卡片 /行式打印機
輔助存儲設備:磁帶
第二代(1959-1965)
晶體管:更小更可靠更快壽命更長更便宜
存儲器:磁芯
輔助存儲設備:磁盤
(磁帶必須從頭開始讀寫,磁盤可以直接送到特定位置)
第三代(1965-1971)
集成電路IC:晶體管+其他元件+連線 ?——>硅片
(印刷電路:集成電路比印刷電路小,便宜可靠快)
終端:帶有鍵盤和屏幕的輸入/輸出設備
第四代(1971-)
大規模集成化:一個硅片可以存儲的晶體管越來越多
計算機硬件的功能越來越強大,體積越來越小,花費越來越少
并行計算:多CPU 獨立運轉 同一個存儲器
以太網:一種廉價的同軸電纜+一套能夠讓機器互相通信的協議
文件服務器:一臺具有大容量存儲器以及強勁的輸入/輸出能力的PC
Internet 使用包交換的方法共享信息 ?由分布在世界各地的不同網絡組成 網絡之間采用通用的TCP/IP(傳輸控制協議/網際協議,transmission-control protocol/internet protocol)
協議:一套規定必須嚴格遵守的規則和(交互信息的)過程的代碼
因特網是各種網絡組成的網絡,包含不僅僅以太網還有其他局域網和各種廣域網
圖靈機示意圖圖靈的基本思想是用機器來模擬人們用紙筆進行數學運算的過程,他把這樣的過程看作下列兩種簡單的動作:
在紙上寫上或擦除某個符號;
把注意力從紙的一個位置移動到另一個位置;
而在每個階段,人要決定下一步的動作,依賴于 (a) 此人當前所關注的紙上某個位置的符號和(b) 此人當前思維的狀態。
為了模擬人的這種運算過程,圖靈構造出一臺假想的機器,該機器由以下幾個部分組成:
1.一條無限長的紙帶TAPE。紙帶被劃分為一個接一個的小格子,每個格子上包含一個來自有限字母表的符號,字母表中有一個特殊的符號 表示空白。紙帶上的格子從左到右依此被編號為 0,1,2,... ,紙帶的右端可以無限伸展。
2.一個讀寫頭HEAD。該讀寫頭可以在紙帶上左右移動,它能讀出當前所指的格子上的符號,并能改變當前格子上的符號。
3.一套控制規則TABLE。它根據當前機器所處的狀態以及當前讀寫頭所指的格子上的符號來確定讀寫頭下一步的動作,并改變狀態寄存器的值,令機器進入一個新的狀態。
4.一個狀態寄存器。它用來保存圖靈機當前所處的狀態。圖靈機的所有可能狀態的數目是有限的,并且有一個特殊的狀態,稱為停機狀態。
注意這個機器的每一部分都是有限的,但它有一個潛在的無限長的紙帶,因此這種機器只是一個理想的設備。圖靈認為這樣的一臺機器就能模擬人類所能進行的任何計算過程。
計算機軟件的歷史
第一代軟件(1951-1959)
第一代程序用機器語言編寫的
機器語言:內置在計算機電路中的指令
0100110001代表每個特定電路處于高/低電壓狀態
特定的電路打通就完成了某種特定任務
第一代程序員是數學家和工程師
匯編語言:用助記憶碼表示每條機器語言指令
翻譯程序:把用匯編語言編寫的程序翻譯成用機器語言編寫的
系統程序員:寫程序給普通程序員用,如R studio\matlab
應用程序設計員:寫程序給非程序員使用,如QQ
第二代軟件(1959-1965)
機器語言——>匯編語言——>高級語言
1000100111011000??????????????機器指令
mov ax,bx ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?匯編指令
print a ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 高級語言
匯編語言的另一個特點就是它所操作的對象不是具體的數據,而是寄存器或者存儲器,也就是說它是直接和寄存器和存儲器打交道,這也是為什么匯編語言的執行速度要比其它語言快。
不同類型的CPU 有不同的機器指令系統,也就有不同的匯編語言,匯編語言程序的通用性和可移植性要比高級語言程序低。
高級語言依賴于操作系統,不同操作系統需要不同的編譯器。
FORTRAN:最初是一種簡單語言,經過幾年附加特性后形成高級語言
COBOL:先設計好再開發,形成后很少改動
Lisp:主要人工智能的應用程序和研究
第三代軟件(1965-1971)
操作系統:一個決定計算機何時運行什么的程序的程序(CPU時間+內存空間的分配)
分時:一臺電腦跑10個應用程序
多用途應用程序,如SPSS(用FORTRAN語言編寫的):具有一種專用的語言,用戶使用這種語言編寫指令,作為程序的輸入
第三代才有了給麻瓜用的軟件,之前寫軟件和用軟件的都是魔法師。
用戶與硬件的距離逐漸加大:只要接觸到系統軟件和應用程序包
第四代軟件(1971-1989)
結構化程序設計方法:一種有邏輯、有規則的程序設計方法
Pascal語言是這么設計的,BASIC語言升級成了更具有結構性的版本
C語言:允許使用一些匯編語句,加快運作速度
C++:面向對象 ?C:面向過程
更好更強大的操作系統
Macintosh機:引入鼠標的概念、引入點擊式的圖形界面
第五代軟件(1990-)
?Microsoft公司的崛起:Windows操作系統+Office辦公套件
面向對象的設計和變成方法的出現:結構化設計基于任務的層次劃分,而面向對象的設計則基于數據對象的層次劃分。(面向對象的設計/面向過程的設計)
萬維網(World Wide Web):全球Internet文檔中心
一套技術規則+格式化文檔的HTML語言+讓用戶訪問全世界站點上的信息的程序(瀏覽器)
Windows和IE綁定,Windows操作系統收費,IE就是免費的了,通過此項打敗了另一個要收費的強大技術。
計算機科學
算法思想:能夠用按部就班的過程表示問題,從而解決它們。
表示法(Representation):用能被有效處理的方式存儲數據
程序設計:把算法思想和表示法組織在計算機軟件中
功能設計:設計軟件以實現某種用途
計算機系統:由構成設備的硬件、機器執行的軟件程序、由前兩者管理和操作的數據組成