动态语言和虚拟机实现, 暨介绍一下我设计的一个新型的动态语言(1)
2008-01-08 15:23
459 查看
学习scheme的过程里面, 对动态语言大有感悟, 发现一种比较新颖的方式来实现动态语言
现在有不少动态语言了, 比较看重的数python, 和ruby. 关于ruby, 我也有过一点点接触, 第一感觉十分不愉快. ruby有很多的perl的痕迹. (补充一点, perl多年来没有更新, 说难听点, 有点夕阳无限好的感觉)
所以, 我最看好的当属python.
python作为一个成熟的动态语言, 发展得十分威猛. 有多个实现, 官方的有CPython, 由老大控制着Python这个语言的根基. 其他的有几位英雄, 像Jython, IronPython, 等等, 提供了Python和JDK和.NET平台的无缝连接. 端的是异常威猛.
动态语言+开发平台, 使得Python直接进入企业级开发的领域.
后面这两种, 都是Python语法+ 虚拟机技术来实现的. 从本质上而言, 和CPython无甚区别. 但是, 事实上, 这一平台的分离, 使得语言的互通性变得十分简单. 都是在虚拟机上跑的, 反正大家都是说的同一种语言, 互通共有, 成了一件自然而然, 水到渠成的事情.
不知道有多少人做过Python的扩展, 用C/C++给Python写扩展模块. 这种方式是非常好的, 用C来写模块, 完成需要高性能的功能的实现, Python作为胶水语言, 把各个模块集成到一起. 在生产效率和运行效率之间得到一个平衡, 既得到了良好的性能, 又把程序员从牛刀杀鸡的情景中得以解放.
比如写UI, 大家以前或者现在都是用C++来完成的. 其实挺郁闷的, GUI里面并不需要搞这么麻烦. 用Python来完成最合适了, 字符串处理, 内存资管理, 等等, 会减少很大的工作量.
(未完待续)
不过, 写模块扩展本身并没有这么简单, 还是需要一点知识的. 有一些工具帮助大家, swig 或者boost的python模块. 情况会好很多, 但并没有好多少.
这个时候, 虚拟机上的python的优势就凸显出来了. ironpython可以无缝的访问.net平台, 你什么都不用做, 就能直接使用.net里面的winform写一套界面出来. 就是说, 写扩展模块的壁垒一下子减轻了大部分, 虽然不是全部. 难道不令人激动吗??
现在有不少动态语言了, 比较看重的数python, 和ruby. 关于ruby, 我也有过一点点接触, 第一感觉十分不愉快. ruby有很多的perl的痕迹. (补充一点, perl多年来没有更新, 说难听点, 有点夕阳无限好的感觉)
所以, 我最看好的当属python.
python作为一个成熟的动态语言, 发展得十分威猛. 有多个实现, 官方的有CPython, 由老大控制着Python这个语言的根基. 其他的有几位英雄, 像Jython, IronPython, 等等, 提供了Python和JDK和.NET平台的无缝连接. 端的是异常威猛.
动态语言+开发平台, 使得Python直接进入企业级开发的领域.
后面这两种, 都是Python语法+ 虚拟机技术来实现的. 从本质上而言, 和CPython无甚区别. 但是, 事实上, 这一平台的分离, 使得语言的互通性变得十分简单. 都是在虚拟机上跑的, 反正大家都是说的同一种语言, 互通共有, 成了一件自然而然, 水到渠成的事情.
不知道有多少人做过Python的扩展, 用C/C++给Python写扩展模块. 这种方式是非常好的, 用C来写模块, 完成需要高性能的功能的实现, Python作为胶水语言, 把各个模块集成到一起. 在生产效率和运行效率之间得到一个平衡, 既得到了良好的性能, 又把程序员从牛刀杀鸡的情景中得以解放.
比如写UI, 大家以前或者现在都是用C++来完成的. 其实挺郁闷的, GUI里面并不需要搞这么麻烦. 用Python来完成最合适了, 字符串处理, 内存资管理, 等等, 会减少很大的工作量.
(未完待续)
不过, 写模块扩展本身并没有这么简单, 还是需要一点知识的. 有一些工具帮助大家, swig 或者boost的python模块. 情况会好很多, 但并没有好多少.
这个时候, 虚拟机上的python的优势就凸显出来了. ironpython可以无缝的访问.net平台, 你什么都不用做, 就能直接使用.net里面的winform写一套界面出来. 就是说, 写扩展模块的壁垒一下子减轻了大部分, 虽然不是全部. 难道不令人激动吗??
相关文章推荐
- 动态语言和虚拟机实现, 暨介绍一下我设计的一个新型的动态语言(2)
- 动态语言和虚拟机实现, 暨介绍一下我设计的一个新型的动态语言(3)
- 关注各种高级语言虚拟机(high-level language virtual machine,HLL VM)的设计与实现,泛化至各种高级语言的运行时的设计与实现,也会涉及动态编译、GC、动态语言的编
- 设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能
- 用JavaScript脚本语言设计并实现一个函数,将三位数重新排列输出最大值
- Java语言 设计一个动物声音“模拟器”(用接口实现)
- 【脚本语言】一个简易的语言的设计与实现
- 一个基于约束传播的,玩具级微型计算语言的设计和简单实现
- 由动态类型语言想到IDE应该考虑实现的一个功能
- 大一 PROJECT REPORT#1 设计一个基于C的简单语言,并为其写编译器,汇编器,虚拟机
- oc是一个全动态语言,oc的一切都是基于runtime实现的!
- 一个脚本设计语言的设计与实现
- 实现一个SLR(1)的动态语言解释器
- 群上出的一个算法题,上我的解,大家可以用自己会的语言实现一下哦,我用的php
- 用 Lua 实现一个微型虚拟机-基本篇
- Xilinx ISE14.1用Verilog语言实现一个半加器并测试
- 设计并实现一个LRU Cache
- C#第1次试验(4)设计一个程序,输入10个数存入数组中,然后实现冒泡排序
- DAO设计模式---实现一个简单的注册(中)
- CGLib动态代理原理及实现的一个小例子