- 10.7.5 (2019年5月12日;穩定版本)[1]
作用域 | 动态 |
---|
系统平台 | IA-32, x86-64 |
---|
操作系统 | 跨平台: Unix, 类Unix, Windows |
---|
許可證 | GPLv3+ |
---|
網站 | www.newlisp.org |
---|
啟發語言 |
---|
C, Common Lisp, Perl, Scheme |
newLISP是作为Lisp方言的脚本语言。它由Lutz Mueller设计和开发[4]。newLISP是在GNU通用公共许可证版本3及以后版本下发行的自由及开放源代码软件。
哲学
newLISP尝试提供快速、强力、跨平台、全特征的脚本语言版本的Lisp语言,然而只使用最现代的系统资源比如数据存储(例如磁盘空间)和内存[5][6]。
它提供的Lisp特征包括:列表、符号处理、函数映射、匿名函数(lambda表达式)、S-表达式(排除不适当列表)和宏。它还提供现代脚本语言预期的功能包括:支持正则表达式、XML、Unicode(UTF-8)、通过传输控制协议(TCP)、互联网协议(IP)和用户数据报协议(UDP)联网、矩阵和数组处理,高级数学、统计和贝叶斯统计分析、数理金融和分布式计算。
newLISP运行的操作系统包括:BSD、Linux、macOS、Solaris和Windows[2]。它支持MYSQL、SQLite和ODBC数据访问,通用网关接口(CGI)、简单邮件传输协议(SMTP)、邮局协议(POP)3、文件传输协议(FTP)和XML远程过程调用(XML-RPC)。它能以服务器模式运行为守护进程。
语言特征
上下文
newLISP支持叫做“上下文”的命名空间,它们可以被赋值给变量并传递给函数,但是它们关联着全局唯一的符号,限制了它们作为头等对象的使用。在newLISP中基于原型面向对象风格的编程是可行的,可使用上下文作为原型来构造对象。在上下文内的变量不会干扰在其他上下文内同名的变量,但是在上下文内部,变量的行为遵守动态作用域规则。
作用域
newLISP使用动态作用域。当一个函数被调用的时候,这个函数可以见到它的调用者的所有变量,上至在相同的上下文或命名空间内的调用者的调用者,以此类推。它支持显式的和隐式的定义局部动态变量,遮蔽(英语:Variable shadowing)外部环境的同名变量,从而防止意外使用或变更来自调用者环境的变量。被调用函数的形式参数变量自动的遮蔽调用者的调用环境。在全局上,变量可以组织在独立的空间内。
内存管理
newLISP使用了不同于传统垃圾回收方案的一种自动内存管理方法,称为仅有一处引用(one reference only:ORO)。每个变量只被它的上下文引用,而每个上下文都是全局引用的。
在newLISP中不支持在对象间的子对象共享、环状结构、或多个变量指向相同的对象。在存储于数据结构,或传递给除了特定内建函数之外的函数的时候,对象会被复制。例外的是符号和上下文,它们是共享的而不会被复制,因而可以用于间接寻址。符号和上下文是全局性命名和显式删除的;删除一个符号或上下文,会扫描所有对象来将到它的引用替代为nil
。
GUI选项
newLISP图形用户界面(GUI)服务器(newLISP-GS),是提供图形编程接口的一个基于Java的互联网协议族(TCP/IP)服务器。在newLISP二进制发行中,能获得到基于newLISP-GS的开发环境,并能获得GTK-server(英语:GTK-server)、OpenGL和基于Tcl/Tk的编程接口。
独立二进制执行
任何newLISP版本都允许建造可执行文件,和自包含而不需要安装就可部署的可移植应用。
交互于共享库
newLISP拥有导入函数,允许用它从Windows API Win32上的动态链接库(DLL),或者Linux或Unix上的共享库中导入函数。
框架
newLISP能获得的Web应用框架包括Dragonfly[7]和Rockets[8]。
引用
- ^ http://www.newlisp.org/downloads/newLISP-10.7.5-Release.html.
- ^ 2.0 2.1 newLISP. [2018-11-20]. (原始内容存档于2022-04-17).
- ^ work in progress. [2022-05-08]. (原始内容存档于2020-10-21).
- ^ Walling, Rob. An Interview with Lutz Mueller, Creator of newLISP. Softwarebyrob.com. [2018-11-20]. (原始内容存档于2017-06-20).
- ^ Category:newLISP. Rosetta Code. [2018-11-20]. (原始内容存档于2022-04-30).
- ^ Lazar, Alexandru. A look at newLISP. OSNews. 5 January 2009 [2018-11-20]. (原始内容存档于2018-12-11).
- ^ Slepak, Greg; Hildmann, Marc. Dragonfly web framework. AppTruck. [2018-11-20]. (原始内容存档于2016-03-03).
- ^ Reimer, Jeremy. The newLISP on Rockets 2.0 Blog. Rocket Man. [2018-11-20].
外部链接
維基教科書中的相關電子教程:
en:Introduction to newLISP |
---|
| 特征 | | |
---|
| | - Common Lisp对象系统(CLOS)
- CommonLoops(英语:CommonLoops)
- Flavors(英语:Flavors (programming language))
|
---|
|
---|
| 实现(英语:Programming language implementation) | | Common Lisp | |
---|
| | - Bigloo(英语:Bigloo)
- Chez Scheme
- Chicken
- Gambit
- Gauche(英语:Gauche (Scheme implementation))
- GNU Guile
- Ikarus(英语:Ikarus (Scheme implementation))
- IronScheme(英语:IronScheme)
- JScheme
- Kawa(英语:Kawa (Scheme implementation))
- Larceny
- MIT/GNU Scheme
- Racket
- RScheme(英语:RScheme)
- Scheme 48
- SCM
- SIOD
- STklos(英语:STklos)
- TinyScheme
- Ypsilon(英语:Ypsilon (Scheme implementation))
|
---|
| | - OpenLisp(英语:OpenLisp)
- Easy-ISLisp
|
---|
|
---|
| 未标准化 | | - Arc
- AutoLISP
- BBN LISP
- Clojure
- Dylan
- Emacs Lisp
- EuLisp(英语:EuLisp)
- Franz Lisp
- GOAL(英语:Game Oriented Assembly Lisp)
- Hy
- Interlisp(英语:Interlisp)
- 知识工程环境(英语:Knowledge Engineering Environment)
- LispKit
- *Lisp(英语:*Lisp)
- Le Lisp
- LFE(英语:LFE (programming language))
- Lisp Machine Lisp(英语:Lisp Machine Lisp)
- Maclisp
- MDL(英语:MDL (programming language))
- MLisp(英语:MLisp)
- MultiLisp(英语:MultiLisp)
- newLISP
- NIL(英语:NIL (programming language))
- PC-LISP(英语:PC-LISP)
- PicoLisp
- Portable Standard Lisp(英语:Portable Standard Lisp)
- RPL(英语:RPL (programming language))
- S-1 Lisp(英语:S-1 Lisp)
- SKILL
- Spice Lisp(英语:Spice Lisp)
- T(英语:T (programming language))
- Zetalisp(英语:Zetalisp)
|
---|
| Logo | - MSWLogo(英语:MSWLogo)
- NetLogo
- StarLogo(英语:StarLogo)
- UCBLogo(英语:UCBLogo)
|
---|
|
---|
| | - Common Lisp界面管理器(英语:Common Lisp Interface Manager)
- McCLIM(英语:McCLIM)
- Genera(英语:Genera (operating system))
- Scsh(英语:Scsh)
|
---|
| | - Lisp机器
- TI Explorer(英语:TI Explorer)
- Space-cadet键盘(英语:Space-cadet keyboard)
|
---|
|
---|
| 实践 社群 | 技术标准 | - Scheme实现要求(英语:Scheme Requests for Implementation)
- Common Lisp HyperSpec(英语:Common Lisp HyperSpec)
- X3J13(英语:X3J13)
|
---|
| 教育 | 图书 | - Common Lisp语言(英语:Common Lisp the Language)
- 如何设计程序(HtDP)
- On Lisp(英语:On Lisp)
- Practical Common Lisp(英语:Practical Common Lisp)
- 计算机程序的构造和解释(SICP)
|
---|
| 教程 | - ProgramByDesign(英语:ProgramByDesign)
|
---|
|
---|
| 组织 | 商业 | - 苹果公司
- BBN
- Harlequin(英语:Harlequin (software company))
- Lucid Inc.(英语:Lucid Inc.)
- Symbolics(英语:Symbolics)
- Xanalys(英语:Xanalys)
|
---|
| 教育 | - 麻省理工学院
- 斯坦福人工智能实验室(英语:Stanford University centers and institutes#Stanford Artificial Intelligence Laboratory)
- 加利福尼亚大学伯克利分校
|
---|
|
---|
| 人士 | | |
---|
| Common Lisp | - Scott Fahlman(英语:Scott Fahlman)
- Richard P. Gabriel(英语:Richard P. Gabriel)
- Philip Greenspun(英语:Philip Greenspun)
- David A. Moon(英语:David A. Moon)
- Kent Pitman(英语:Kent Pitman)
- Guy L. Steele Jr.
- Daniel Weinreb(英语:Daniel Weinreb)
|
---|
| | |
---|
| Logo | |
---|
|
---|
|
---|
| - 语言
- 家族
- 列表(英语:List of Lisp-family programming languages)
|
|
|
---|
| 范型 | |
---|
| 脚本语言 | |
---|
| 特定平台 | |
---|
| 特定领域 | |
---|
| | |
---|
| - 目录
- 列表
- 历史
- 比较(英语:Comparison of programming languages)
- 时间线(英语:Timeline of programming languages)
|
|