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

下載本文檔

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

文檔簡介

發(fā)

勢——編程語言的歷史、現(xiàn)狀和未來計

機(jī)

學(xué)

院王安慧snowfield@163.com據(jù)

機(jī)

語言

過2

5

0

0

種。

可以

面的

網(wǎng)

2

5

0

0

言的

關(guān)

。http:///~nkinners/LangList/Extras/search.htm關(guān)于編程語言的幾個問題·

類?·

優(yōu)

應(yīng)

么樣?·導(dǎo)

?

·最

發(fā)

?提

綱·編程語言發(fā)展歷史的簡單回顧·

現(xiàn)

狀·

發(fā)

勢·編

擇編程語言發(fā)展

簡單回顧編

發(fā)

單回顧·

代·

代·面

代低級語言時代(1946—1953)機(jī)器語言光電閱讀機(jī)將記錄在穿孔卡片上數(shù)據(jù)讀入計算機(jī)

,計算的結(jié)果則利

機(jī)

卡片

打出的

一些小孔,

就表示

輸出的數(shù)據(jù)

??ㄆ系男?/p>

就組

成了計

機(jī)和專家明白但絕大多數(shù)

不明白的天書

機(jī)

語言,也

就是完全用0,

1代

碼寫的程序

。匯

言由于機(jī)器語言的難易理解

,

莫奇萊等

人開

0

,

1于是匯編語言出現(xiàn)了.datadb"Hello,world!",OxA$-msg

;section.text

;global_start

:start:_代碼

,sectionmsglen

equ高級語言時代(1954—至今)隨

言fortran的出

現(xiàn),

新的

言開

現(xiàn)出

,各有優(yōu)勢,隨著時間的檢驗,一

,

消失·常

言◆ALGOL·1960,

第一個結(jié)構(gòu)化程序設(shè)計語言推出◆C·1972

年,丹尼斯·里奇以B

語言為基礎(chǔ)開發(fā)出C

言——目前世界上最常用的程序語言之一?!

語言是使用最廣泛的語言之一,可以說,C

言的誕生是現(xiàn)代程序語言革命的起點,是程序設(shè)計語言發(fā)展史中的一個里程碑*ine1ub

<atdio.edet

4e

1

inetde

a

word,Yter=in

input

1imea.worde,andchoraetursininputnl.w.ne.state:Hr:EOR)

?gchar())1=EOF)(t(e

-n*)

hetntr(-sasdkd\w-,nl,

,e)*tneludo

<mtdin.h>

ineidoeutsiadaaw

d

d

/tars

in

fnput

words,and

characters

in

input

Ye,nl,n,se,state:

intc.nl.mw,ne.state;state

=our:utnmPnr開啟了一個時代的C

語言(宣傳圖)++nl:T

47

(ea=tate

=

*

n;1l

c==\)pcintt(*sd

sd

*d\n?,nl,w,ne):printt(*Md*dsd\n,nl,m,ne)roigirainninniing#Eeu,gaige

if

sta

setate=Ino

)l+m:el

=ourc;=\n1t1

at

e

-nt

=oür)I++n*:stat**n12T

elseit

(tote

our)tstate

-Qr;fO10Dennis

Ritchie1941-2011dotino

otr

outsida

a

wordl*nintstate

-IN:

++tw:1telse1it(c

e1seta-e=\)ll·常

言◆Basic·

1

9

6

4

達(dá)

學(xué)

員(約翰.凱梅尼

(J.Kemeny)

和托馬斯

·

卡茨

(T.Kurtz))

發(fā)

了basic語

言·該語言只有26個變量名,

,17條語句

,12個函數(shù)和3個命令這門語言叫做初學(xué)者通用符號指令代碼”—Beginners

AllpurposeSymbolic

IntructionCode·常

言◆Pascal●

1967年

,Niklaus

Wirth開始開發(fā)

PASCAL

語言

,1971

年完成。·主要特點有:

嚴(yán)格的結(jié)構(gòu)化形式;豐富完

備的數(shù)據(jù)類型;運行效率高;

查錯能力強(qiáng),

可以被方便地用于描述各種算法與數(shù)據(jù)結(jié)構(gòu)

