python结构化程序设计的语言有哪些_编程基础概念——编程语言&程序结构

编程语言

我们在演示理论计算机的时候,用了两种编程的方式,一种是二进制,一种是机器指令。 机器指令代码表示为:

LOAD R0 40

LOAD R1 41

ADD R2 R0 R1

STORE 42 R2

HALT

用十六进制表示为:

1040

1141

3201

2422

0000

计算机编程语言就是指令规范,告诉机器怎么运行。前面演示看到的机器指令我们叫汇编语言。计算机语言虽然是给机器用的,但是却是人来写的,二进制和汇编太底层了,对人不友好,所以又进一步发展出了接近于人类习惯的语言,我们叫高级语言。

历史上比较重要的高级语言有好些,列出几种。

Fortran这是第一个计算机高级语言,现在还在数值计算领域使用。

1956年由John Backus发明。Backus其实是一个学渣,中学成绩平平勉强毕业,大学学的化学,也是成绩平平。后来入伍,退役后想当个无线电修理工,培训的时候对数学充满兴趣,后来就去哥伦比亚大学学数学,最后成了计算机编程届的先驱者,提出了BNF(用来定义形式语言语法的记号法),于1977年获得图灵奖。他的故事,接近于中国宋朝的苏老泉。John Backus,1924.12.3-2007.3.17

Algol这是第一个被清晰定义出来的高级语言,1958年发布。由美国德国科学家组成的联合小组研发。

Basic1964年,美国达特茅斯学院J. Kemeny和Thomas E. Kurtz研发。他定义为一个给初学者使用的程序设计语言,在学习者中和流行。Microsoft的Bill Gates又将Basic进一步推广。

SmalltalkSmalltalk是一种面向对象的、动态类型的编程语言。由Alan Kay等人在70年代初开发。

C1972年,由Dennis Ritchie设计,Dennis Ritchie和Ken Thompson开发出来。这是历史上到现在为止影响力最大的编程语言。

C语言具有高效、灵活、功能丰富、表达力强,在程序设计中备受青睐。现在依然被广泛使用。1979年,Brian Kernighan和Dennis Ritchie出版名著《The C Programming Language》。我建议你读一读,哪怕只是为了膜拜一下。

Pascal1971年,N.Wirth教授发明了Pascal语言。Pascal语言语法严谨,程序易写,具有很强的可读性,是第一个结构化的编程语言。

N. Wirth教授说了一句名言:“算法+数据结构=程序”(Algorithm+Data Structures=Programs)。

Wirth因为在计算机编程语言方面的贡献,于1984年获得Turing奖。他还有一句幽默名言:软件变慢的速度永远超过硬件变快的速度。Wirth的名字被欧洲之外的人经常读错为Worth,实际上应该读做Virt。Niklaus Emil Wirth,1934.2.15 -,图片来源:维基百科

C++1980年前后,由Bjarne Stroustrup发明。现在是广泛使用的主流语言。他出版的《The C++ Programming Language》被誉为C++编程方面的圣经。Bjarne Stroustrup,1950.12.30 -

Python由丹麦的Guido van Rossum发明,1989年他开始设计,1991年发布。现在是广泛使用的主流语言,我们现在就在学它。Guido van Rossum,1956.1.31 -

Java

1995年由James Gosling发明。现在是广泛使用的主流语言。James Gosling,1955.5.19-

程序结构

我们这里探讨的程序结构,基于一个编程的范式:结构化编程(Structural Programming)。

当然还有别的范式,技术演进的历史进程,通行的就是结构化编程和面向对象编程,而面向对象编程内部的基础还是结构化编程的底子。所以我这里也只说基本的结构化编程的程序结构。

一个计算机程序从结构上来说,有三种结构:Sequence顺序,Decision分支和Repetition循环。科学家证明了只要这三种结构就可以完备地表达算法。

Sequence顺序结构举例:

a=1+2

b=3

print(a*b)上面的三条语句是逐一按照次序执行的。

Decision分支结构举例:

if i<0:

print ("Negative")

elif i==0:

print ("Zero")

else:

print ("Positive")

Repetition循环结构举例:

i = 0

while i< 10:

print (i)

i += 1只要条件i<10成立,就会一直执行下面的两条语句。

还有一种循环语句的表达:

for i in range(5):

print(i)

for语句是遍历序列范围内所有的值,运行结果:

0 1 2 3 4

循环体中,可以通过break语句退出循环,也可以通过continue进行下一轮循环。结构化程序设计采用"自顶向下,逐步求精"的方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本结构模块组成的结构化程序框图;代码实现的时候由顺序、选择和循环三种结构通过组合、嵌套构成。据此就容易编写出结构良好的程序来。

这些概念由软件大师E.W.Dijkstra在1965年提出。

E.W.Dijkstra曾经在1972年获得Turing奖,他是荷兰第一位计算机专业的科学家。他对我们程序员影响最大的就是“Goto语句有害论”,从我们刚入行的时候开始,就知道有一个叫Dijkstra的荷兰人在我们耳朵边叮嘱我们不要用goto语句要注意程序结构。2002年,在经过了长期的与癌症的抗争后,Dijkstra离开了我们,我听闻后,含泪写道“零落成泥碾作尘,只有香如故”。E.W.Dijkstra,1930.5.11-2002.8.6,图片来源:维基百科

欢迎关注我的其他专栏 爪哇河谷爪哇河谷​zhuanlan.zhihu.com68346032805b04f621d5ef0011e0acb7.pngJava语言十五讲​zhuanlan.zhihu.com68346032805b04f621d5ef0011e0acb7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值