【问题标题】:New scripting language新的脚本语言
【发布时间】:2010-03-16 14:15:12
【问题描述】:

我正在尝试自己创建一种脚本语言(它不一定是完美的——尽管如果它是完美的),主要是因为我这样做是为了好玩并了解它们是如何实现的创建等。

根据这里的答案:Creating a scripting language 我应该研究的是:http://msdn.microsoft.com/en-us/library/xawadt95%28VS.85%29.aspx。但是,我完全不知道那个 MSDN 页面是关于什么的。

有人可以帮忙吗?

附: 是否有任何针对 Windows 脚本宿主的免费/开源脚本语言,它们也有完整的源代码可供我使用?

谢谢

【问题讨论】:

    标签: c# wsh scripting-language


    【解决方案1】:

    如果您这样做是为了好玩并了解语言是如何创建的,我建议您远离 Windows Script Host。 而是尝试从更好的示例中学习。一个好的第一步是让自己继续使用http://www.lua.org/,学习这门语言,了解它是如何实现的,然后自己动手。从语言的角度来看,另一种可怕但很容易实现的语言是Tcl。从 Ousterhout 的原始 Usenix 论文开始。

    我希望我能推荐一本关于设计和实现自己的编程语言的好书。我从来没有见过一个。 (我看过一些类似这样的坏书,但不想不尊重作者,我不会指认他们。)但是如果你能在一个好的大学图书馆度过一段美好的时光,你将能够找到一些有趣的东西文件。您可能还会发现值得查看我们的弗里德曼和万德的书Essentials of Programming Languages——虽然它非常技术性,但它确实有一些关于编写解释器的好东西。 P.J. Brown 还有一本很好(但很老)的书,叫做Writing Interactive Compilers and Interpreters

    【讨论】:

    • Windows 脚本宿主不是一种语言,它是一个脚本宿主。它支持的标准脚本引擎是 VBScript 和 JScript,但也有第 3 方 Perl 引擎。令我困惑的是,为什么 Windows Script Host 在这里以某种方式成为问题。通常,您创建一个脚本引擎,该引擎有一个 API,允许它嵌入到任何程序中。该 MSDN 链接指向 Windows 脚本引擎必须支持的 API 的讨论。
    • @Bob:确实。只是如果 OP 在遵循 MSDN 链接时遇到问题,那么 j-t-s 可能最好在开始使用 API 之前构建独立的东西并获得一些经验。我自己在阅读 API 文档时遇到了一些麻烦,而且我不是初学者……
    【解决方案2】:

    制作简单脚本中断器的最简单方法是通过换行符将源代码拆分为一个数组并循环遍历每个成员。这是一个例子 字符串来源 = @" 打印你好世界! 停止 "); foreach(string a in source.split('\n')) { 如果(a.StartsWith(“打印”)) { Console.WriteLine(a.Substring(6)); } 如果(a ==“停止”) { Console.ReadLine(); }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-22
      • 2010-12-03
      • 2013-06-19
      • 2013-06-26
      • 2011-03-12
      • 2011-01-27
      • 2011-09-22
      • 1970-01-01
      相关资源
      最近更新 更多