Ima*_*ist 3 programming-languages
如你所知,如果你已经阅读了我的其他一些问题,我正在编写一种编程语言.我最关心的一个问题是许多语言都存在向后兼容性问题,我希望避免这些问题.一方面,我在Python社区中看到了很多关于切换到Python 3000的痛苦和痛苦,因为它打破了向后兼容性.另一方面,我见过C++,它从束缚到C语法开始,从未真正恢复过; 即C的语法不适合许多C++结构.
我的解决方案是允许程序员向文件添加编译器指令,该指令将告诉编译器在编译时使用哪种语言版本.但我的问题是,其他语言如何处理这个问题?是否有其他解决方案已经尝试过,这些解决方案有多成功?
当某些事情被打破时,勇敢的语言设计者不能害怕打破向后兼容性.我知道有两个好方法:
在格拉斯哥Haskell编译通常不赞成不需要的功能,然后删除两个版本后的支持.
该Lua的团队有各主要版本(有自1993年以来5)政策可能会破坏向后兼容性,但他们通常提供一个兼容层,可以帮助用户迁移到最新版本.(另外他们一丝不苟地保持一切可用;当前版本是5.1,但我仍然保留了Lua 2.5代码,如果我发现Lua 2.5中的错误,他们会修复它.)
容易:弃用
当新的方法或功能可用时,它们不会简单地消除旧的方法或功能.他们只是弃用了它们.因此,致力于新编译器的开发人员知道,在某些时候他们将需要使用这些函数的新版本,或者将来他们的程序将无法编译.以这种方式,它们是"向后兼容的",但同时强制使用新功能.
| 归档时间: |
|
| 查看次数: |
1199 次 |
| 最近记录: |