百科问答小站 logo
百科问答小站 font logo



编程语言有类型推断的话,我们就直接写 Ruby 直接编译到二进制了吗? 第1页

  

user avatar   be5invis 网友的相关建议: 
      

现在这堆动态语言都有 eval,从理论上断绝了编译成不带解释器的二进制代码的可能

而如果没有 eval 这样的东西,那么「脚本语言」是可以编译成机器代码的。最原始的办法就是做这样的翻译:

       # py def func():     if random.random()<0.5:         return 0     else:         return "a string"      

       // C // 感谢评论告诉我 python 中「值」这个 tagged union 的名字… pyObject func(){     if(lt(invoke_method(random, "random"), val_number(0.5))) {         return val_number(0);     } else {         return val_string("a string");     } }     

当然,后者没做任何优化……


user avatar   Yangff 网友的相关建议: 
      

任何语言都可以被编译到native,和是不是静态类型没有一毛钱关系。

静态类型只是在一些时候可以提升执行效率的一个做法,仅此而已。

Ruby一行代码的信息量超小的。你写代码的人什么都不说,到执行的时候就知道了,解释器也很为难啊。




  

相关话题

  为什么大多数解释器都将AST转化成字节码再用虚拟机执行,而不是直接解释AST? 
  在C#中 String.Empty和 "" 有什么区别? 
  如何看待中科院计算所发布的“木兰”国产编程语言其实基于Python3,并非完成“自主研发”? 
  既然国外的 IT 巨头有能力推出自研发的语言,为什么国内的巨头们没有这种热情呢? 
  ORM 框架能自动防止SQL注入攻击吗? 
  相比较 C++ 程序以 main 函数为入口,其他语言如 Java、AS3 等,程序的入口是怎样的? 
  如果要给编程语言加上一种可用于计量运算的基本数字类型,你觉得该怎么设计这种计量类型,以及修改语言本身? 
  为什么一说到 C#,很多人都说跟微软绑太紧,说到 Objective-C,就没人说跟苹果绑太紧呢? 
  为什么不能断点编译,或者说几乎没见过断点编译? 
  现阶段的编程语言都有什么缺陷? 

前一个讨论
为什么现在的手机把正面的两边涂黑了就叫无边框手机了?他们是真的认为这样能蒙人还是无边框本来就是这样?
下一个讨论
如果从一开始人类的精子中X染色体和Y染色体的比例就是2比1,会发展出一夫多妻制吗?这样的世界是怎样的?





© 2025-05-10 - tinynew.org. All Rights Reserved.
© 2025-05-10 - tinynew.org. 保留所有权利