Hy语言
Hy是Lisp编程语言的一种方言。它设计用于同Python语言进行交互,方式是把表达式翻译成Python的抽象语法树(AST)[2][3]。Paul Tagliamonte在2013年于Python会议(PyCon)介绍了Hy[4]。
多范型: 过程式, 函数式, 面向对象, 元编程, 反射式, 泛型 | |
语言家族 | Lisp |
設計者 | Paul Tagliamonte |
實作者 | 核心团队 |
2013年 | |
当前版本 |
|
作用域 | 词法 |
實作語言 | Python |
系统平台 | IA-32, x86-64 |
操作系统 | 跨平台 |
許可證 | MIT式 |
文件扩展名 | .hy |
網站 | hylang |
啟發語言 | |
Kawa, Clojure, Common Lisp |
类似于Kawa和Clojure将s-表达式映射到Java虚拟机(JVM)之上[5],Hy必定作为Python抽象语法树的透明Lisp前端来运行[6]。Lisp允许像数据那样在代码上进行操作(元编程)。因此,Hy可以用来书写领域特定语言[7]。Hy还允许导入Python库包括标准库,并与Hy代码一起被访问,方式是通过一个编译步骤[note 1],将二者的数据结构翻译成Python的AST[note 2][8][9][10]。
例子代码
来自语言文档的例子[11]:
=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!
参见
注释
- “编译”这个术语可以应用于将Hy代码表达为Python的AST或将这个AST转换成字节码,后者依赖于所使用的特定Python解释器而非Hy。
- Hy在Python 2.7、3.4到3.6和PyPy上测试过。
引用
- . 2024年1月5日 [2024年1月19日].
- Jaworski, Michał; Ziadé, Tarek. Third. Birmingham, U.K.: Packt Publishing. 2019: 173. ISBN 978-1-78980-677-9. OCLC 1125343555.
- Danjou, Julien. . San Francisco, CA: No Starch Press. 2018: 145–149. ISBN 9781593278793. OCLC 1057729260.
- Tagliamonte, Paul. (演讲). Python Conference (PyCon). Santa Clara. 2 April 2013 [2 September 2014]. (原始内容存档于2020-10-19).
- Turto, Tuukka. . Open Source For You. 14 February 2014 [2 September 2014]. (原始内容存档于2020-08-03).
- Edge, Jake. . LWN.net. 30 April 2014 [2 September 2014]. (原始内容存档于2020-10-12).
- Tagliamonte, Paul. (演讲). PyCon. Montreal. 11 April 2014 [2 September 2014]. (原始内容存档于2020-10-20).
- . hylang.org. [3 September 2014]. (原始内容存档于2020-11-25).
- Danjou, Julien. . . 26 March 2014: 165–172.
- Kitchin, John. . The Kitchin Research Group. Carnegie Mellon University. 31 March 2016 [19 September 2018]. (原始内容存档于2020-02-17).
- . Hylang.org. 15 May 2018 [19 September 2018]. (原始内容存档于2019-08-14).
- . [2020-10-09]. (原始内容存档于2020-09-20).
- . [2020-10-10]. (原始内容存档于2018-07-09).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.