2009-12-08 52 views
1

我必須在我們的產品中實現一些腳本功能。腳本將典型地用於簡單的事情,如:對易於使用,可能是圖形化的腳本語言的啓示

IF param1 > 5 + param3 AND current time > 18.00: 
    SET param2 TO 3 
ELSE 
    SET param2 TO 4 

另一種非常常見的任務是讓參數變化在一天,優選使用具有設定點一些線圖,其可圍繞被移動目視等

現在,我需要啓發如何實現這一點。我們客戶使用的非常過時的工具只不過是一種圖形化的基本方言:您不必以純文本輸入腳本,但可以拖動符號,如「IF」,「THEN」,「ELSE」,「Parameter」 ,「當前時間」等等,並且你必須知道和理解語法和語義。我認爲我們可以做得更好。

我一直在四處尋找圖形語言,但我還沒有找到一個令人信服的系統。

例如,有個樂高機器人的語言,這是非常簡單的,但它是非常針對自動化,並且不處理數學和邏輯很不錯。有一些labview,這對於典型的用戶來說似乎有些複雜。用於PLC的梯形圖編程,但我的經驗是,他們也很自動化,不能很好地處理數學。雅虎管道和一些軟件合成器有相互連接的方法,但是當需要數學時,它們也很麻煩,控制順序也不是很自然。然後有非常簡單的嚮導式替代方案,例如Outlook和Evolution中的過濾器,但我認爲它們不夠靈活。

那麼,什麼圖形化語言有你在那種-的喜歡和絆倒? (我知道幾乎沒有程序員,包括我自己,享受這些類型的語言,但他們在這裏服務於一個目的,我認爲)。

+0

我很困惑 - 你是專門問一個可以嵌入到你的產品或腳本語言中的圖形化語言嗎? – 2009-12-14 17:21:44

+0

我在設計自定義(圖形)語言時尋找靈感。如果有任何可以嵌入和使用的東西,我會全力以赴,但計劃是自己實現語言和用戶界面。 – Jonatan 2009-12-15 14:50:33

回答

1

您是否在尋找表達式樹的一種圖形化的語言,或命令式語言的?

以下是我過去使用的幾種圖形語言。不幸的是,它們不是通用或獨立的產品,所以它們只能作爲一種靈感:

Unreal Kismet:一種基於節點的圖形化腳本遊戲腳本環境。基於事件生成器和操作。每個節點都可以接收輸入事件並生成輸出事件。非常適合於遊戲需要對遊戲中的某些事件作出反應的簡單腳本(當玩家進入觸發器等時鎖定門)。實現複雜的邏輯(比如for循環,數組等)非常繁瑣且容易出錯,而且這樣的構造通常通過構建專門的Kismet節點使用UnrealScript來實現。基於事件的流程。

Native-instruments Reaktor:模塊化合成器環境。有點類似Kismet,但用於生成和處理音頻和MIDI事件。同樣,創建複雜的邏輯也很乏味。

着色器/合成/動畫樹編輯器:許多遊戲引擎和3D軟件都包含這些。基本上是一個表達式樹,其中您有具有輸入和輸出的運算符節點。

AI behavior trees:超過表達式樹,類似於有限狀態機。