Ski*_*ick 37 type-systems programming-languages static-typing dynamic-typing
在我对动态和静态类型的阅读中,我不断反对编译静态类型语言的假设,同时解释动态类型语言.我知道一般来说这是真的,但我对异常感兴趣.
我真的希望有人不仅可以提供这些例外的一些例子,而是试图解释为什么决定这些语言应该以这种方式工作.
Nor*_*sey 36
这是一些有趣系统的列表.它并非详尽无遗!
Gambit Scheme编译器,Chez Scheme,Will Clinger的Larceny Scheme编译器,Bigloo Scheme编译器,以及许多其他编译器.
为什么?
很多人都非常喜欢Scheme.作为数据的程序,良好的宏观系统,35年的发展,大社区.但他们想要表现.因此,许多优秀的本机代码编译器 - Chez Scheme甚至是一个成功的商业产品(解释的字节码是免费的;您支付的本机代码).
用于Lua的LuaJIT即时编译器.
为什么?
表明它可以做到.然后,人们开始喜欢在他们的Lua程序上获得3倍的加速.Lua参与很多游戏,性能很重要,而且它也在逐渐渗透到其他产品中.Adobe Lightroom中70%的代码是Lua.
该iconc 图标 -to-C编译器.
为什么?
使用它的五十个人都喜欢 Icon.完全不同寻常的评估模型,最具创新性(在我看来,最好的)字符串处理系统.但是这种评估模型非常昂贵,特别是在20世纪80年代后期的计算机上.通过将Icon编译为C,Icon Project使大型Icon程序可以在更短的时间内运行.
结论:人们首先开发一种动态类型语言的附件,可能是一个重要的代码库.最终,社区吐出一个本机代码编译器,以便您可以获得更好的性能并解决更大的问题.
这个类别不常见,但......
目标Caml.ML的方言,是语言设计中许多创新实验的载体.
为什么?
非常便携的系统和非常快的编译时间.人们喜欢这两种属性,因此新的语言设计思想被广泛传播.
莫斯科ML.标准ML具有模块系统的一些额外功能.
为什么?
便携,快速的编译时间,易于进行交互式读/评估/打印循环.成为一个流行的教学编译器.
C-TERP.我认为可能来自Gimpel Software的旧产品.Sabre C-a产品我认为你不能再买了.
为什么?
调试.特别是,在MS-DOS下调试20世纪80年代的硬件.对于非常少的资源,你可以在非常有限的硬件上调试C代码得到很好的帮助(想想:4.77MHz处理器带有8位总线,640K的RAM满载).几乎不可能为本机编译的代码获得良好的可视化调试器,但使用解释器,相当容易.
UCSD Pascal-使"P代码"成为家喻户晓的系统.
为什么?
教师喜欢Niklaus Wirth的语言设计,编译器可以运行在非常小的机器上.Wirth的清洁设计和UCSD P系统是无与伦比的组合,Pascal是20世纪70年代的标准教学语言.年轻人可能会发现很难理解在20世纪70年代,在第一门课程中没有关于教什么语言的辩论.今天我知道使用C,C++,Haskell,Java,ML和Scheme的程序.在20世纪70年代,它总是帕斯卡尔,而加州大学圣地亚哥分校的P系统是一个很重要的原因.
如果你想知道,P代表便携式.
简介:解释静态类型语言是快速实现每个人的一种很好的方法.(它也有利于青铜时代硬件的调试.)