首页 > 试题广场 > 从运行层面上来看,从四个选项选出不同的一个。
[单选题]
从运行层面上来看,从四个选项选出不同的一个。
  • JAVA
  • Python
  • objectC
  • C#
推荐
答案:B
A,C,D都是类C语言,B不是
Python是解释执行的,其他语言都需要先编译
编辑于 2015-01-10 21:12:50 回复(22)
Python  只有它是动态语言
动态语言的定义:动态编程语言     高级程序设计语言   的一个类别,在计算机科学领域已被广泛应用。它是一类   运行时可以改变其结构的语言   :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。众所周知的   ECMAScript     JavaScript   )便是一个动态语言,除此之外如   PHP     Ruby     Python   等也都属于动态语言,而   C     C++   等语言则不属于动态语言。----来自 维基百科

http://www.tuicool.com/articles/mQfAz2
编辑于 2016-08-17 12:27:29 回复(2)
作者:rainoftime
链接:https://www.zhihu.com/question/19918532/answer/21647195
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

类型系统的一些概念,众说纷纭,使用上也比较乱。有些东西,甚至不好严格定义。以下算学术界的一种相对“严格”的说法。


1. 先定义一些基础概念

Program Errors

  • trapped errors。导致程序终止执行,如除0,Java中数组越界访问
  • untrapped errors。 出错后继续执行,但可能出现任意行为。如C里的缓冲区溢出、Jump到错误地址

Forbidden Behaviours

语言设计时,可以定义一组forbidden behaviors. 它必须包括所有untrapped errors, 但可能包含trapped errors.


Well behaved、ill behaved

  • well behaved: 如果程序执行不可能出现forbidden behaviors, 则为well behaved
  • ill behaved: 否则为ill behaved...

2. 有了上面的概念,再讨论强、弱类型,静态、动态类型

强、弱类型

  • 强类型strongly typed: 如果一种语言的所有程序都是well behaved——即不可能出现forbidden behaviors,则该语言为strongly typed。
  • 弱类型weakly typed: 否则为weakly typed。比如C语言的缓冲区溢出,属于trapped errors,即属于forbidden behaviors..故C是弱类型
前面的人也说了,弱类型语言,类型检查更不严格,如偏向于容忍隐式类型转换。譬如说C语言的int可以变成double。 这样的结果是:容易产生forbidden behaviours,所以是弱类型的

动态、静态类型

  • 静态类型 statically: 如果在编译时拒绝ill behaved程序,则是statically typed;
  • 动态类型dynamiclly: 如果在运行时拒绝ill behaviors, 则是dynamiclly typed。
3. 误区
大家觉得C语言要写int a, int b之类的,Python不用写(可以直接写a, b),所以C是静态,Python是动态。这么理解是不够准确的。譬如Ocaml是静态类型的,但是也可以不用明确地写出来。。
Ocaml是静态隐式类型
静态类型可以分为两种:
  • 如果类型是语言语法的一部分,在是explicitly typed显式类型;
  • 如果类型通过编译时推导,是implicity typed隐式类型, 比如ML和Haskell

4.下面是些例子
无类型: 汇编
弱类型、静态类型 : C/C++
弱类型、动态类型检查: Perl/PHP
强类型、静态类型检查 :Java/C#
强类型、动态类型检查 :Python, Scheme
静态显式类型 :Java/C
静态隐式类型 :Ocaml, Haskell



编辑于 2017-11-02 16:01:12 回复(0)
c 不需要运行时虚拟机
发表于 2015-04-02 23:54:09 回复(2)
A.
JAVA是世界上最好的语言,其他的不是,所以选A。
发表于 2018-06-06 10:24:23 回复(5)
java是解释型语言好不好,只不过解释的不是源码而是字节码,不要乱解释好吗
发表于 2015-09-04 17:26:20 回复(2)
脚本语言( JavaScript Python 等,是弱类型语言)介于 HTML C , C++ ,Java, C# (强类型语言)等编程语言之间:
编辑于 2015-09-11 16:45:59 回复(0)
JAVA、objectC、C#为编译型语言。
python为脚本语言。

发表于 2016-02-06 16:02:42 回复(7)
abd都有虚拟机,我选c
发表于 2016-10-10 15:53:44 回复(1)
真要说运行层面,C才是正确答案。 java是先编译后解析执行的语言 python是直解析语言 c#也是 这三者运行都依赖各自的虚拟机解析执行 只有objectC是类c的语言,不需要虚拟机
发表于 2018-05-06 19:50:08 回复(0)
B,Java,C,C#是静态语言,需要编译;python时动态语言,不需要编译
发表于 2015-11-20 21:29:40 回复(0)
嚼得是Java、C#、C在编译过程中都有中间文件生成,分别是.class,.exe,.exe。Python是直接解释的,一个.py文件解释直接生成结果。
发表于 2015-10-09 15:43:26 回复(0)
选项里面只有python是属于动态语言,动态语言就是:使用的时候再定义变量都可以,但是其他三项是静态语言,使用前,变量都是要先定义、声明的
发表于 2019-02-22 20:00:44 回复(0)
Python,和javascript一样都是解释性语言,不需要经过编译生成obj文件,代码解析顺序从上到下。
Java,C++,C#,Oc等都是编译性语言,代码需要经过编译生成obj、class文件等。
发表于 2018-08-12 18:29:05 回复(0)
Python是在编译前不执行,编译时才执行,属于解释执行的语言,脚本语言
发表于 2017-09-26 16:16:37 回复(0)
不了解什么叫运行层面
发表于 2017-09-19 22:28:41 回复(0)
解释型或者编译型已经不足以划分现代编程语言了 这种题没什么可出的 

可以看看大神的解释 rednaxelafx.iteye.com/blog/492667
发表于 2017-07-10 00:30:10 回复(0)
python是脚本语言
发表于 2017-01-05 21:43:44 回复(0)
最典型的 javascript 使用的变量或对象都不需要 new,包含 python, js在内的弱类型语言都是直接解释执行的,不需要编译。  
发表于 2016-12-05 17:04:06 回复(0)
Python为弱类型语言,其他都为强类型
发表于 2016-10-09 13:11:16 回复(4)
Python解释执行
发表于 2016-06-08 10:13:54 回复(0)