計算機編程語言的發(fā)展趨勢_第1頁
計算機編程語言的發(fā)展趨勢_第2頁
計算機編程語言的發(fā)展趨勢_第3頁
計算機編程語言的發(fā)展趨勢_第4頁
計算機編程語言的發(fā)展趨勢_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

計算機編程語言的發(fā)展趨勢2023/6/6第一頁,共七十七頁,編輯于2023年,星期一據(jù)說全世界存在過計算機編程語言超過2500種。你可以在下面的網(wǎng)站查詢到約2500種編程語言的相關信息。/~nkinners/LangList/Extras/search.htm第二頁,共七十七頁,編輯于2023年,星期一關于編程語言的幾個問題編程語言可以分為哪些種類?優(yōu)秀的編程語言應該是什么樣?導致編程語言流行的原因?最流行的編程語言是什么?如何選擇適合自己的開發(fā)語言?第三頁,共七十七頁,編輯于2023年,星期一提綱編程語言發(fā)展歷史的簡單回顧編程語言的現(xiàn)狀編程語言的發(fā)展趨勢編程語言的選擇第四頁,共七十七頁,編輯于2023年,星期一編程語言發(fā)展

歷史的簡單回顧第五頁,共七十七頁,編輯于2023年,星期一編程語言發(fā)展歷史的簡單回顧低級語言時代高級語言時代面向?qū)ο髸r代第六頁,共七十七頁,編輯于2023年,星期一低級語言時代(1946—1953)第七頁,共七十七頁,編輯于2023年,星期一光電閱讀機將記錄在穿孔卡片上數(shù)據(jù)讀入計算機,計算的結(jié)果則利用打孔機在卡片上打出的一些小孔,就表示輸出的數(shù)據(jù)??ㄆ系男】拙徒M成了計算機和專家明白但絕大多數(shù)人不明白的天書——機器語言,也就是完全用0,1代碼寫的程序。機器語言第八頁,共七十七頁,編輯于2023年,星期一匯編語言由于機器語言的難易理解,莫奇萊等人開始想到用助記符來代替0,1代碼,于是匯編語言出現(xiàn)了section.data

msgdb"Hello,world!",0xA

lenequ$-msg

; section.text

;

global_start

;

_start:

;

第九頁,共七十七頁,編輯于2023年,星期一高級語言時代(1954—至今)隨著世界上第一個高級語言fortran的出現(xiàn),新的編程語言開始不斷涌現(xiàn)出來。各有特色,各有優(yōu)勢,隨著時間的檢驗,一些流行至今,一些則逐漸消失第十頁,共七十七頁,編輯于2023年,星期一常見的高級編程語言ALGOL1960,第一個結(jié)構(gòu)化程序設計語言推出C1972年,丹尼斯·里奇以B語言為基礎開發(fā)出C語言——目前世界上最常用的程序語言之一。C語言是使用最廣泛的語言之一,可以說,C語言的誕生是現(xiàn)代程序語言革命的起點,是程序設計語言發(fā)展史中的一個里程碑

第十一頁,共七十七頁,編輯于2023年,星期一開啟了一個時代的C語言(宣傳圖)第十二頁,共七十七頁,編輯于2023年,星期一常見的高級編程語言Basic

1964年美國達特茅斯學院的兩個教員(約翰.凱梅尼(J.Kemeny)和托馬斯·卡茨(T.Kurtz))開發(fā)了basic語言該語言只有26個變量名,,17條語句,12個函數(shù)和3個命令這門語言叫做初學者通用符號指令代碼”—BeginnersAllpurposeSymbolicIntructionCode第十三頁,共七十七頁,編輯于2023年,星期一常見的高級編程語言Pascal

1967年,Niklaus

