写点什么

把脚本重新带回进 VB

  • 2008-02-27
  • 本文字数:794 字

    阅读完需:约 3 分钟

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

2008-02-27 19:49795
用户头像

发布了 254 篇内容, 共 54.5 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

随机而转 当机而动|靠谱点评

无量靠谱

如何缓解低代码开发的安全风险

YonBuilder低代码开发平台

小程序云开发 开发者 低代码 APP开发 APICloud

Zip和7-zip谁更强,如何选择?

麦洛

ZIP格式 ZIP zip4j

Open Source Load Testing Tool Review 2020

OutOfMemory1024

Load Testing Open Source

低代码真能做到“让人人都能做开发者”吗?

优秀

低代码

基于mysqldump聊一聊MySQL的备份和恢复

麦洛

MySQL MySQL 运维 数据备份

轻松搞定XML和对象之间的互转,就它了!

麦洛

xml XStream

不惧业务规模与复杂性,实现敏捷的云转型“三步走”就对了 | 云途专栏

亚马逊云科技 (Amazon Web Services)

专访阿里巴巴研究员吴翰清 | 安全的持续运营之道

架构精进之路

4月日更 调查采访能力考核 人物访谈

Linux nslookup 命令

一个大红包

Linux linux命令 4月日更

话题讨论|To B & To G,互联网公司的下一主战场

程序员架构进阶

话题讨论 28天写作 4月日更 To B业务 领域思考

Redis - 跳表以及其内部结构

insight

redis 4月日更

警惕数据泄露!快给你的数据加上安全密钥!

亚马逊云科技 (Amazon Web Services)

数字化转型:打破孤岛以提高数据安全性

龙归科技

数字化

专访前美篇首席架构师张超|从工程师到CTO的蜕变

Aldeo

程序员 采访 调查采访能力考核

TO B产品从0到1:从项目中走出来

菜根老谭

产品孵化

如何批评下属?

石云升

团队建设 28天写作 职场经验 管理经验 4月日更

手机淘宝轻店业务 Serverless 研发模式升级实践

Serverless Devs

阿里云 Serverless 云原生 淘宝

独家对话阿里云函数计算负责人不瞋:你所不知道的 Serverless

阿里巴巴云原生

Serverless 容器 微服务 开发者 云原生

JVM 读书笔记(一) 内存划分

U2647

JVM 4月日更

微服务架构核心基础讲解

麦洛

微服务

采访彩食鲜 CTO乔新亮:程序员如何持续的登上新台阶

风翱

4月日更 采访提纲

Go Channel

escray

学习 极客时间 Go 语言 4月日更

百度南渡,护航泉州水务的产业智能化征程

脑极体

如何打造更为精准的个性化推荐?Amazon Personalize 有独门技术秘籍!

亚马逊云科技 (Amazon Web Services)

Ubuntu 20.04 启用休眠(Hibernate)配置过程

OutOfMemory1024

Ubuntu20.04

乘“云”加速疾病诊断研发,亚马逊云科技新阶段“诊断开发计划”已开启!

亚马逊云科技 (Amazon Web Services)

云洲链硬核支撑!济南标识解析二级节点解析量全国第一

浪潮云

云计算

架构师实战营 模块一总结

代廉洁

架构实战营

Guide to UUID in Java

OutOfMemory1024

Java

Linux OOM Killer

OutOfMemory1024

Linux

把脚本重新带回进VB_.NET_Jonathan Allen_InfoQ精选文章