82
540
820
金牌会员
新高致病性H5N1亚型病毒
最初由 xug 发布 [B]C#这样的语言不仅建立在OS之上并且建立在。net框架之上。谁说C#必须在。net框架下运行。[/COLOR] 因该这样说才对,如果C#语言被编译成JL代码,那么他必须在。net环境下才能被。net虚拟机解释执行。如果,被直接编译成EXE文件,可以直接运行。java也是,便已成。java代码只能在java虚拟机下才能运行,编译成exe文件,在windows等系统下直接运行。这就是java可以编写OS的原因。以前,你觉得他们不能编写OS,就是觉得他们必须在虚拟机下运行吧。不是的,java的编译器大概听说过见过的就有4/5种,有的直接支持编译成可执行文件。C#也是,也可以直接生成可执行文件,而不是中间代码。具体生成什么,完全看编译器如何了[/COLOR] 。 [/B]
使用道具 举报
62
864
1296
340
3478
5028
网站编辑
最初由 xug 发布 [B]C#从语法角度看是对C++的简化,作为一种语言,能编译成什么样的最终结果,完全取决于编译器。假如说目前没有把C#编译成真正的winpe程序的编译器,学过编译原理的人都知道,很多搞编程语言开发的公司都可以开发出这种编译器。 就像borland的delphi编译器,目前已经支持将delphi源程序编译成winpe,linux,.net三种形式,这是针对一种语言而言。 富士通公司在8月份推出的 Visual Cobol语言,支持众多平台,unix,linux,windows,FreeBDSD等,可以将同样源代码编译成不同平台下的执行程序。而且,也可以编译成。net下的JL程序。 只要编译器支持生成原生代码,就可以用来开发系统。 其实,楼主的意思是这样的,你认为不可能作出这样的编译器,直接将java/C#编译成原生代码,而不生成相应的字节代码。其实,抛开JAVA/C#的本意,你想一想,他们不就是一种编程语言吗?只不过编译成本机代码后就失去在任何平台下运行的自由性。 如果你深入了解一下.net的运作机理就知道了。所有的.net JL代码,在到达本机运行之前,都要被进一步编译成本机代码,然后才运行,以获得更好的运行效率。这是.net比纯粹解释执行的JAVA环境优越的地方。但是SUN也不是吃干饭的,接下来JAVA也要采取这种机制。 没有那种语言是特殊的,能在家平台下被编译,而在乙平台下不可能。 编译器,也就是一种工具,将源代码翻译成另外一种形式而已,这种形式可以是win32的,也可能是unix的,还可能是macos。 高级语言,也就是一个用来记录开发者思想的形式工具罢了。只有形式上的区别。至于最终生成那种形式的代码,仅仅取决于人们的需要。 人们能开发出C++编译器,生成本机代码,难道从C++简化过来的C#的本机代码编译器反而做不出来,是不可思议的。关键有没有人愿意这样做。而不是一个能不能的问题。 [/B]
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
Archiver|手机版|小黑屋|海浩社区
GMT+8, 2025-9-20 04:07 , Processed in 0.089734 second(s), 19 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.