wnd*_*dsr 8 interpreter scripting-language
我最近问了一个关于从C++切换到C来为速度编写解释器的问题,我得到了一个人的评论,问我为什么要切换到C.
所以我发现我实际上不知道为什么 - 除了C++面向对象的系统有更高的抽象,因此更慢.
如果你想告诉我一些其他语言的解释器不在C中,请用popular scripting languages这个问题替换所有出现的问题Ruby, Python, Perl and PHP.
jal*_*alf 10
Ruby可以追溯到1995年.如果你在1995年写一个翻译,你有什么选择?Java于同年发布.(并且在v1.0中非常缓慢,并且在很多方面,并不值得使用)
C++尚未标准化,编译器对它的支持非常粗略.(它还没有向我们今天使用的"现代C++"过渡.我认为STL也是在这个时候提出标准化的.直到几年之后它才真正被添加到标准中.甚至添加之后,1)编译器需要花费几年时间才能赶上,2)人们习惯了这种通用的编程风格.当时,C++是一种面向对象的语言首先,在许多情况下,C++的这种风格是比C慢得多(在现代C++代码,即性能差异几乎消失,部分是通过更好的编译器,以及部分通过更好的编码风格,减少对OOP结构的依赖,更多地依赖于模板和通用编程
Python始于1991年.Perl甚至更老(1987)
PHP也是从1995年开始的,但另外,重要的是,它是由一个几乎不了解编程的人创建的.(是的,当然这在许多重要方面塑造了语言)
你提到的语言是用C语言开始的,因为C是当时便携式,面向未来的平台的最佳选择.
虽然我没有注意到这一点,但我愿意打赌除了PHP案例之外,其他语言的语言设计者选择C语言,因为他们已经知道了.所以也许教训不是"C是最好的",而是"你已经知道的语言是最好的"
还有其他原因经常选择C:
这些原因并不意味着C实际上是编写口译员(或其他任何东西)的优秀语言,他们只是解释了导致其他人用C 语言写作的一些动机.