Wirth開始開發(fā)PASCAL語言,1971年完成。主要特點有:嚴格的結(jié)構(gòu)化形式;豐富完備的數(shù)據(jù)類型;運行效率高;查錯能力強,可以被方便地用于描述各種算法與數(shù)據(jù)結(jié)構(gòu)有益于培養(yǎng)良好的程序設計風格和習慣PASCAL是一個重要的里程碑結(jié)構(gòu)化程序設計概念的語言第十四頁,共七十七頁,編輯于2023年,星期一面向?qū)ο髸r代(1990s初—至今)面向?qū)ο蟪绦蛟O計(Object-OrientedProgramming,簡稱OOP)是一種起源于六十年代的Simula語言,發(fā)展已經(jīng)將近三十年的程序設計思想。其自身理論已經(jīng)十分完善,并被多種面向?qū)ο蟪绦蛟O計語言實現(xiàn)第十五頁,共七十七頁,編輯于2023年,星期一常見的面向?qū)ο缶幊陶Z言VB—Basic的繼續(xù)Delphi—Pascal的繼續(xù)C++—C語言擴展VC++BorlandC++BuilderQtJava—最為流行的面向?qū)ο笳Z言C#

—新一代的面向?qū)ο笳Z言第十六頁,共七十七頁,編輯于2023年,星期一總結(jié)1、Java霸占了企業(yè)級應用市場,一部分移動開發(fā)(J2ME)和web開發(fā),但是Java在客戶端的圖形接口方面失敗連連,從Applet、AWT到Swing,Java似乎一直無法為客戶端提供堪用的解決方案,以致不斷敗退,造成了目前在客戶端使用Java應用程序的應用系統(tǒng)仍然非常稀少?!褂谜吲琶谝坏谑唔?,共七十七頁,編輯于2023年,星期一2、C和C++仍然是嵌入式開發(fā)和系統(tǒng)給開發(fā)的利器。操作系統(tǒng)、驅(qū)動程序、各種游戲大都是他們的開發(fā)的——地位不可替代3、C#用來做WEB、桌面、控制臺等程序都可以,和java類似?!杆籴绕?、VB、delphi擅長于快速的桌面程序開發(fā),數(shù)據(jù)庫開發(fā),例如進銷存軟件——逐漸下滑5、其他:perl、python、ruby,jsp,javascript,php等等也占據(jù)了一定的市場第十八頁,共七十七頁,編輯于2023年,星期一編程語言的現(xiàn)狀第十九頁,共七十七頁,編輯于2023年,星期一編程語言的現(xiàn)狀幾十年來硬件與編程語言的發(fā)展的對比從TOIBE排行榜看編程語言的現(xiàn)狀第二十頁,共七十七頁,編輯于2023年,星期一年份機型CPU主頻內(nèi)存外存1981IBMPC80884.77M16K~256K1.44M軟盤2012PC組裝機3.40G16G1T硬盤

71262500700000過去31年個人PC機硬件發(fā)展第二十一頁,共七十七頁,編輯于2023年,星期一幾十年來編程語言進步自1953年,第一個高級編程語言產(chǎn)生1972年,C語言誕生,至今整整40年,C語言的發(fā)展第二十二頁,共七十七頁,編輯于2023年,星期一幾十年來編程語言進步1972年,誕生1978年,貝爾實驗室正式發(fā)表C語言1983年,著手制定標準1989年,C語言標準被批準,即ANSIC1990年,ISO接受ANSIC為ISOC的標準1999年,ISO又對C標準標準修訂形成,C992011年12月8日,ISO正式公布C語言新的國際標準草案:ISO/IEC9899:2011,即C11。自ANSI標準化C語言后至今,ISO修訂對于C語言標準的改動非常小。第二十三頁,共七十七頁,編輯于2023年,星期一/*用C語言編寫的打印華氏溫度與攝氏溫度對照表代碼*/#include<stdio.h>main(){

intfahr,celsius;

intlower,upper,step;

lower=0;upper=300;step=20;fahr=lower;

