Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61547
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-21 13:33
个人简介

业精于勤,荒于嬉;行成于思,毁于随。

文章分类

全部博文(14)

分类: IT业界

2015-03-22 18:31:56

        何为编程语言?故名思义,它首先是一门语言,其次它的目的用于编写程序的。平常我们使用的语言是用于人与人之间的交流,编程语言则是用于人与机器之间的交流。我们都知道,假若没有交流,机器怎么能理解人的思维呢。现在的CPU处理能力已是相当的强悍,它所富有的思维都是人赋予它的。计算机的最终执行,都是简单的执行“0”与“1”这两个字符。如何把我们的思维赋予计算机,则是编程语言所要解决的问题了。赋予计算机以思维,刚开始是没有编程语言这一说,只是人类习惯于总结和寻找更快捷的方式来实现,编程语言的出现也是必然的了。计算机的发展史,就是一个“遇到问题-解决问题-遇到问题”的问题解决史。从刚开始用“0”与“1”来赋予计算机思维,但人们发现一堆“0”与“1”放在一起,很容易出现混乱并且很难理解赋予计算机的思维具体是什么。于是人类便想到了助记符,从信息论与编码的角度来理解,就是赋予特定字符的组合以约定的含义。例如按四位二进制来约定0101表示加,1010表示减,当然这种约定是需要科学安排的,并不能像我这样任意的来约定。但是这种0101来表示“加”,1010表示减,并不符合人类自然语言的习惯,根据人类自然语言来设计的助记符,便有了汇编语言了。用ADD来表示加,用SUB来表示减,更易于人类编写和理解。用人类自然语言编写的代码,计算机自然无法理解,这之间的转换便得依靠编译工具了,编译工具的实质就是通过词性分析,语句分析等(编译原理)来把人类的自然语言编写的代码转换为计算机理解的“0”与“1”。到后面发展的C语言,C++语言,JAVA等,最终的编译结果都是基于计算机所理解的“0”、“1”。但是这些高级语言往往需要一个汇编的过程(就是把对应的语言编译成汇编语言),再把汇编语言编译为计算机理解的“0、”“1”。也许你会觉得,我直接设计一款编译工具把这种高级语言直接转换为计算机理解的“0”与“1”不就可以了么,何必需要一个汇编的过程呢。当然,这样的一款编译工具是完全可以设计出来的。然而,为什么人类设计的编译器不是这样做呢?首先,在已有的编译工具的基础上,构建新的编译工具,比从到到尾设计一款编译工具所花费的时间与精力要少很多。其次,每一款芯片的规则约定并不一定相同(这里导致了汇编语言的不统一),通过汇编工具可以分别生成对应芯片的所能理解的“0”,“1”,而通过高级语言直接生成“0”、“1”的成本是很高的,并且也不符合分层设计的思想。因而,把高级语言编写的代码,编译成“0”、“1”的中间需要一个汇编过程便不难理解了。对于后面出现的新的编程思想,如面向对象的思想,所要做的事情就是在编译工具中增加对这种思想的编译支持。面对各种高级编程语言,也只是提供了更好的编程思想,更高级的封装,以及对特殊应用的支持。面对各种开发工具,也只是封装了编译工具,分析工具等以及提供各种函数库,类库,及更友好的显示和交互,使编写代码是效率更高。


        编程语言从低级的汇编语言、c语言、介于高级和低级的c++语言,还有各种形形式式的高级语言(javaC#VB等),在如此众多的编程语言中,我们应该选择哪一门语言呢?首先,每一门语言的存在都有其意义,如果没有意义,谁会愿意投入人力物力去研究呢?其次,语言只是一种工具,是实现人与机器交流的工具,我们的最终目的都是赋予计算机以思维。再有,有些编程语言具有针对性,因而应该根据问题来选择语言。最后,选择一门比较流行的高级语言(c++,java)来学习,对于嵌入式编程,C语言是必须的,汇编语言也应该有所了解,才能真正的理解计算机的执行过程。


        编写程序,应尽量不要制造同样的轮子,除非因为版权等的因素。只有站在巨人的肩膀上,才能看的更远。编程也是如此,只有站在前人积累的基础上,我们才能设计的更高级、更高效。代码复用的思想正好体现了这一点。当然我们得确保这样的代码是公认高质量,否则用了一个烂的轮子,整个车子的设计也会出现问题。


        编写程序,或许是一件很枯燥的事情,除非你真的喜欢它,才能享受到编程的快乐。如果你没有这种兴趣,那你可以选择放弃编程了,去追求真正属于你的快乐!这是编程语言的开始篇,闲聊至此,希望后续可以带给你们快乐,带给你们知识。
        本文乃黎社林原创文章,请勿转载。如须转载请详细标明转载出处。

阅读(1271) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:《c语言的编程特性》

给主人留下些什么吧!~~