有益于培養(yǎng)良好的程序設(shè)計風(fēng)格和習(xí)慣·PASCAL是一個重要的里程碑結(jié)構(gòu)化程序

設(shè)

念的語言面

(

1

9

9

0s

)面向?qū)ο蟪绦蛟O(shè)計(

Object-OrientedProgramming,簡稱OOP

)是一種起源于六十年代的Simula

語言,發(fā)展已經(jīng)將近三十年的程序設(shè)計思想。其自身理論已經(jīng)十分完善,并被多種面向?qū)ο蟪绦蛟O(shè)計語言實現(xiàn)·

言◆VB—Basic的

續(xù)Delphi—Pascal

續(xù)◆C++—C

擴(kuò)

展VC++·

Borland

C++Builder·Qt◆Java—最為流行的面向?qū)ο笳Z言◆C#—

新一代的面向?qū)ο笳Z言●總

結(jié)1、Java

霸占了企業(yè)級

應(yīng)

用市

場,

動開發(fā)(J2ME

)和web

開發(fā),但是Java

在客戶

端的圖形接口方面失敗連連,從Applet、AWT

到Swing,Java

似乎一直無法為客戶端提供堪

用的解決

案,

不斷

退,造

了目前在客

戶端使用Java

應(yīng)用程序的應(yīng)用系統(tǒng)仍然非常稀少

?!?/p>

使

一2、C和C++

仍然是嵌入式開發(fā)和系統(tǒng)給開發(fā)的利器。

作系

統(tǒng)

、

驅(qū)

他們的開發(fā)的——地位不可替代3、C#

用來做WEB、

桌面、控制臺等程

序都可以,和java類似?!杆籴绕?、VB、delphi

擅長于快速的桌面程序開發(fā),數(shù)

據(jù)庫

發(fā),

例如

進(jìn)

漸下

滑5、其他:

perl、

python、ruby,jsp,javascript,php

等等也占據(jù)了一定的市場編

現(xiàn)

狀·幾十年來硬件與編程語言的發(fā)

比·從

TOIBE

的現(xiàn)

狀年份機(jī)型CPU主頻內(nèi)存外存1981IBM

PC

80884.77M16K~256K1.44M軟盤2012P

C

機(jī)3.40G16G1

T

盤71262500700000過

3

1

人PC

機(jī)

發(fā)

展幾十年來編程語言進(jìn)步·自1953年,第

個高級編程語

產(chǎn)生·1

972年,

C語言誕生,至今整

4

0

,

C

發(fā)

展幾十年來編程語言進(jìn)步·

1972

年,

誕生1978

年,

貝爾實驗室正式發(fā)表C語言標(biāo)

準(zhǔn)

案:ISO/IEC

9899:2011,

C11

。自

ANSI

標(biāo)準(zhǔn)化C

語言

今,ISO

訂對于

C語言標(biāo)準(zhǔn)的改動非常小。··1983

年,著手制定標(biāo)準(zhǔn)1989

年,

C

語言標(biāo)準(zhǔn)被批準(zhǔn),

即ANSI

C···

1990年,

ISO

接受ANSI

C為ISOC的標(biāo)準(zhǔn)1999年,

ISO

又對C

標(biāo)準(zhǔn)標(biāo)準(zhǔn)修訂形成,C99·2011

年12月8日,

ISO

