但现在在电脑领域已发明了上千不同的编程语言,而且每年仍有新的编程语言诞生。
编程语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。对那些从事计算机科学的人来说,懂得程序设计语言是十分重要的,因为在当今所有的计算都需要程序设计语言才能完成。
之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常小,而且有许多语言对新手来说太容易学;还有,不同程序之间的运行成本(runtimecost)各不相同。
有许多用于特殊用途的语言,只在特殊情况下使用。
例如,PHP专门用来显示网页;Perl适合文本处理;C语言被广泛用于操作系统和编译器的开发(所谓的系统编程)。
高级语言的出现使得计算机程序设计语言不再过度地依赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言FORTRAN的一个主要目标,就是实现平台独立。
虽然大多数的语言既可被编译又可被解译,但大多数仅在一种情况下能够良好运行。
在一些编程系统中,程序要经过几个阶段的编译,一般而言,后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL,编译程序先编译一个叫做“0代码”的转换程序(representation),然后再使用虚拟器转换到可以运行于机器上的真实代码。这种成功的技巧之后又用于Pascal和P-code,以及Smalltalk和二进制码,在很多时候,中间过渡的代码往往是解译,而不是编译的。
如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就被称为编译。因此,一个编译器是一个将人可阅读的程序文本(叫做源代码)作为输入的数据,然后输出可执行文件(objectcode)。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。
如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作直译。经直译的程序运行速度往往比编译的程序慢,但往往更具灵活性,因为它们能够与执行环境互相作用。
很多编程语言需要用指令方式说明计算的程序,而有些编程语言则属于宣告式编程(英语:Declarativeprogramming),说明需要的结果,而不说明如何计算。
编程语言的描述一般可以分为语法及语义。
语法是说明编程语言中,哪些符号或文字的组合方式是正确的,语义则是对于编程的解释。
有些语言是用规格文件定义,例如C语言的规格文件也是ISO标准中一部分,2011年后的版本为ISOIEC9899:2017,而其他语言(例如Ada或者Perl)有一份编程语言实现(英语:Programminglanguageimplementation)文件,视为参考实现(英语:referenceimplementation)。
编程语言原本设计是专用于计算机,也用来定义算法或者数据结构。
……
关于编程语言的信息琐碎而繁杂,章杉当然没能掌握所有的编程语言。
没有掌握全部的编程语言,却将章杉涉及编程的这一领域称为【超凡编程天赋领域】~
无疑是因为该天赋领域侧重点并不在编程语言本身。
而是在于——算法!
算法(algorithm),指的是在数学(算学)和计算机科学之中,一个被定义好的、计算机可施行之指示的有限步骤或次序,常用于计算、数据处理(英语:Dataprocessing)和自动推理。
通俗地讲,所谓算法就是一个明确的计算过程,它取一个或者一组值作为输入,并产生一个或者一组值作为输出。
或者,换句话说,算法就是一个给好路线图、界限明确的任务。
计算斐波那契堆的代码就是一个特定算法的实现。
在某种意义上可以说,两个数的相加也是一个算法,不过它很简单罢了。
作为一个有效方法,算法被用于计算函数,它包含了一系列定义清晰的指令,并可于有限的时间及空间内清楚的表述出来。
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和初始输入(可能为空)开始,经过一系列有限[6]而清晰定义的状态最终产生输出并停止于一个终态。
算法是计算机科学领域最重要的基石之一!
章杉深刻地知道算法的重要性,但并不是所有人都能意识到这点。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
喜欢读书成神豪请大家收藏:(m.2yq.org)读书成神豪爱言情更新速度全网最快。