程式语言简介

上传人:gb****c 文档编号:243039375 上传时间:2024-09-14 格式:PPT 页数:38 大小:131.50KB
返回 下载 相关 举报
程式语言简介_第1页
第1页 / 共38页
程式语言简介_第2页
第2页 / 共38页
程式语言简介_第3页
第3页 / 共38页
点击查看更多>>
资源描述
,按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,*,程式語言簡介,1,內 容 大 綱,程式語言的歷史,程式語言的五個世代,著名程式語言介紹,2,程式語言的歷史 (1/2),電腦萌芽的,1950,年代,工程師必須藉由控制台按鈕或讀卡機輸入一連串的,0,與,1,來下達指令,(instruction),,以直接控制電腦的中央處理器執行計算,這是最早型式的程式語言,(programming language),,稱為低階語言,(low-level language),。,現在,工程師通常使用鍵盤輸入接近人類自然語言,(natural language),的敘述,(statement),來控制電腦的中央處理器進行運算,這稱為高階語言,(high-level language),,高階語言接近人們日常生活所用的語言,因此,顯得比較容易撰寫也比較容易理解。,3,程式語言的歷史 (2/2),不管是一連串低階語言指令所形成的組合,或是一連串高階語言敘述所形成的組合,均可稱為程式,(program),。,將中央處理器比喻為電腦的大腦的話,那麼程式可以說是電腦的靈魂了,是程式賦予電腦生命,少了程式的電腦無法進行任何工作,它只不過是一群推砌在一起的電路罷了。,有了程式,電腦可以依照程式的指示進行運算,於是各種可能的應用都出現了,程式可以指示中央處理器進行核子反應模式計算,也可以指示中央處理器透過網路卡接收資料顯示於顯示螢幕上,或可以讓人們使用電腦進行具聲光效果的電腦遊戲,,等。,4,程式語言的五個世代 (1/15),第一代語言,-,低階語言,(low-level language),低階語言又稱為機器語言,(machine language),,此種語言使用一連串的,0,與,1,來下達指令,(instruction),以控制中央處理器進行運算。,例如,在某機器上可能使用:,0001 1011 0100 1100 0000 0011 0000 1000,代表要中央處理器計算,3,和,8,的和並將計算結果暫時儲存起來。,5,程式語言的五個世代 (2/15),不同的電腦主機因為中央處理器所接受的指令不同,因此也有不同的機器語言。,要撰寫機器語言程式必須熟稔電腦內部所有的結構,並需要了解什麼樣的0與1字串事代表什麼樣的指令。,一連串的0與1顯然是令人難以理解的,這使得機器語言程式的撰寫和除錯都相當繁瑣。,6,程式語言的五個世代 (3/15),第二代語言,-,中階語言,(middle-level language),第二代語言又稱為組合語言,(assembly language),,此種語言使用速計符號,(mnemonic symbol),來下達指令以控制中央處理器。,例如,在某機器上以下的指令:,LD R1,3,LD R2,8,ADD R1,R2,代表要中央處理器計算,3,與,8,的和,並將計算結果暫時儲存起來。,7,程式語言的五個世代 (4/15),當我們要執行組合語言程式時,必須先將組合語言程式透過一個稱為組譯器,(assembler),的工具程式轉換成一連串由,0,與,1,所構成的機器語言程式才可以控制中央處理器進行運算。,其轉換過程如下:,:,:,LD R1,3,LD R2,8,ADD RL,R2,:,:,組譯器,(assembler),:,:,00,00,10,00,:,:,中央處理器,(CPU),結果,組合語言程式,機器語言程式,8,程式語言的五個世代 (5/15),第三代語言,-,高階語言,(High-level Language),高階語言使用與自然語言,(,如英語,),類似的敘述,(statement),來指示中央處理器進行運算。,例如,:,R=3+8;,代表要中央處理器計算,3,與,8,的和,並將計算結果暫時儲存起來(儲存於變數,R,中)。,9,程式語言的五個世代 (6/15),高階語言程式已經非常接近人類日常生活使用的自然語言了,這使得高階語言程式更容易撰寫與維護。,高階語言程式需要透過稱為編譯器(compiler)的工具程式,轉換為一連串由0與1所構成的機器語言程式以後才可以驅動中央處理器執行運算。,10,程式語言的五個世代 (7/15),轉換過程如下所示:,有些高階語言也可以透過直譯器(,interpreter,)直接得到執行結果。直譯器的轉換過程如下所示:,:,:,R=3+8;,:,:,編譯器,(,compiler,),:,:,00,00,10,00,:,:,中央處理器,(CPU),結果,高階語言程式,機器語言程式,:,:,R=3+8;,:,:,解譯器,(,interpreter,),中央處理器,(CPU),結果,高階語言程式,11,程式語言的五個世代 (8/15),高階語言程式一般而言是與電腦的硬體架構無關的(,machine independent,),這表示在某一個電腦系統上開發的高階語言程式不需要太多的修改就可以挪移到另一個電腦系統上執行,這項特性大大提高了程式的可攜性(,probability,),降低高階語言程式的開發成本。,高階語言通常為程序性語言,(procedural language),,它們使用程序,(procedure),、函數,(function),以循序化,(sequential),的方式指示中央處理器進行運算。,12,程式語言的五個世代 (9/15),有一部份高階語言是屬於物件導向程式語言(object-oriented programming language, OOPL),其基本觀念為將程序與資料加以結合並封裝(encapsulate)在一起,這個封裝的個體就是物件(object),而程式設計就完全以物件為基礎來完成。,物件導向程式設計的觀念可以使程式的設計較不容易出錯,使程式的維護及程式模組的共用變得較為容易,是當前程式設計的一個主流觀念。,13,程式語言的五個世代 (10/15),現今大部分的程式語言都屬於第三代的高階語言,如FROTRAN、COBOL、BASIC、ALGOL、PL/I、LISP、PROLOG、PASCAL、C/C+、JAVA等 。,14,程式語言的五個世代 (11/15),第四代語言,-(Fourth-Generation Language, 4GL),第四代語言屬於非程序性語言,(non-procedural language),,亦即使用者不用指出電腦應該如何做的程序,而只要指示電腦做什麼就可以了。,15,程式語言的五個世代 (12/15),例如,以下是一個資料庫結構化查詢語言,(structure query language, SQL),的例子:,select,員工姓名,from,員工薪資表,where,月薪, 50000,上述,SQL,語言的意思是指示電腦列出月薪大於,5,萬元的員工姓名。我們在上列的指令中,只有指示電腦顯示出我們要的結果,(,做什麼,),,而沒有指示電腦如何完成顯示結果程序,(,如何做,),。,16,程式語言的五個世代 (13/15),第四代語言的語法比第三代語言的語法簡單得多,但是其執行效率較慢,而且需要更多的軟體和硬體設備來執行。,另外,第四代語言通常只能用於特殊用途,如資料庫查詢及印製報表等。因此,其彈性較第三代語言小,無法全面應用於所有的領域。,17,程式語言的五個世代 (14/15),第五代語言,-,自然語言,程式語言的最高目標,就是可以直接使用人類日常交談所用的自然語言,(natural language),來指示電腦系統執行運算。,例如,我們可以使用,“印出員工中月薪超過五萬元的員工姓名”,或,“將月薪超過五萬元的員工姓名印出”,等中文語句來指示電腦系統只列出月薪多於五萬元的員工姓名。,18,程式語言的五個世代 (15/15),自然語言的語法複雜,而且通常一字多義,而文句的語意又會因為文句前後文或說話環境的不同而改變。,要使用自然語言來直接指示電腦執行運算,必須藉助人工智慧(Artificial Intelligence, AI)的技術來完成。,19,著名的程式語言介紹 (1/),FORTRAN (FROmula TRANslator),由,IBM,公司於,1954,年發展出來,中文稱為福傳語言,其主要的用途是為科學及工程計算。,最大特性是接近數學公式的自然描述,在執行時具有很高的效率,因此廣泛地應用於數值計算領域。,因為是最早該發的程式語言之一,因此累積了大量高效率而可靠的原始程式。,重要版本有,1960,年,FORTRAN IV,、,1978,年發表的,FORTRAN 77,。,1990,年後的版本有,FORTRAN90 (ANSI, 1992,年標準,),、,FORTRAN95,及,FORTRAN2003,。,20,著名的程式語言介紹 (2/),以下為,FORTRAN,語言的,Hello World,程式:,C This is a FORTRAN program,* To say hello to world,WRITE(*,10),10,FORMAT(Hello, world!),STOP,END,21,著名的程式語言介紹 (3/),COBOL (Common Business-Oriented Language),於,1959,年推出,由美國國防部五角大廈中的一個委員會所制定,中文稱為科博語言,主要用於商業資料處理。,適合用於處理大量輸入輸出資料,檔案處理及報表製作。,重要版本有,1968,年發佈的,ANSI-COBOL (ANSI,代表,American National Standard Institute,,美國國家標準局,),、,1985,年公佈的,COBOL 85,及,2000,年公佈的,COBOL2002,。,22,著名的程式語言介紹 (4/),以下是,COBOL,語言的,Hello World,程式:,*,This is a COBOL program,*To say hello to world,IDENTIFICATION DIVISION.,PROGRAM-ID. HELLO-WORLD.,ENVIRONMENT DIVISION.,DATA DIVISION.,PROCEDURE DIVISION.,DISPLAY Hello, world!.,STOP RUN.,23,著名的程式語言介紹 (5/),BASIC (Beginners All-purpose Symbolic Instruction Code),1965,年由,John Kemeny,及,Thomas Kurtz,於,Dartmonth,學院提出,中文稱為培基語言,,BASIC,語言原本就是為程式初學者所開發,因此簡單易學。,因為簡單易學,,BASIC,語言受到廣泛的歡迎,隨著微電腦的普及,出現了許多,BASIC,版本,例如,Apple BASIC,、,GWBASIC,、,IBM BASIC(,即,BASICA),、,True BASIC,、,Quick BASIC(,即,QBASIC),及微軟公司所推出具有視覺化介面的,Visual Basic,等。,24,著名的程式語言介紹 (6/),以下為,BASIC,語言的,Hello World,程式:,10 REM This is a BASIC program,20 REM To say hello to world,30 PRINT Hello, world!,25,著名的程式語言介紹 (7/),PASCAL,1971,年由瑞士蘇黎世學院的,Niklaus Wirth,教授發展出來,中文稱為巴斯卡語言,此語言的命名是為了紀念一位十七世紀的法國數學家,Blaise Pascal (1623-1662),。,PASCAL,語言的發展是為了程式語言相關的教學,是最早出現的結構化程式語言,具有豐富的資料型別和簡潔的語法,同時適於描述數值和非數值的問題。,在,1980,年代,此語言為許多大學及學院選擇為教學用語言,然而由於許多,PASCAL,編譯器之間的相容性不夠高,因此並未被業界廣泛採用。,26,著名的程式語言介紹 (8/),以下是,PASCAL,語言的,Hello World,程式:,(* This is a PASCAL program *), To say hello to world ,program Hello;,begin,writeln(Hello, world!);,end.,27,著名的程式語言介紹 (9/),C,語言,由,Ken Thompson,及,Dennis Ritchie,在,1970,年代於著名的貝爾實驗室,(Bell Lab.),發展出來。,C,語言具有相當高的執行效率,又具有直接操控資料位元的特性,是一個靈活性最高的語言。,因為它的高效能及靈活性,,C,語言經常被用來開發各種系統,如著名的,UNIX,作業系統,其中大部分即是使用,C,語言開發的。,28,著名的程式語言介紹 (10/),以下是,C,語言的,Hello World,程式:,/*This is a C program */,/*To say hello to world */,#include stdio.h /* Required for printf( ) */,main(void),printf(Hello, world!n);,29,著名的程式語言介紹 (11/),C+,語言,由,Bjarne Stroustrup,於,1980,年代於貝爾實驗發展出來。,一開始以,C,語言的增強版的形式出現,稱為”,C with Classes”,,而後才正式稱為,C+,語言。,從給,C,語言增加類別開始,,C+,不斷的增加新特性,如虛擬函數,(virtual function),、多載運算符,(overloading operator),、多重繼承,(multiple inheritance),、模板,(templates),、例外處理,(exception handling),、名字空間,(name space),等逐漸被加入標準。,30,著名的程式語言介紹 (12/),1998,年及,2003,年國際標準組織(,ISO,)頒布了,C+,程式語言的國際標準,ISO/IEC 14882-1998,及,,ISO/IEC 14882-2003,。,以下是,C+,語言的,Hello World,程式:,/This is a C+ program,/*To say hello to world */,#include iostream / Required for std:cout,int main(),std:cout Hello World! std:endl;,return 0;,31,著名的程式語言介紹 (13/),Java,語言,由昇陽,(Sun),公司,James Gosling,等人開發,於,1995,年,5,月,23,日發表,是一個純物件導向程式語言,它與,C/C+,的語法類似,但去除了,C/C+,中容易被誤用或造成錯誤的功能,例如,C/C+,中的指標,(pointer),與,C+,中的多重繼承等。,Java,語言並不被編譯成為能夠直接在電腦上執行的二進位機器碼,(binary machine code),,而是被編譯為位元組碼,(bytecode),在,Java,虛擬機器,(JVM, Java Virtual Machine),上執行,這個作法使,Java,語言幾乎可以跨越所有平台執行,而有所謂的 ”,write once,,,run anywhere”,的特性。,32,著名的程式語言介紹 (14/),Java語言也可以在網路瀏覽器上執行,這使得Java語言非常適用於網際網路環境。,Java語言以JDK的方式發表,JDK為Java發展者工具組(Java Development Kit),JDK工具組裏包含撰寫Java程式的所有工具,包括編譯器(compiler)、解譯器(interpreter即JVM)、除錯程式(debugger)及文件產生工具(document generator)等。,33,著名的程式語言介紹 (15/),Java,語言自,1995,年發表至今,已超過,10,個年頭,在這期間,Java,語言經歷兩次重大的改變:,1998,年,12,月自,JDK 1.1,轉變至,JDK 1.2,,整個語言架構重新規劃,而此架構則被稱為,Java 2,平台,(Java 2 Platform),。,後續幾年的改版,如,JDK 1.3,、,JDK 1.4,大多只強化,API,的功能,而針對語言本身並無太多更改。,2004,年,9,月,30,日發佈的,JDK1.5,則被昇陽公司視為自,Java 2,平台發表五年後,最重大且最先進的版本,也因此,這個版本被賦予了,5.0,的版號,以反應其重要性。而目前,Java 6.0(,代號,Mustang),及,Java 7.0(,代號,Dolphin),都已經在發展中了。,34,著名的程式語言介紹 (16/),以下是,Java,語言的,Hello World,程式:,/This is a Java program,/To say hello to world,public class Hello ,public static void main(String args) ,System.out.println(Hello, world!);,35,著名的程式語言介紹 (17/),C#,語言,1995,年,微軟公司推出,C#(C Sharp),語言,作為其在具有通用程式語言架構(,CLI, Common Language Infrastructure,)的,.NET Framework,環境下的主要程式語言。,C#,擁有,C/C+,大部份的功能,並加入,Visual Basic,的特性,它是一個物件導向,(object-oriented),程式語言。,微軟公司將,C#,定位為,Java,的替代品,因此它與,Java,語法的相似度非常高。,36,著名的程式語言介紹 (18/),與Java語言一樣,C#程式並不被編譯成為能夠直接在電腦上執行的二進位機器碼(binary machine code),而是被編譯為稱作MSIL(Microsoft Intermediate Language)的中間代碼,然後特過.NET Framework中稱為共通語言執行環境(CLR, Common Language Runtime)的虛擬機器執行。,37,著名的程式語言介紹 (19/),以下是,C#,語言的,Hello World,程式:,/This is a C# program,/To say hello to world,class HelloWorldApp,public static void Main(),System.Console.WriteLine(Hello, world!);,38,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!