while(fahr<=upper){celsius=5*(fahr-32)/9;printf("%d\t%d\n",fahr,celsius);fahr=fahr+step;}}第二十四頁,共七十七頁,編輯于2023年,星期一//用java語言編寫的打印華氏溫度與攝氏溫度對照表代碼packagetest;publicclassTest{publicstaticvoidmain(String[]args){intfahr,celsius;intlower,upper,step;lower=0;upper=300;step=20;fahr=lower;while(fahr<=upper){celsius=5*(fahr-32)/9;System.out.printf("%d\t%d\n",fahr,celsius);fahr=fahr+step;}}}第二十五頁,共七十七頁,編輯于2023年,星期一#用Python語言編寫的打印華氏溫度與攝氏溫度對照表代碼lower=0upper=300step=20fahr=lowerwhile(fahr<=upper):celsius=5*(fahr-32)/9print("%s\t%s"%(fahr,celsius))fahr=fahr+step第二十六頁,共七十七頁,編輯于2023年,星期一小結(jié)編程語言本身的發(fā)展非常緩慢。期間出現(xiàn)了一些東西,例如面向?qū)ο蟮鹊?,但是遠沒有好上1000倍。過去的努力沒有體現(xiàn)在編程語言上,而是體現(xiàn)在框架及工具等方面了。如今我們使用的框架,它們的體積的確有1000倍的增長。例如當年TurboPascal所帶的框架大約有100個功能,而現(xiàn)在的.NETFramework里則有一萬個類,十萬個方法,的確有1000倍的增長。與此類似,如果你觀察現(xiàn)在的IDE,我們現(xiàn)在已經(jīng)有了無數(shù)強大的功能,例如語法提示,重構(gòu),調(diào)試器,探測器等等,這方面的新東西有很多。與此相比,編程語言的改進的確很不明顯。第二十七頁,共七十七頁,編輯于2023年,星期一從TIOBE排行榜看編程語言的現(xiàn)狀TIOBE編程語言排行榜世界排名前20的編程語言五大流行編程語言的發(fā)展趨勢第二十八頁,共七十七頁,編輯于2023年,星期一編程語言的現(xiàn)狀Tiobe

TIOBE開發(fā)語言排行榜每月更新一次,依據(jù)的指數(shù)是基于世界范圍內(nèi)的資深軟件工程師和第三方供應商提供,其結(jié)果作為當前業(yè)內(nèi)程序開發(fā)語言的流行使用程度的有效指標。該指數(shù)可以用來檢閱開發(fā)者的編程技能能否跟上趨勢,或是否有必要作出戰(zhàn)略改變,以及什么編程語言是應該及時掌握的。觀察認為,該指數(shù)反應的雖并非當前最流行或應用最廣的語言,但對世界范圍內(nèi)開發(fā)語言的走勢仍具有重要參考意義。第二十九頁,共七十七頁,編輯于2023年,星期一排名1-10的編程語言第三十頁,共七十七頁,編輯于2023年,星期一排名11-20的編程語言第三十一頁,共七十七頁,編輯于2023年,星期一VeryLongTermHistoryofthetop10programminglanguages第三十二頁,共七十七頁,編輯于2023年,星期一Thelongtermtrendsforthetop10programminglanguages第三十三頁,共七十七頁,編輯于2023年,星期一第三十四頁,共七十七頁,編輯于2023年,星期一第三十五頁,共七十七頁,編輯于2023年,星期一第三十六頁,共七十七頁,編輯于2023年,星期一第三十七頁,共七十七頁,編輯于2023年,星期一第三十八頁,共七十七頁,編輯于2023年,星期一編程語言

的發(fā)展趨勢第三十九頁,共七十七頁,編輯于2023年,星期一編程語言的發(fā)展趨勢思考:影響編程語言未來發(fā)展的因素?第四十頁,共七十七頁,編輯于2023年,星期一編程語言未來發(fā)展趨勢動態(tài)化計算機能夠處理的事交給計算機處理聲明式及函數(shù)式編程風格告訴計算機What而不是How并發(fā)編程多核時代的必然要求觀點來自AndersHejlsberg《編程語言的發(fā)展趨勢及未來方向》的講座第四十一頁,共七十七頁,編輯于2023年,星期一編程語言未來發(fā)展趨勢未來計算機編程語言特點總體向支持動態(tài)、聲明式、并發(fā)支持,易于使用的多范式語言發(fā)展一些語言會同時支持面向?qū)ο?、面向過程、動態(tài)、聲明、函數(shù)式以及并發(fā)編程第四十二頁,共七十七頁,編輯于2023年,星期一PositionProgrammingLanguageRatings

PositionProgrammingLanguageRatings21SAS0.56%

36D0.28%22Bash0.55%

37Smalltalk0.25%23Transact-SQL0.49%

38NXT-G0.24%24ABAP0.46%

39APL0.23%25Scratch0.45%

40Forth0.22%26COBOL0.45%

41ML0.22%27Fortran0.42%

42Awk0.22%28R0.42%

43Dart0.19%29Scheme0.41%

