我在一家专营金融的精品店工作。
我们考虑设计一种语言来描述与金融市场相关的金融实体。
这将主要用作某种脚本语言,以取代在电子表格和VBA宏中运行的许多进程。
它必须简单,事实上,它必须在幕后调用各种C++和C#库。它必须让用户抽象地处理对象,这些对象可以表示时间序列(一天内和每天)。
它必须是完全可调试的,当用户遇到问题时,我们必须能够单步执行C++/C#代码并重现错误。理想情况下,它必须能够通过Excel中的某种机制启动,并在Excel中返回结果。(不幸的是,几乎每个从事金融工作的人都在使用Excel)
如果你必须完成这项任务,你会怎么做?
你会选择函数式语法吗?
你会开发某种可以解释的脚本语言,还是会用另一种语言编译它(比如在C++或C#中转换脚本)?
我没有找到任何用于这种开发的开源项目,但是有没有使用这种语法的商业产品?
编辑:我已经阅读了你所有的答案,但我会等待更多的时间来选择答案。不过,它们都是非常有用的观点!
EDIT2:我将高性能标记标记为解决方案。你的所有回复都非常有用,我已经对它们进行了修改。他是最早的答案之一,他的回答对我们来说非常有洞察力。
发布于 2009-12-12 01:11:29
我会用Python语言包装C++库。
我将定义一个流畅的类包,实际上,它是我的领域特定语言。
基于这两个基础,我将直接使用Python语言。我不会发明我自己的新语法。这个世界不需要另一个语法;我们有足够的语法和语法来解析,足够持续到时间的尽头。
有函数式的功能。如果您仔细设计Python类,就可以实现一种干净的函数风格。
理想情况下,它必须能够通过Excel中的某种机制启动并在Excel中返回结果。
由于Python解释器可以嵌入到C++ (或C#)应用程序中,因此您可以轻松地创建Excel API。从Excel到您的新语言,尽可能少使用C++ API来启动Python功能。
顺便说一句,你的竞争对手是Resolver One。这就是他们所做的。
发布于 2009-12-12 06:43:36
另一种利用c#的观点。
由于您已经有了一个强大的通用函数式编程工具,您的用户已经熟悉并接受了Excel的形式,因此我希望围绕它构建一个解决方案。您仍然可以选择使用其他第三方附加组件和集成选项(例如R和Mathematica)
我将研究用于用户定义函数的托管自动化插件。这些项目本质上是使用本文link text中描述的System.Runtime.InteropServices的c#库项目。对于用户来说,这些功能是使用函数向导以正常的方式在单元级别添加的,并且或多或少可以是您想要的。这就是你的DSL。用户可以选择将功能轻松地集成到现有模型中。这也将是快速原型的东西来测试这一点的可行性。这些都是完全可调试的。
此外,使用Visual Studio Tools for Office,您可以访问完整的excel对象层次结构,甚至可以添加操作窗格,这些窗格可以通过拖放控件进行布局,以满足更复杂的数据输入要求。我相信,如果您需要添加特殊的可视化效果,甚至可以以这种方式在Excel中使用WPF。如果您需要将数据持久化到Sql Server,您可以使用此方法构建一个周转验证表单。
我听起来像个M$ shill!(只是澄清一下,我不为他们工作)。
你需要评估它的性能,我不确定它将如何扩展。
发布于 2009-12-15 08:12:25
Haskell的Simon Peyton-Jones撰写了一篇论文'Composing contracts: an adventure in financial engineering',讨论了函数式语言如何用于编写金融衍生工具合约的可执行描述。这种方法在F#中应该是可行的。
我相信LexiFi的产品旨在将一些研究商业化。
https://stackoverflow.com/questions/1889457
复制相似问题