2014-06-14 49 views
2

我正在使用puppet。 puppet是一種聲明性語言,我需要對我的代碼進行建模。如何建模聲明性語言

我的問題是聲明式編程語言的建模語言是什麼?

換句話說:我們使用uml來建模命令式語言,但uml不適用於聲明式編程語言。

+0

爲什麼你認爲UML不適合聲明性編程語言?請注意,UML類圖和UML狀態機可以被視爲聲明性的可視化編程語言。 –

回答

1

Puppet DSL自己模擬系統狀態。我沒有看到元建模的需要,但你可以試着將你的清單轉換成圖形表示。

,就需要在你的圖

  1. 定義類型
  2. 資源

,其中後兩種的有相當類似的三種類型的節點。

有兩種基本類型的關係(邊緣)

  1. include
    • 總是針對一個類
    • 起源於一類或定義類型
  2. declare一個資源(即,在清單中,資源出現在定義的主體中)
    • 針對資源或在一個類中定義的類型
    • 始發或定義類型

虛擬資源只是對資源/定義的類型的變化,並且可以作爲多個realize邊緣目標(除了declare邊緣之外,還來自類別或定義)。

我可能會遺漏一些其他細節,但對於簡單清單,這些應該就足夠了。

+0

非常感謝。這是我在幾天內得到的最好的理論答案。 – user3738655

+1

@ user3738655您可以使用免費的[yWorks yED](http://www.yworks.com/en/products_yed_about.html)試驗各種形式的「繪圖」。支持從基於xml的數據格式導入,因此您可以自動生成繪圖。您可以使用自己的信息註釋形狀。我成功地使用了這個工具來可視化各種「聲明性」或「僅運行時」的依賴關係。包括自動佈局算法 – xmojmr