سؤال

أنا أعمل في بوتيك متخصص في التمويل.

فكرنا في تصميم لغة لوصف الكيانات المالية المتعلقة بالأسواق المالية.

سيتم استخدام هذا بشكل أساسي كنوع من لغة البرمجة النصية لاستبدال العديد من العملية تشغيل في جداول البيانات وحدات ماكرو VBA.

يجب أن تكون بسيطة ولديها، في الواقع، للاتصال بمكتبات مختلفة C ++ و C # وراء الكواليس. يتعين عليه السماح للمستخدمين بمتعامل مع كائنات مجردة يمكن أن تمثل السلسلة الزمنية (اليومية واليومية).

يجب أن يكون من المعرفة بالكامل، عندما يكون لدى المستخدم مشكلة، يجب أن نكون قادرين على الخطوة في رمز C ++ / C # وإعادة إنتاج الأخطاء. من الناحية المثالية يجب أن تتمكن من إطلاقها عبر بعض الآلية داخل Excel وإرجاع النتائج داخل Excel. (لسوء الحظ تقريبا كل شخص يعمل في التمويل يستخدم Excel)

إذا كان عليك القيام بهذه المهمة، كيف ستذهب حول هذا الموضوع؟

هل تذهب للحصول على بناء جملة وظيفي؟

