BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

把脚本重新带回进VB

| 作者 Jonathan Allen 关注 608 他的粉丝 ,译者 朱永光 关注 0 他的粉丝 发布于 2008年2月28日. 估计阅读时间: 2 分钟 | ArchSummit北京2018 共同探讨机器学习、信息安全、微服务治理的关键点

历史上,Visual Basic有着脚本和动态编程的基础,但是并没有被完全支持。例如,它能够通过迟绑定(即所谓的duck typing)来使用对象,但却没有能力确定他们——这样的语言特性被普遍认为是和脚本编程是不相配的。在Lang.NET的一个演示中,Paul Vick谈到如何把脚本重新带回进VB

他的第一个演示展示了一个使用完整Visual Basci引擎实现的提供了REPL接口的Excel原型。REPL,即“读取-求值-打印-循环(Read-Evaluate-Print-Loop)”,是诸如Ruby、Python和Lisp这样的动态语言的一个标准特性。脚本窗口是基于动态语言运行时(Dynamic Language Runtime)的,所以它也可以支持IronPython和JScript。

Paul首先讨论了VB编译器的3个分层。在实现类似解析和代码生成这样传统编译器特性的核心(Core)服务的最上层,是项目(Project)服务。它处理了项目级的详细信息,比如引用和资源。它也包括一个反编译器,在Visual Studio IDE中被用来协助后台编译器实现增量改变。最外层的是工具/IDE服务,它包括了所有Visual Studio所需的特性,如代码完成与纠错。

VB编译器的核心服务的完整版本是由非托管(unmanaged)C++代码编写的。为了支持运行时编译和迟绑定,由Visual Basic编写的核心服务的部分版本也是存在的。

未来版本的VB可能会包含适合运行时使用的完整版本的核心服务。或许,它甚至会包含工具/IDE服务层,以允许开发人员创建一个类似VBA的东西出来。

另外一个演示讨论了VisualBasic.Editor和VisualBasic.Compiler命名空间。该演示展示了如何在一个WinForms应用程序中托管一个VB编辑器。这一编辑器还比较粗糙,但是它已经能够支持类似语法着色这样的事情了。在这个演示中,Paul示范了重写编辑器的行为来马上执行右键选中的高亮代码。

这些特性并没有一个时间线或计划。当有更多的信息时,会发表到Paul Vic的博客上。

查看英文原文:Bringing Scripting back to VB

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT