关于编程语言是否拥有自我完善功能的思考

据说perl6在2015年圣诞节已经发布,perl6具体做了哪些改动暂时还没去了解,但在此之前很多专业IT人士对perl6的发布并不抱有太大的期望,重要原因是因为perl6是用perl语言本身写的。关于语言本身是否拥有自我完善功能的问题让我有些思考。

在目前接触最多的语言中,java可以完善和扩充自己的第三方库,但不能用java语言本身去修改java虚拟机(简称JVM)的机制,因为java虚拟机涉及到的内存寻址管理、内存回收管理、IO管道管理在java语言本身是没有的,也就是说语言本身要做的事情交给了java虚拟机。java虚拟机是一个java语言开发应用的平台,屏蔽了底层操作系统的差异,那么java虚拟机的实现在不同的操作系统上是不一样的,为了保证性能要求,都会选择采用与操作系统实现语言一致的语言编写,比如win系统的JVM会用vc、vc++、vb编写;linux系统的JVM会采用gcc编写;等等。所以java语言并不具有自我完善的功能,但可以无限的扩充第三方库。

再来看看名称上与java相似的javascript。没错,这两种语言仅仅是名称上相似,却是完全不相关的语言。javascript(简称JS)是浏览器的脚本语言,只能使用浏览器内置的javascript解析引擎解释执行;而java可以理解成是JVM的脚本语言,只能在JVM上解释执行。javascript如果有自我完善的功能,那么它必须能够实现或修改浏览器的JS解析引擎。浏览器的JS解析器需要做网络数据交互、图像渲染、本地数据存储等等,很显然,JS是做不到的!

C语言是一种强大的语言,基本上在任何操作系统的实现上都有它,win系统、linux系统等主流操作系统使用C编写的代码量都在50%以上。那么C能不能实现自我完善功能呢?答案是可以的,它可以用自身去修改词法结构、语法结构、数据结构等。但有一些情况它是做不到的,比如硬件厂商新增加了CUP控制指令,那么需要使用到该指令的操作系统就不能用C实现和完善自身了。有一种方式那就是通过机器语言或者硬件厂商自带的汇编增加C编译器模块,然后在新的C编译器基础上,操作系统用对应的新C语言调整和完善新指令功能。

可以说perl比C更强大,perl程序员或多或或少会嘲笑C程序员。perl在win系统上比C逊色多了,毕竟perl最早是根据linux的几种脚本语言整合优化的。perl改写自身完全是可能的,当然perl6作者不会愚蠢到100%用perl完善和改写自身,因为是那样的话就像是一个更年期的女人即使做了最好的保养也掩盖不了身体老去的事实。不管怎样,我还是很看好perl6,它可是曾经辉煌的黑客语言,希望perl6能得到大公司的支持。

关于语言的自我完善功能,最后做一个不是特别恰当的比方:整个PC机就像一个集团公司,各种语言就像在集团公司的各子公司,每个子公司有各自的管理体现和业务平台,语言能不能自我完善就像子公司的管理体系和业务平台是不是子子公司自己说了算,事实是有些可以自己说了算,有些必须请示上级公司或集团总部。到底哪些可以自己说了算,哪些必须向上请示完全由子公司拥有的权力决定的,子公司在创建的时候就决定了它的权力范围。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值