面向对象编程第一次作业

**

解释型语言与编译型语言

常见的编译型语言语言有C/C++、Pascal/Object 等,常见的解释性语言有python、JavaScript等。

共同点:

都要弄成二进制代码才能执行,两类编程语言的源代码都是英文,但是我们的计算机并不认识英文,所以都要转化成二进制才能执行。

区别:

从效果上来比
编译型语言要全部写完之后,然后通过某个编译器,去生成一个类似*.exe的二进制文件,然后手工双击这个文件才看的到效果;解释型语言则没生成你看的到的那种.exe文件,而是直接发出效果。那么区别之一就是:是否显性的生成二进制文件供你去双击.
2.
运行的时候是否需要编译器
编译型语言运行的是最终的二进制代码了,所以不在需要编译器在身边守护。但解释型语言则不然,它是边解释、边运行,所以运行的时候很可能还有部分代码没有解释好,所以需要编译器守护(解释型语言把该工具叫:解释器)。那么编译器在哪里?就在浏览器里,所以你要看html效果,必须是用浏览器这种工具,或者有编译工具在内的其他工具,如:模拟浏览器的工具。
3.
执行速度对比
编译型语言由于运行的已经是完全的二进制内容了,所以运行起来很干净利落,自然速度快。但解释型语言,运行的不一定是完全的二进制内容,因为它是边解释(成二进制),边运行。所以当它执行看出效果的时候,程序后半部分还不一定解释成二进制呢。所以它是“三心二意”的做事,速度没有前者快,但是CPU的运行速度如果很快,你可能看不出来,偶尔会看到“有点卡”的效果。原因就是:它边解释、边运行,你看到效果了,可能还有一少半的代码没解释成二进制呢,所以你看到的效果会是残缺的,这就是为什么查看网页的时候,很容易就看到这样的情况:先是出现一堆没有布局的文字,然后才出现那种布局好的效果。
4.
可移植性对比
编译型语言是运行二进制内容,所以:一旦CPU指令系统改变,之前的二进制文件可能运行不了。比如:如果到其他硬件平台上运行,就可能出现错误,就需要根据该平台重新编译出新的二进制文件。所以:可移植性差;而解释型语言则不然。它并没有实现弄成什么二进制内容,而是在需要的时候才开始编译、运行。所以:它自然具有可移植性,即:在任何平台都可以马上运行起来。注意:它的解释工具如:浏览器,本身就是编译型语言解释出来的二进制代码,所以浏览器本身不具有移植性,是需要针对不同的平台弄出对应的浏览器最终二进制文件的。这里千万不要混淆了。
作者:宁哥
链接:https://zhuanlan.zhihu.com/p/26302914
来源:知乎

**

## 动态型语言与静态型语言

定义一个变量、函数或方法传参时,C需要明确指定该变量或参数的类型的,Python是不需要的,数据类型取决于所给的值。
在C中,一但确定了变量或参数的类型,那么所占用的内存空间也就确定了,并且内存里面存储的是数据本身,而非数据的地址(指针变量除外)。

在Python中,定义一个变量或参数时,其实只是给它分配一个引用(或者叫指针),里面存储的是所引用对象(即真实数据)的地址。
动态类型其实指的是对象没有固定的类型,就像JS,一个对象就是对象,你给他一个成员 a 赋值,它就有了个a的成员,再给它个b成员,就有了b。反过来看静态语言,像Java,一个对象是从属于某个固定的类的,它有哪个成员是固定的,而且是在编译期间就确定了的,而不会在运行时还能添加成员。

作者:Butters
链接:https://www.zhihu.com/question/372053153/answer/1148428920
来源:知乎

## 强类型与弱类型

强类型语言是一种强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就死该数据类型。而弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过现行强制转换。

其中,强类型语言包括:Java、.net、Python、C++等语言。其中Python是动态语言,是强类型定义语言,是类型安全的语言,Java是静态语言,是强类型定义语言,也是;类型安全的语言;
弱类型语言包括:VB,PHP,JavaScript等语言。其中VBScript是动态语言,是一种类型不安全的原因。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值