运行groovy脚本时,会先生成.class文件,但是在cmd中进入groovysh中,可以直接敲代码,感觉又像解释型语言,网上查了下也模棱两可,故在此发问,先谢了。

解决方案 »

  1.   

    什么叫编译型语言,什么叫解释型语言。.java会编译成.class但是.class在虚拟机上运行的时候,是JVM解释器。一句一句进行解释的。
      

  2.   

    上面说的是Java语言。那你说Java算是解释型语言还是编译型语言呢?
      

  3.   

    java 应该是编译型语言,要先编译才能运行,然而groovy可以进入groovysh环境中直接敲命令,这一种方式更像解释性语言的特点。
      

  4.   

    groovy也可以编译成了字节码,也是编译型的
      

  5.   

    上面已经说过了,输入groovysh命令直接敲代码,难道这一过程仍然会生成字节码?
      

  6.   

    我不太赞同。你说需要编译的语言就是编译型语言.那我还说,运行在解释器上的语言就是解释型语言呢。这问题没啥意思。
    估计,你直接敲命令。还是会生成字节码的。因为只要是跑在虚拟机上的程序,他的解释器应该只能解释字节码。除非,他还提供什么别的特殊的机制。这个问题,你还是查查官方文档吧。没接触过groovy语言。
      

  7.   

    谁规定解释型与编译型一定要分开的?可以既是编译型又是解释型么,他们又不冲突,更何况这跟编译器与运行环境有关,就像有些测试工具使用C语言作为测试脚本的,那你说C是解释型还是编译型?,就像java,不过严格归类,java是编译型的。它需要生成二进制代码。
    groove是解释型么,它直接执行源码,不用生成二进制文件么。
      

  8.   


    怎么定义一个语言是解释型还是编译型的呢?编译,先把高级语言通过编译器各种处理产生二进制文件。然后以后每次直接运行就行了。解释,一边翻译一边执行。
    怎么就说java算是编译型呢?jvm解释器,不也是一边解释字节码一边运行的吗?为什么就不算是解释性语言呢?或者编译型+解释型。
      

  9.   

    理解一个预言是编译型的还是解释型的,那首先就要知道编译的概念,也就是说编译和解释的区别。
    如果接触过计算机结构的知识,应该知道计算机系统分为7层,微程序、机器语言、操作系统、低级语言、高级语言、等等,编译就是将高级层转换为低级层的一个操作,编译并不是一定要把语言编译成机器码才叫做编译的,只要是把高级语言翻译成低级语言都叫编译,即使是高级语言翻译成低级语言也是编译。
    这样就很容易区分编译与解释了,编译就是有一个将高级语言编译成低级语言的过程,例如C编译成机器语言,JAVA编译成字节码,都是编译。而解释型语言没有这个过程,他们直接被某程序调用并运行,如sql、javascript。当然很多人会说他们是运行的时候编译的,但是那不能称之为编译的,那只能称之为解释运行。
      

  10.   

    楼上说的不错。但是字节码也是需要被JVM解释器解释成机器语言然后执行的。也就是说,字节码也经历了解释的过程。那为什么不说java是解释型语言。
      

  11.   

    就算你要咬文嚼字的话,说回来还是java是编译语言,因为解释的是字节码,不是java,所以只能说java字节码是解释型语言,而不是java语言。