Falcon (程式語言)

出自維基百科,自由嘅百科全書
跳去導覽 跳去搵嘢
Falcon
編程範式多範型過程式編程物件導向基於原型函數程式設計表格編程訊息傳遞
設計者Giancarlo Niccolai
編程員Falcon Committee
第一次出現2003年2月3號
穩定版本
0.9.6.8 (Chimera) / 2010年 12月 31號 [1]
類型系統動態檢查
操作系統跨平台
軟件授權GPLv2, FPLLv1.1[2]
副檔名.ftd, .fal
網站falconpl.org
啟發語言
C++PerlLuaSmalltalkPHPLispPythonRuby

Falcon編程語言英文The Falcon Programming Language),又叫做Falcon P.L.Falconpl或者Falcon,係一個開源、多範式嘅編程語言,佢嘅設計同埋推廣由Giancarlo Niccolai領導。

核心[編輯]

同關注喺一個編程風格或者範式(paradigm)唔同,Falcon喺一個簡單嘅框架(framework)入面融合咗幾種唔同嘅風格。喺實現級別上面,Falcon係「服務概念」驅動,當唔作為一個單一嘅工具畀人用嘅時候,腳本引擎畀人當做一個服務腳本,模塊同埋內嵌嘅應用。

Hello Falcon[編輯]

即使有唔同形式嘅基本I/O,一個「hello world (全世界朋友你好!)例子都可以用fast print(快速列印):

> "Hello World!"

用到Unicode,下面係一個國際化例子嘅介紹:

// International class; name and street
 class 國際(なまえ, Straße)
    // set class name and street address
    नाम = なまえ
    شَارِع = Straße
    // Say who am I!
    function 言え!()
      >@"I am $(self.नाम) from ",self.شَارِع
    end
 end
 // all the people of the world!
 民族 = [國際("高田 Friederich", "臺灣"),
    國際("Smith Σωκράτης", "Cantù"),
    國際("Stanisław Lec", "południow")]
 for garçon in 民族:garçon.言え!()

數據類型[編輯]

  • Nil - The nil關鍵字,一個空值。
  • Integer - 一個64位整數值。
  • Numeric - 一個IEEE 64位浮點值。
  • Range - 一組上限,下限同埋步長。
  • MemBuf - Raw內存緩衝,每一個地址係一個無符號嘅1,2,3,或者4字節整數。
  • Function - 函數(可調用實體)。
  • String - 唔定長嘅UNICODE字符序列(但佢哋可以作為字節緩衝被使用)。
  • Array - 唔定長嘅元素序列。
  • Dictionary - 唔定長有序鍵/值對嘅集合;鍵能係任何Falcon元素。
  • Object - 來源喺類嘅實例或者單一嘅非類對象。
  • Class - 可以創建實例嘅類,實體。
  • Method - 實例冇變嘅部分,用函數形式關聯。

特色[編輯]

Falcon完整咁支持模塊化編程,Falcon裝載著特色(Feathers),標準模塊套件。特色依家有嘅模塊包括:

  • 編譯器 - 反射型編譯器同埋動態插件引導器。
  • 配置分析器 - 完成配置文件分析支持。
  • MXML - 非常快速同埋簡潔嘅迷你XML分析器(兼容XML 1.0)。
  • 正則表達式 - PCRE 7.x兼容正則表達式庫接口。
  • 套接字(Socket) - BSD套接字跨平台網絡支持。
  • ZLib - 簡潔嘅壓縮程式接口。

實現[編輯]

核心VM同埋官方模塊,(包括特色模塊同埋社區提供支持嘅模塊)都係用C++寫嘅,一啲好底層嘅模塊同引擎元素係用C語言同集匯程式寫。

可用資源[編輯]

Mac OS X同埋MS-Windows系統上面Falcon透過安裝程式發布,令到構建同埋安裝變成一個清晰嘅過程,或者喺唔同嘅開源系統例如Linux或者OpenSolaris上面透過自己整源代碼包。

喺後者嘅系統上,Falcon編程語言通常支持各種發行版本仲會保持更新嘅,其中有:

喺基於Solaris系統嘅發行版本上面透過Blastwave項目同埋OpenSolaris系統嘅AuroraUX發行版本Falcon編程語言係可用嘅。

參考[編輯]

出面網頁[編輯]