هل تتطور بعض لغة البرمجة النصية التي سيتم تفسيرها أو تجميعها بلغة أخرى (مثل تحويل النصوص في C ++ أو C #)؟

لم أجد أي مشروع مفتوح المصدر لهذا النوع من التطوير، ولكن هل هناك أي منتج تجاري باستخدام هذا النوع من بناء الجملة؟

تحرير: قرأت كل إجاباتك ولكني سأنتظر المزيد من الوقت قبل اختيار إجابة. انهم جميعا آراء مفيدة جدا على الرغم من!

EDIT2: قمت بتمييز علامة عالية الأداء كحل. جميع ردودك مفيدة للغاية ولدت جميعها. كان واحدا من الإجابات الأولى ورديه أمرا بارزا تماما بالنسبة لنا.

هل كانت مفيدة؟

المحلول

أقترح أنك تركز على تطوير مجموعة غنية من الطبقات في لغتك OO المفضلة لديك (إما C # أو C ++، على الرغم من أنني أظن أنك قد تجد أنها أسهل في دمج السابق مع Excel). من شأنه أن يمنحك اللغة لوصف الكيانات المالية المتعلقة بالأسواق المالية. وبعد عندما تكون قد قمت بذلك، يجب أن تفكر في الاستمرار في التفاف هذه الفئات في بعض اللغات الخاصة بالمجال، أو ببساطة عرضها على مجتمع المستخدم الخاص بك.

أظن أن مجالك لديه بعض التعقيد غير القابل للضرب وأن DSL الوسيط يجب أن يكون (تقريبا) معقدة مثل مجموعة الفصول الخاصة بك، وبالتالي، لديك القليل من الحصول عليها عن طريق إنشاء ذلك.

سيكون نهج آخر لإدماج Excel مع Mathematica الذي ينتج Wolfram مجموعة أدوات من نوع ما. ليس لدي أي خبرة في هذا، لكن الرياضيات مناسبة بالتأكيد لأي من الحسابات التي يجب عليك القيام بها.

يعتبر

نصائح أخرى

وأود أن التفاف مكتبات C ++ في بيثون.

أود تحديد حزمة من الطبقات الطوفية التي - في الواقع - كانت لغتي الخاصة بالمجال.

أود استخدام لغة الثعبان مباشرة على تلك المؤسستين. لن أخترع بناء الجملة الجديد الخاص بي. العالم لا يحتاج إلى بناء جملة آخر؛ لدينا بناء الجملة والناسون بما يكفي لتحليل، بما يكفي لتستمر حتى نهاية الوقت.

هل تذهب للحصول على بناء جملة وظيفي؟ بيثون لديه قدرات وظيفية. إذا كنت حريصا على تصميم فئة Python الخاص بك، فيمكنك تحقيق نمط وظيفي نظيف.

من الناحية المثالية يجب أن تتمكن من إطلاقها عبر بعض الآلية داخل Excel وإرجاع النتائج داخل Excel.

نظرا لأن مترجم Python يمكن تضمينه في تطبيق C ++ (أو C #)، يمكنك بسهولة إنشاء API Excel API. من Excel إلى لغتك الجديدة، قم بأقل قدر ممكن في API C ++ لبدء وظائف Python.

راجع للشغل، منافسيك حل واحد. وبعد هذا هو ما يفعلونه.

حلا (http://www.resolversystems.com/products/resolver-one/) هو مزيج من Excel و Python. هل فكرت في استخدام ذلك؟

أود أن أوصي باستخدام رديئة.

وجهة نظر أخرى التي يرفع c #.

كما لديك بالفعل أداة برمجة عامة قوية للأغراض الوظيفية، يكون المستخدمون على دراية بهم واشتروا في شكل Excel، سأبدو لبناء حل حول ذلك. لا تزال تحصل على الخيار على أن طريقة القدرة على استخدام إضافات الطرف الثالث الأخرى والخيارات المتكاملة (مثل R و Mathematica)

أود أن أنظر إلى التشغيل الأتمتة المدارة الوظائف الإضافية للوظائف المعرفة من المستخدمين. وبعد هذه هي في الأساس C # مشاريع مكتبة تستخدم SYSTEM.RONTIME.Interopservices كما هو موضح في هذه المقالة رابط النص. وبعد إلى المستخدمين، تتم إضافة هذه الوظائف على مستوى الخلية بطريقة طبيعية باستخدام معالج الوظيفة ويمكن أن تكون أكثر أو أقل ما تريد أن يكون عليه. هذا ثم DSL الخاص بك. يمكن للمستخدمين اختيار إدماج الوظيفة في نماذجهم الحالية بسهولة. سيكون أيضا سريعا في النموذج الأولي لشيء ما لاختبار جدوى هذا. هذه ناضجة تماما.

بالإضافة إلى ذلك باستخدام أدوات Visual Studio للمكتب، يمكنك الوصول إلى التسلسل الهرمي للكائن Excel الكامل وحتى إضافة أجزاء الإجراءات التي يمكن وضعها من خلال سحب وتحسين الضوابط لإسقاط متطلبات إدخال البيانات أكثر تعقيدا. أعتقد أنه من الممكن استخدام WPF مع Excel بهذه الطريقة إذا كنت بحاجة إلى إضافة تصورات متخصصة. إذا كنت بحاجة إلى إصدار بيانات مستمرة ليقول SQL Server، فيمكنك إنشاء نموذج التحقق من الصحة عند استخدام هذا النهج.

أنا تبدو وكأنها شيل م $! (فقط لتعيين السجل مباشرة أنا لا أعمل من أجلهم).

ستحتاج إلى تقييم أداء هذا وأنا لست متأكدا من كيفية قياسها.

سايمون بيتون جونز من شهرة Haskell ساهمت في ورقة "تأليف العقود: مغامرة في الهندسة المالية" والتي ناقشت كيف قدمت اللغات الوظيفية نفسها لإتاحة الأوصاف القابلة للتنفيذ لعقود المشتقات المالية. يجب أن تكون هذه الطريقة ممكنة مع F #.

أعتقد أن عروض lexifi. تهدف إلى تسويق بعض هذا البحث.

يستخدم Jane Street Capital Ocaml، وكتب تجاربهم هنا. وبعد إنها مثيرة للاهتمام إذا قرأت واسعة.

لبيئتك، إذا اتبعت طرازها، فيمكنك استخدامها F#, ، والتي بدأت الحياة كهجة OCAML، ولكن أي من الدورة يدير في World .NET.

إذا كانت مكتبة الأساسيات تستخدم Java، يجب إلقاء نظرة على القيام DSL في Groovy. هناك عدد من البودكاست والمقالة حول هذا الموضوع، حاول googling "DSL Groovy".

اكتسبت معظم المؤسسات المالية الطائرات (أو الانقسامات عليها) بالفعل تراخيص ماتلاب. أوصي أن نلقي نظرة على المنشآت الموجهة للكائنات التي تقدمها MATLAB (وبالفعل، في صندوق الأدوات المالية).

مقدما وأعتقد أنك تكسب ثلاثة أشياء:

1) الوصول إلى بيئة رفيعة المستوى حيث يمكن للمستخدمين التركيز على المشكلة وليس على التنفيذ 2) توفر الرسومات عالية الجودة 3) التكامل السلس مع Excel وحزم الإنتاجية الأخرى

أعلم أنك تعني تطوير لغة (على عكس تطبيق) ولكن النظر في دعم الدعم الأصبع لغتك إلى لغة معرفة جيدا - وبهذه الطريقة التي تتجنب منحنى التعلم للمستخدمين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top