Pergunta

Eu trabalho para uma boutique especializada em finanças.

Nós pensamos sobre a criação de uma linguagem para descrever entidades financeiras relacionadas com os mercados financeiros.

Isto seria usado principalmente como uma espécie de linguagem de script para substituir muitos processos de execução em planilhas e macros VBA.

Tem que ser simples e tem, de fato, para chamar vários C ++ e # bibliotecas C nos bastidores. Tem que deixar que os usuários lidar com abstratamente objetos que poderiam representar séries temporais (intraday e diário).

Tem que ser totalmente debuggable, quando um usuário terá um problema, que deve ser capaz de passo no código C ++ / C # e reproduzir os bugs. Idealmente ele tem que ser capaz de ser lançado através de algum mecanismo dentro Excel e retornar os resultados dentro de Excel. (Infelizmente quase todas as pessoas que trabalham em Finanças está usando Excel)

Se você tivesse que fazer esta tarefa, como você vai fazer sobre isso?

Você ir para uma sintaxe funcional?

Você desenvolver alguma linguagem de script que seria interpretado ou você compilá-lo em outro idioma (como converter os scripts em C ++ ou C #)?

Eu não encontrou qualquer projeto de código aberto para este tipo de desenvolvimento, mas há qualquer produto comercial usando este tipo de sintaxe?

EDIT: Eu li todas as suas respostas, mas vou esperar mais tempo antes de escolher uma resposta. Eles são todas as opiniões muito úteis embora!

EDIT2: Eu marquei de Alto Desempenho Mark é como solução. Todas as suas respostas são muito úteis e eu modded de todos eles. Ele foi uma das primeiras respostas e sua resposta é bastante perspicaz para nós.

Foi útil?

Solução

Eu sugiro que você se concentrar no desenvolvimento de um rico conjunto de classes em seu idioma preferido OO (ou C # ou C ++, embora eu suspeito que você pode achar mais fácil para integrar o primeiro com Excel). Que lhe daria o seu linguagem para descrever entidades financeiras relacionadas com os mercados financeiros . Quando você tiver feito isso, você deve considerar a possibilidade de continuar a envolver essas classes em algum domínio específico Language, ou simplesmente para expô-los a sua comunidade de usuários.

Eu suspeito que o seu domínio tem alguma complexidade irreducable e que uma DSL intermediário terá que ser (quase) tão complexo como o seu conjunto de classes e que, portanto, você tem pouco a ganhar com a criá-lo.

Outra abordagem seria integrar Excel com o Mathematica para o qual Wolfram produzir uma caixa de ferramentas de algum tipo. Não tenho experiência disso, mas Mathematica é certamente adequado para qualquer dos cálculos que você terá que fazer.

Saudações

Outras dicas

Eu envolveria o C ++ bibliotecas em Python.

Eu definiria um pacote de aulas fluentes que - em vigor -. Foi a minha linguagem específica de domínio

Gostaria de usar a linguagem Python diretamente com base nessas duas fundações. Eu não iria inventar o meu próprio nova sintaxe. O mundo não precisa de outra sintaxe; temos sintaxe e gramáticas suficiente para analisar, o suficiente para durar até o fim dos tempos.

você iria para uma sintaxe funcional? Python tem capacidades funcionais. Se você for cuidadoso com o seu design de classe Python, você pode conseguir um estilo funcional limpo.

O ideal é que tem que ser capaz de ser lançado através de algum mecanismo dentro Excel e retornar os resultados dentro de Excel.

Uma vez que o interpretador Python pode ser incorporado em um aplicativo C ++ (ou C #), você pode facilmente criar Excel API. Do Excel para o seu novo idioma, fazer o mínimo possível na API C ++ para iniciar a funcionalidade Python.

BTW, a concorrência é Resolver Um . Isto é o que eles fazem.

ResolverOne ( http://www.resolversystems.com/products/resolver-one/ ) é uma combinação de Excel e o Python. Você já pensou em usar isso?

Eu recomendaria usar R .

Outro ponto de vista que aproveita c #.

Como você já tem uma ferramenta de programação funcional poderoso propósito geral os usuários estão familiarizados com e ter comprado em na forma de Excel gostaria de olhar para construir uma solução em torno disso. Você ainda tem a opção de que maneira de ser capaz de usar outras opções de 3rd party add-ons e integrados (por exemplo R e Mathematica)

Gostaria de olhar para gerenciados automação Add-ins para User Defined Functions . Estes são essencialmente c # projetos de biblioteca que usam os System.Runtime.InteropServices conforme descrito neste artigo link texto . Para os usuários dessas funções são adicionados em um nível celular da maneira normal usando o assistente de função e pode ser mais ou menos o que você quer que eles sejam. Isso, então, é o seu DSL. Os usuários podem optar por integrar a funcionalidade em seus modelos existentes facilmente. Também seria rápido ao protótipo algo para testar a viabilidade deste. Estes são totalmente debuggable.

Além disso usando o Visual Studio Tools for Office você pode acessar a hierarquia completa de objeto do Excel e até mesmo adicionar painéis de acção que podem ser estabelecidas, arrastando e soltando controles para os requisitos de entrada de dados mais complexos. Eu acredito que é possível até mesmo usar WPF com o Excel, desta forma, se você precisava para adicionar visualizações especializados. Se for necessário para manter dados de volta para dizer Sql Server você poderia construir uma volta em torno do formulário de validação usando esta abordagem.

Eu soar como um M $ figurante! (Só para esclarecer as coisas eu não trabalho para eles).

Você precisa avaliar o desempenho deste e eu não sei como seria escalar.

Simon Peyton-Jones de Haskell fama contribuiu para um papel 'compor contratos: uma aventura em engenharia financeira' que discutiu como linguagens funcionais se prestavam para compor descrições executáveis ??de contratos financeiros derivativos. Este método deve ser possível com F #.

Eu acredito que as ofertas de LexiFi destinada a comercializar algumas dessas pesquisas.

Jane Rua Capital usa OCaml, e escreveu-se as suas experiências aqui . É uma interessante bonita se ampla ler.

Para o seu ambiente, se você seguiu o seu modelo, você poderia usar F # , que começou a vida como um dialeto OCaml, mas que, naturalmente, é executado no mundo da NET.

Se a sua biblioteca subjacente usa Java você deve dar uma olhada em fazer uma DSL em Groovy. Há uma série de podcasts e artigo sobre isso, tente Googling "DSL Groovy".

A maioria das instituições financeiras de trituração de número (ou divisões nele) já adquiriu licenças Matlab. Eu recomendo que você dê uma olhada nas instalações Object Oriented oferecidos pelo Matlab (e, de fato, em sua Financeiro Toolbox ).

Na frente eu acho que você ganhar três coisas:

1) O acesso a um ambiente de alto nível onde os usuários podem se concentrar no problema e não sobre a implementação 2) Disponibilidade de gráficos de alta qualidade 3) A integração perfeita com o Excel e outros pacotes de produtividade

Eu sei que você quer dizer para desenvolver uma linguagem (em oposição a uma aplicação) mas considere piggy-backing sua semântica a uma linguagem bem sabe -. Desta forma a evitar a curva de aprendizado para seus usuários

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top