Can you summarize the following document?
        
  Lua的目標是成為一個很容易嵌入其它語言中使用的語言。  很多應用程式使用Lua作為自己的嵌入式指令碼語言,以此來實現可配置性、可擴充套件性。

  Lua是一種輕量語言,它的官方版本只包括一個精簡的核心和最基本的庫。這使得Lua體積小、啟動速度快。它用ANSI C語言編寫並以原始碼形式開放,編譯後僅僅一百餘K,可以很方便的嵌入別的程式裡。和許多“大而全”的語言不一樣,網路通訊、圖形介面等都沒有預設提供。但是Lua可以很容易地被擴充套件:由宿主語言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來就內建的功能一樣。事實上,現在已經有很多成熟的擴充套件模組可供選用。  Lua是一種多重程式設計正規化的程式設計語言:它只提供了很小的一個特性集合來滿足不同程式設計正規化的需要,而不是為某種特定的程式設計正規化提供繁雜的特性支援。例如,Lua並不提供繼承這個特性,但是你可以用元表來模擬它。諸如名字空間、類這些概念都沒有在語言基本特性中實現,但是我們可以用表結構(Lua唯一提供的複雜資料結構)輕易模擬。Lua可以在執行時隨時構造出一個函式,並把它看作一個物件(正是所謂的first class function),這個特性可以很好的滿足函數語言程式設計的需要。正是提供了這些基本的元特性,我們可以任意的對語言進行自需的改造。  Lua原生支援的資料型別非常之少,它只提供了數字(預設是雙精度浮點數,可配置)、布林量、字串、表、子程式、協程(coroutine)以及使用者自定義資料這幾種。但是其處理表和字串的效率非常之高,加上元表的支援,開發者可以高效的模擬出需要的複雜資料型別(比如集合、陣列等)。  Lua是一個動態弱型別語言,支援增量式垃圾收集策略。有內建的,與作業系統無關的協作式多執行緒(coroutine)支援。  Lua可以用於嵌入式硬體,不僅可以嵌入其他程式語言,而且可以嵌入微處理器中,例如NodeMCU開源硬體專案將Lua嵌入到Wi-Fi SoC中。

  執行後,會在螢幕上顯示“Hello, world!”。  一個比較複雜一點的例子,展示了什麼是函式,以及Lua對閉包的支援: create_a_counter()會返回一個匿名函式(在Lua中,函式和其他資料一樣,是可以指定給變數來儲存的)。這個匿名函式會把count加1後再回傳。在匿名函式中的變數count既不是全域變數也不是區域變數,而是一種稱為external local variable(外部區域性變數,又稱upvalue)的變數。這個變數的值會一直被儲存在匿名函式中。因此呼叫create_a_counter()時產生一個記數器函式,每次呼叫記數器函式,都會得到一個比上次大1的值。

  Lua是一種動態型別語言,因此語言中沒有型別的定義,不需要宣告變數型別,每個變數自己儲存了型別。  有8種基本型別:nil、布林值(boolean)、數字型(number)、字串型(string)、使用者自定義型別(userdata)、函式(function)、執行緒(thread)和表(table)。
Lua()是一個簡潔、輕量、可擴充套件的指令碼語言。Lua在葡萄牙語中的意思是月亮。