44ActionScript0.17%30Logo0.38%

45CommonLisp0.17%31Prolog0.35%

46Alice0.16%32RPG(OS/400)0.35%

47LabVIEW0.15%33Haskell0.31%

48Eiffel0.15%34Erlang0.29%

49CFML0.15%35Scala0.29%

50Tcl0.14%排名21~50的語言,其中紅色為動態(tài)語言,藍色為函數(shù)式語言第四十三頁,共七十七頁,編輯于2023年,星期一安德斯·海爾斯伯格安德斯·海爾斯伯格(AndersHejlsberg,1960.12~),丹麥人,TurboPascal編譯器的主要作者,Delphi和.NET之父

比爾蓋茨評價:“Anders在C#創(chuàng)建中所做的努力將會改變現(xiàn)在的軟件開發(fā)方式,并將在以后的十年繼續(xù)產(chǎn)生影響?!钡谒氖捻?,共七十七頁,編輯于2023年,星期一例:找出所有100以內(nèi)能被3整除的數(shù)C語言實現(xiàn)核心代碼:inti,

a[100];for(i=0;i<100;

i++)

if(i

%

3

==

0){

a[i]

=

i;

printf("%d\t",

a[i]);

}第四十五頁,共七十七頁,編輯于2023年,星期一例:找出所有100以內(nèi)能被3整除的數(shù)Python語言實現(xiàn)核心代碼:a

=

[xforxinrange(1,100)]print

a第四十六頁,共七十七頁,編輯于2023年,星期一例:從文本文件中讀入所有行到一個數(shù)組(列表)中C語言實現(xiàn)核心代碼:FILE*fr;chars[1000][1000];inti=0;fr=fopen("test.txt","r");while(!feof(fr)){fgets(s[i],1000,fr);i++;}第四十七頁,共七十七頁,編輯于2023年,星期一例:從文本文件中讀入所有行到一個數(shù)組(列表)中Python語言實現(xiàn)核心代碼:li=open("test.txt").readlines()第四十八頁,共七十七頁,編輯于2023年,星期一例:快速排序算法A[0]A[1]A[2]A[3]A[4]A[5]A[6]493865977613272738134976976513273849657697第四十九頁,共七十七頁,編輯于2023年,星期一快速排序算法:C語言實現(xiàn)voidqsort(intv[],intleft,intright){

inti,last;

voidswap(intv[],inti,intj);

if(left>=right)

return;

swap(v,left,(left+right)/2);

last=left;

for(i=left+1;i<=right;i++)

if(v[i]<v[left])

swap(v,++last,i);

swap(v,left,right);

qsort(v,left,last-1);

qsort(v,last+1,right);

}

