InfoQ

新闻

把脚本重新带回进VB

作者 Jonathan Allen译者 朱永光 发布于 2008年2月27日 下午7时49分

社区
.NET
主题
编程,
脚本
标签
Visual Basic.NET,
DLR

历史上,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

没有回复

回复

深度内容

Flex与JSON及XML的互操作

平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。

用Qi4j进行面向组合编程

本文将简要介绍面向组合编程(COP,Composite Oriented Programming)的概念,展示它如何规避OOP存在的一些问题,并重新点燃使用可重用部件组装领域模型(Domain Model)的希望。

系统开发——新学科,新教育

一门新的计算机学科——“系统开发”,强调人性化、匠艺、设计、创意、创新和新事物的涌现,并建议用被称为“bottega”的工作室替代乏善可陈的教室。

图书聚焦:Visual Studio 2008 揭秘

Mike Snell和Lars Powers用他们最近由Sams出版的新书《Visual Studio 2008揭秘》,试图帮助大家提高开发人员的生产力。本文包括一个下载样章——第10章调试。

BPEL为何不是BPM的圣杯?

Pierre Vigneras在本文中讨论了作为标准之一的BPEL所存在的问题。Pierre先给我们大致介绍了一个简单的并行流程,接着讨论了从业者在试图以一个结构化模型为基础表达非结构化流程时遇到的一系列问题。

基于范型的多语言编程

你是否仔细思考过,为什么人们总在讨论“要正确的语言做恰当的事情”?在这篇文章中,Sadek Drobi向你解释了为什么应该在系统内部混合使用多种语言。

采访与书摘《Pro Web 2.0 Application Development with GWT》

Jeff Dwyer就关于他的新书(《Pro Web 2.0 Application Development with GWT》)、GWT1.5以及创建可搜索的Ajax应用谈了一些他的见解。

时刻准备着,迎接IT业的春天

我们需要设身处地地为客户及客户的业务本身着想,与客户同舟共济。更多创新的思路、产品和模式也同样将为IT业带来新的出路。IT业并不需要坐以待毙,在春天到来之后,市场将会更加繁荣!