正式公布C語言新的國際/*用C

語言編寫的打印華氏溫度與攝氏溫度對照表代碼*7#include<stdio.h>main(){intfahr,celsius;intlower,upper,step;lower=0;upper=300;step

=20;fahr=lower;while(fahr<=upper){

(

a%h

\

f

-

lsius);ce)/9;,2r3aah;5"*s%rdrniul1用java語言編寫的打印華氏溫度與攝氏溫度對照表代碼;main(String[]args){int

lower,upper,step;lower=0;upper

=300;step

=20;

l

;=upper){

yl

siurtse=

=t

*ps(f

("%d-3

t)%/9;d\n",fahr,celsius);;fpthofam.refahlowwhifahrsdlsvsteceahstastebnlticfacgceliulikpbcpupa3#用Python

語言編寫的打印華氏溫度與攝氏溫度對照表代碼lower=0upper=300step

=20

h

rlshiinurst

"f

lsius))ce)/9,2r3p%eh"rhsa%rewfa對象等等,但是

遠(yuǎn)

有好上1000

。·過去的努力沒有體現(xiàn)在編程語言上,而是體現(xiàn)

在框架及工具等方面了

?!羧缃裎覀兪褂玫目蚣?,它們的體積的確有1000倍

的增長。例如當(dāng)年Turbo

Pascal所帶的框架大約有

100個功能,而現(xiàn)在的.NET

Framework里則有一萬

個類,十萬個方法,

的確有1000倍的增長?!襞c此類似,如果你觀察現(xiàn)在的IDE

,

我們現(xiàn)在已經(jīng)

有了無數(shù)強(qiáng)大的功能,例如語法提示,重構(gòu),調(diào)試

器,探測器等等,這方面的新東西有很多?!襞c此相比,編程語言的改進(jìn)的確很不明顯。如面向緩慢。例常結(jié)些東西的發(fā)展期間出現(xiàn)了編程語言本··從TIOBE

排行榜看編程語言的現(xiàn)狀·TIOBE編

榜·

2

0

言·五

發(fā)

勢編程語言的現(xiàn)狀·

Tiobe◆http://www.tiobe.com◆TIOBE

開發(fā)語言排行榜每月更新一次,依據(jù)的指數(shù)是基于世界范圍內(nèi)的資深軟件工程師和第三方供應(yīng)商

提供,其結(jié)果作為當(dāng)前業(yè)內(nèi)程序開發(fā)語言的流行使用

程度的有效

標(biāo)

?!粼撝笖?shù)可以用來檢閱開發(fā)者的編程技能能否跟上趨

勢,或是否有必要作出戰(zhàn)略改變,

以及什么編程語言

是應(yīng)該及時掌握的。觀察認(rèn)為,該指數(shù)反應(yīng)的雖并非

當(dāng)前最流行或應(yīng)用最廣的語言,但對世界范圍內(nèi)開發(fā)語言的走勢仍具有重要參考意義。PositionOct

2012PositionOct

2011Delta

in

PositionProgramming

LanguageRatingsOct

2012DeltaOct

2011Status12C19.822%+2.11%A21Java17.193%-0.72%A36tttObjective-C9.477%+3.23%A43C++9.260%+0.19%A55C#6.530%-0.19%A64PHP5.669%-1.15%A77(Visual)Basic5.120%+0.57%A88Python3.895%-0.05%A99Perl2.126%-0.31%A1011Ruby1.802%+0.28%A排

1

1

0

言排名11—20的編程語言PositionOct

2012PositionOct

2011Delta

in

PositionProgramming

LanguageRatingsOct

2012DeltaOct

2011Status1110JavaScript1.261%-0.93%A1212Delphi/Object

Pascal1.097%-0.01%A1313Lisp0.947%-0.08%A1418ttttPascal0.839%+0.12%A1516Lua0.728%-0.07%A1620ttttAda0.654%+0.04%B1715PL/SQL0.630%-0.27%B1825tttttttVisual

Basic

.NET0.599%+0.12%A-1921ttMATLAB0.591%+0.02%B2019Assembly0.568%-0.05%BProgramming

LanguagePositionOct

2012PositionOct

2007PositionOct

1997PositionOct

1987C1211Java214一Objective-C344一一C++4526C#57一一PHP64一一(Visual)Basic7335Python8829一Perl968一Ruby1010一一Lisp1318123Ada1619112Very

LongTerm

Historyofthetop

10

programming

languages200820072008200920102011

2012Time—Perlthetop10programming

languages2002

2003

2004

2005Objective-C-Java

—C++long

term

trends

for二pmpPman

e27.525.022.520.017.515.012.510.07.55.02.50.0TIOBE

Programming

Community

IndexNormalized

fraction

of

total

hits(%)—

RubyThe21.020.520.019.519.018.518.017.517.016.516.015.515.014.514.013.513.02002TIOBE

Programming

Community

Index

CNomalizedffactionoftotalhits(%2007Time201020112012200320042005200620082009TIOBEProgramming

Community

Index

Java2002200320042005200620072008200g201020112012Nomalizedfractionof

totalhits

(%27282524232221201918171615Time10.09.59.08.58.07.57.08.58.05.55.04.54.03.53.02.52.01.51.00.50.02002TIOBE

ProgrammingCommunityIndexObjective-cNormalizedfractionof

total

hits

(%)2007

200gTime200g2010201120122003200420052008TIOBE

ProgrammingCommunity

IndexC++18.017.517.016.516.015.515.014.514.013.513.012.512.011.511.010.610.09.59.08.58.07.5Nomallzedfractionoftotal

hits

(%Time200g200e201020112012200420052007200220032008TIOBE

ProgrammingCommunityIndexC#9.08.58.07.57.06.56.05.55.04.54.03.53.02.52.01.51.00.50.02002

2003

2004

2005

20082007200g

2009

2010

2011

2012TimeNormalizedfractionoftotalhits

(%)程

言展

趨編程語言的發(fā)展趨勢·思

發(fā)

?編

發(fā)

勢·動態(tài)化◆

機(jī)

機(jī)處

理·聲明式及函數(shù)式編程風(fēng)格◆

機(jī)What

是How·

發(fā)

程◆多

核時

代的

求觀點來自Anders

Hejlsberg《編程語言的發(fā)展趨勢及未來方向》的講座編

發(fā)

勢·

機(jī)

點◆

態(tài)

、

、

發(fā)

持,易于使用的多范式語言發(fā)展◆一些語言會同時支持面向?qū)ο?/p>

、面向過程、動態(tài)、聲明、函數(shù)式

發(fā)

程PositionProgrammingLanguageRatingsPositionProgrammingLanquageRatings21SAS0.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%45Common

Lisp0.17%31Prolog0.35%46Alice0.16%32RPG(OS/400)0.35%47LabVIEW0.15%33Haskell0.31%48Eiffel0.15%34Erlang0.29%49CFML0.15%35Scala0.29%50Tcl0.14%排

2

1

5

0

,

態(tài)

,

藍(lán)

數(shù)

言安

-

格安

德斯

·

海爾斯伯格

(AndersHejlsberg,

1960.12

~

),丹麥人

,Turbo

Pascal編譯器的主要作者,

Delphi和.NET

之父比

評價

:“Anders在

C#

創(chuàng)

力將會

現(xiàn)

在的軟

開發(fā)

,

的十

續(xù)

產(chǎn)

。

”·例:找出所有100以內(nèi)能被3整除

數(shù)C

現(xiàn)

:int

i,a[100];for(i

=0;i<100;i++)if(i

%3

==0){

i

tf("%d\t",a[i]);ni;ri]=pa[·例:找出所有100以內(nèi)能被3整除

數(shù)Python

語言實現(xiàn)核心代碼:a=[xforx

in

range(1,100)]print

例:

從文本文件中讀入所有行到

數(shù)

(

)

中C

現(xiàn)

:*fr;s[1000][1000];

=0;fr=fopen("test.txt"while(!feof(fr)){

fgets(s[i],1000,fr);FILEchar

int

ii++;,"r");·

例:從文本文件中讀入所有行

數(shù)

(

)

中Python

語言實現(xiàn)核心代碼:li=open("test.txt").readlines()真生非∠69LG968&∠乙ELG9∠69L6tEL8S∠乙∠乙EL9∠∠6G98E6t[g]v[s]v[t]v[e]v[z]v[l]y[o]

√快速排序算法

:C語言實現(xiàn)voidqsort(intv[],intleft,int

right){eidi

pi

ihnt)

v[],int

i,intj);sleft,(left+right)/2);

];

<=right;i++)oidswap(int

v[],inti,intj){int

temp;temp

=v[i];v[i]=v[i];v[j]=temp;v})ift1v[leftefiivrsif(fola,;vnwapretutslaswap(v,++last,i);swap(v,left,right);

(,

fl

t

+1,r

;t);ig-1stasat,lv,lert(qsoqsor快速排序算法:

haskell

現(xiàn)qsort

[]=[]qsort

(x:xs)=qsort

[yly<-xs,y<x]++[×]++qsort

[y

|y<-xs,y>=x]小結(jié)·

語言◆

面向機(jī)

機(jī)

,

機(jī)

內(nèi)

致◆注重How,

題·

數(shù)

言◆面向問題的,

以人為中心,更符合人的

,

象◆注重What,

述編程語言的選擇編程語言的選擇·

編程語言的分類·

不同編程語言的特點·值

關(guān)

言·

發(fā)

選擇編程語言的分類·

幾種概念的說明◆面向?qū)ο蟮木幊陶Z言◆

言編

類●

高級語言與低級語

言·

編譯型與解釋型·

態(tài)

態(tài)

型●

命令式與函數(shù)式●

非中文與中文動

態(tài)

言,

結(jié)

構(gòu)

數(shù)

進(jìn),已

數(shù)

結(jié)

構(gòu)

變化動

態(tài)

言的

時做

的靜

態(tài)

型語

是在

運行

斷命令式編程(Imperative

programming),是

型。

幾乎所有電腦的硬件工作都是指令式的;幾乎所有電腦的硬件都是設(shè)計來運行機(jī)器碼,

使用指令式的風(fēng)格來寫的

。較

式編

言使

用變

量和

更復(fù)

雜的語句

但仍依從相同的范型

。因

礎(chǔ)

但概

上比較熟悉

,

而且較容易具體表現(xiàn)于硬件

,

所以

大部分的編程語言都是指令式的

。22:47函

數(shù)

程是

,

數(shù)

的計

。函數(shù)編程語言最重要的基礎(chǔ)是λ演算函

數(shù)

數(shù)

當(dāng)

(

數(shù)

)

和輸

(返

回值)。和

,

數(shù)

強(qiáng)

調(diào)函

數(shù)的計算比指令的執(zhí)行重要

。

和過程化

編程相比,函數(shù)式編程里,

函數(shù)的計算

可隨時調(diào)用

。(

lambda

calculus)。而且入演算的編程語言的分類·

中文編程語言◆易語言◆

正◆

習(xí)

言◆Peryuyan擴(kuò)展閱讀:各種奇怪的中文編程語言http://blog.r/share/281067432

是由

濤易

有限

責(zé)

司自

發(fā)的

產(chǎn)

件。

是2

0

0

5

年國家火

項目

一,

全中

平臺的

環(huán)

。網(wǎng)

2

0

1

0

1

2

月//易語言示例局部變量文本,文本型-局部變量返回文本,文本型-判斷循環(huán)首(整數(shù)>

0

)文本=文本+字符(取代碼

(“0”,)

+整

數(shù)%2)整

數(shù)

=

數(shù)÷2-判斷循環(huán)尾()-計次循環(huán)首(取文本長度(文本),整數(shù))返回文本=返回文本+取文本中間(文本,取文本長度

(文

)

數(shù)

+

1,1

)-計次循環(huán)尾()返回(返回文本)/丙正正語言示例空若象(

:最:設(shè)大定註解數(shù)()字元*s,整數(shù)

n){

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

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

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

傳回;若(註解[n]!=NONE)刪

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

(

解[n],s);}#包含“習(xí)語言系統(tǒng).接口”//習(xí)語言代碼示例整數(shù)類型主函數(shù)(){

h

入出字("

(入);一串字符:\n");若

字字符(c

換行鍵)重復(fù){

h

讀(fp字);符(fp)

;若

h

件結(jié)束)重復(fù){}格式輸出("\n");暫

(

);返回0;;文(f宏h字)h!讀(c(c()h!文件類型

*fp;整數(shù)類型

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

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

);暫停();退出(1);文件關(guān)閉(fp);#!/usr/local/bin/perluse

Lingua::Sinica::PerlYuYan;

用警兮用嚴(yán)。印

道1..1哉兮印編曰雜申雜申矣又曰ok矣又

1

矣亂曰國

都既

輿

居#!/usr/local/bin/perl#TheSieveofEratosthenes-埃

拉托斯芬篩法

use

Lingua::Sinica::PerlYuYan;用等兮用嚴(yán)井涸兮無礙。印曰最高矣又道數(shù)然哉。截起吾純風(fēng)賦小入大合。習(xí)予吾陣

地並

風(fēng)

當(dāng)起段

加陣

。

陣地賦篩始繫繫此雜

。終

標(biāo)

。

。不

點·假

車◆http://dev.yesky.com/275/8112275.shtml·假如編程語言是

把刀◆http://tech.ddvip.com/2012-07/1342932451178729.html·

教◆/conte

溫馨提示

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

評論

0/150

提交評論