voidswap(intv[],inti,intj){

inttemp;

temp=v[i];

v[i]=v[j];

v[j]=temp;}第五十頁,共七十七頁,編輯于2023年,星期一快速排序算法:haskell實現(xiàn)qsort[]=[]qsort(x:xs)=qsort[y|y<-xs,y<x]++[x]++qsort[y|y<-xs,y>=x]第五十一頁,共七十七頁,編輯于2023年,星期一小結(jié)命令式語言面向機器的,以機器為中心,與計算機內(nèi)部原理相一致注重How,即如何解決問題函數(shù)式語言面向問題的,以人為中心,更符合人的思維方式,具有更高的抽象注重What,即對問題的描述第五十二頁,共七十七頁,編輯于2023年,星期一編程語言的選擇第五十三頁,共七十七頁,編輯于2023年,星期一編程語言的選擇編程語言的分類不同編程語言的特點值得關注的一些編程語言編程語言與開發(fā)工具的選擇第五十四頁,共七十七頁,編輯于2023年,星期一編程語言的分類幾種概念的說明面向?qū)ο蟮木幊陶Z言支持面向的編程語言第五十五頁,共七十七頁,編輯于2023年,星期一編程語言的分類高級語言與低級語言編譯型與解釋型動態(tài)與靜態(tài)類型命令式與函數(shù)式非中文與中文第五十六頁,共七十七頁,編輯于2023年,星期一動態(tài)語言,是指程序在運行時可以改變其結(jié)構(gòu)新的函數(shù)可以被引進,已有的函數(shù)可以被刪除等在結(jié)構(gòu)上的變化動態(tài)語言的類型檢查是在運行時做的靜態(tài)類型語言的類型判斷是在運行前判斷第五十七頁,共七十七頁,編輯于2023年,星期一命令式編程(Imperativeprogramming),是一種描述電腦所需作出的行為的編程范型。幾乎所有電腦的硬件工作都是指令式的;幾乎所有電腦的硬件都是設計來運行機器碼,使用指令式的風格來寫的。較高級的指令式編程語言使用變量和更復雜的語句,但仍依從相同的范型。因為命令式編程的基礎觀念,不但概念上比較熟悉,而且較容易具體表現(xiàn)于硬件,所以大部分的編程語言都是指令式的。2023/6/6第五十八頁,共七十七頁,編輯于2023年,星期一函數(shù)式編程是種編程典范,它將電腦運算視為函數(shù)的計算。函數(shù)編程語言最重要的基礎是λ演算(lambdacalculus)。而且λ演算的函數(shù)可以接受函數(shù)當作輸入(參數(shù))和輸出(返回值)。和指令式編程相比,函數(shù)式編程強調(diào)函數(shù)的計算比指令的執(zhí)行重要。和過程化編程相比,函數(shù)式編程里,函數(shù)的計算可隨時調(diào)用。2023/6/6第五十九頁,共七十七頁,編輯于2023年,星期一編程語言的分類中文編程語言易語言丙正正習語言Peryuyan擴展閱讀:各種奇怪的中文編程語言/share/281067432六十頁,共七十七頁,編輯于2023年,星期一易語言是由大連大有吳濤易語言軟件有限責任公司自主研發(fā)的國產(chǎn)化漢語編程軟件。是2005年國家火炬計劃項目之一,是一種全中文全可視跨平臺的編程語言環(huán)境。網(wǎng)站最近更新時間:2010年12月第六十一頁,共七十七頁,編輯于2023年,星期一//易語言示例局部變量

文本,

文本型

.局部變量

返回文本,

文本型

.判斷循環(huán)首

(整數(shù)

0)

文本

文本

字符

(取代碼

(“0”,

)

整數(shù)

2)

整數(shù)

整數(shù)

÷

2

.判斷循環(huán)尾

()

.計次循環(huán)首

(取文本長度

(文本),

整數(shù))

返回文本

返回文本

取文本中間

(文本,

取文本長度

(文本)

整數(shù)

1,

1)

.計次循環(huán)尾

()

返回

(返回文本)第六十二頁,共七十七頁,編輯于2023年,星期一//丙正正語言示例空象棋檔::設定註解(字元*s,整數(shù)n){

若(n>=最大註解數(shù))

對於(;最大註解數(shù)<=n;最大註解數(shù)++)

註解[最大註解數(shù)]=NONE;

若(s==NULL或字串長度(s)==0)

傳回;

若(註解[n]!=NONE)

刪除註解[n];

註解[n]=新字元[字串長度(s)+1];

字串複製(註解[n],s);

}第六十三頁,共七十七頁,編輯于2023年,星期一#包含“習語言系統(tǒng).接口”//習語言代碼示例整數(shù)類型主函數(shù)(){

文件類型*fp;

整數(shù)類型ch;

如果((fp=文件打開("練習13-2.文本","寫+"))==空指針){

格式輸出("無法打開文件:練習13-2.文本!");

暫停();

退出(1);}

格式輸出("輸入一串字符:\n");ch=輸入字符();

若符合條件(ch!=宏_換行鍵)重復{

文件寫字符(ch,fp);ch=輸入字符();}

文件復位(fp);ch=文件讀字符(fp);

若符合條件(ch!=宏_文件結(jié)束)重復{

輸出字符(ch);ch=文件讀字符(fp);}

格式輸出("\n");

文件關閉(fp);

暫停();返回0;}第六十四頁,共七十七頁,編輯于2023年,星期一#!/usr/local/bin/perl

useLingua::Sinica::PerlYuYan;

用警兮用嚴。

印道

1..1

哉兮

印編曰雜申雜申矣

又曰ok矣

又曰1矣

亂曰

國無人莫我知兮又何懷乎故都

既莫足與為美政兮吾將從彭咸之所居第六十五頁,共七十七頁,編輯于2023年,星期一#!/usr/local/bin/perl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論