这当然有重大影响。这就是什么东西定义了一门语言的问题了。
一般来说我们说这是xxx语言,包含了2方面的内容:语法和语义。
对于java来说,语法就是这门语言的规则,语义则是jvm以及核心基础库等一系列运行环境为起点,一直扩展到整个第三方生态。
如果割裂开来,光说语法是没意义的。比如说“孟母三迁”,只懂语法你看到的是“姓孟的母亲搬了3次家”,只有知道这背后的背景故事才能理解真正的含义。所以语法和语义割裂的结果,对于代码来说,就是这段代码只能通过编译器的文法分析,仅此而已。产生一个可执行的文件是需要链接系统库的,这一整个runtime环境才构成一门语言。
任何语言,脱离了具体实现只看语法都是极其简单的东西,lexer+parser就没了。而且只看语法,这门语言是高度不稳定的,没有一个广泛接受的确定形态。比如tcc是解释执行c的,jython让python可以跑在jvm上,你非说这也是xxx语言就很不合适。两者的关系本质上跟JavaScript和java的关系一样。前者借用了语法,后者借用了名字而已。
【 在 clyu1981 的大作中提到: 】
: 底层是怎么干的,也不影响它采用java语言开发的。
--
FROM 180.111.48.*