文章目录
前言
说实话在报辅修课之前我也犹豫了良久,一是自身的实力,自己确实没有多少编程基础,只是在上学期学过Python,但也只是浅尝辄止;二是时间精力,担心在辅修上花费的时间过多以至于影响主修课程的成绩;三则是辅修证明的含金量问题,辅修课程结束并不会发放学位证,值不值得花大精力投入其中是我在报名之前被问的最多的问题。
似乎一切都很令人困扰,也似乎一切现实情况都在劝人后退…
然而这又如何呢,生活不就应该是浪漫的吗,自己人生不就应该追随自己的心而走吗,难道被功利的量尺所规矩的才是我们应该拥有的人生吗?
我不想这样。想做,那便去做;想学,那便去学。至于能坚持多久,能收获什么,又会对自己的未来造成什么影响,那便交给时间吧。
好了,题外话说得够多了,正文开始吧。
编译型语言和解释型语言
编译型语言
定义:
程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。
举例:
C/C++、Pascal/Object Pascal(Delphi)、Golang
典型的就是它们可以编译后生成.exe文件,之后无需再次编译,直接运行.exe文件即可。
解释型语言
定义:
程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。在运行程序的时候才翻译,专门有 一个解释器去进行翻译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨平台性好。
举例:
Java、C#、PHP、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等
编译型语言和解释型语言的区别
主要区别在于:
1.程序运行时是否需要翻译(前者否)
2.是否储存源文件(前者否)
动态类型语言与静态类型语言
类型检查所进行的检验处理以及实行类型的约束,可发生在编译时期(静态检查)或运行时期(动态检查)。静态类型检查是在编译器所进行语义分析中进行的。如果一个语言强制实行类型规则就称此处理为强类型(或静态类型),反之称为弱类型(或动态类型)。另外,严格意义上,强类型与静态类型不是一回事,同理,弱类型与动态类型。
动态类型语言
在运行时不需要确定类型的语言。即编译时与类型无关。一般在变量使用之前不需要声明变量类型,而变量的类型通常是由被赋的值的类型决定。 如php、Python和Ruby。
静态类型语言
与动态类型语言正好相反,在编译时,便需要确定类型的语言。即写程序时需要明确声明变量类型。如C/C++、Java、C#等。
动态类型语言和静态类型语言的区别
对于动态类型语言与静态类型语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。
主要区别:类型的检查是在运行时才做还是在运行前的编译阶段进行(前者为动态类型语言)
强类型语言和弱类型语言
强类型语言
强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
强类型定义语言是类型安全的语言。
举例:
弱类型语言
数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。
强类型语言和弱类型语言的区别
主要区别:一个变量是否可以赋不同数据类型的值
参考链接
编译型语言和解释型语言
https://www.jianshu.com/p/c1ce70ccdb74
动态类型语言与静态类型语言
https://www.jb51.net/article/63786.htm
https://blog.csdn.net/hellojoy/article/details/80435738
强类型语言和弱类型语言
https://www.jb51.net/article/63786.htm
大学,天道酬勤,全靠自觉