NewLISP

newLISP
编程范型多范型
语言家族Lisp
設計者Lutz Mueller
實作者Lutz Mueller
发行时间1991年,​33年前​(1991
当前版本
  • 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运行的操作系统包括:BSDLinuxmacOSSolarisWindows[2]。它支持MYSQLSQLiteODBC数据访问,通用网关接口(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-serverOpenGL和基于Tcl/Tk的编程接口。

独立二进制执行

任何newLISP版本都允许建造可执行文件,和自包含而不需要安装就可部署的可移植应用

交互于共享库

newLISP拥有导入函数,允许用它从Windows API Win32上的动态链接库(DLL),或者Linux或Unix上的共享库中导入函数。

框架

newLISP能获得的Web应用框架包括Dragonfly[7]和Rockets[8]

引用

  1. ^ http://www.newlisp.org/downloads/newLISP-10.7.5-Release.html.
  2. ^ 2.0 2.1 newLISP. [2018-11-20]. (原始内容存档于2022-04-17). 
  3. ^ work in progress. [2022-05-08]. (原始内容存档于2020-10-21). 
  4. ^ Walling, Rob. An Interview with Lutz Mueller, Creator of newLISP. Softwarebyrob.com. [2018-11-20]. (原始内容存档于2017-06-20). 
  5. ^ Category:newLISP. Rosetta Code. [2018-11-20]. (原始内容存档于2022-04-30). 
  6. ^ Lazar, Alexandru. A look at newLISP. OSNews. 5 January 2009 [2018-11-20]. (原始内容存档于2018-12-11). 
  7. ^ Slepak, Greg; Hildmann, Marc. Dragonfly web framework. AppTruck. [2018-11-20]. (原始内容存档于2016-03-03). 
  8. ^ Reimer, Jeremy. The newLISP on Rockets 2.0 Blog. Rocket Man. [2018-11-20]. 

外部链接

維基教科書中的相關電子教程:en:Introduction to newLISP
  • 官方网站
  • GitHub上的newlisp頁面
特征
 
对象系统
  • Common Lisp对象系统(CLOS)
  • CommonLoops英语CommonLoops
  • Flavors英语Flavors (programming language)
实现英语Programming language implementation
Common
Lisp
  • Allegro Common Lisp英语Allegro Common Lisp
  • Armed Bear Common Lisp英语Armed Bear Common Lisp(ABCL)
  • CLISP
  • Clozure CL
  • CMU Common Lisp(CMUCL)
  • Corman Common Lisp英语Corman Common Lisp
  • Embeddable Common Lisp(ECL)
  • GNU Common Lisp(GCL)
  • LispWorks英语LispWorks
  • Macintosh Common Lisp英语Macintosh Common Lisp
  • Mocl英语Mocl
  • Poplog英语Poplog
  • Steel Bank Common Lisp(SBCL)
  • Symbolics Common Lisp英语Genera (operating system)
  • 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
教育
图书
教程
  • ProgramByDesign英语ProgramByDesign
组织
商业
  • 苹果公司
  • BBN
  • Harlequin英语Harlequin (software company)
  • Lucid Inc.英语Lucid Inc.
  • Symbolics英语Symbolics
  • Xanalys英语Xanalys
教育
人士
 
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

范型
过程式
面向对象
多范型
函数式
逻辑式
脚本语言
动态语言
Shell语言
ECMA-262
特定平台
.NET
JVM
特定领域
科学计算
GPU计算
  • Cg/HLSL
  • GLSL
  • Brook英语BrookGPU
  • OpenCL
  • CUDA/PTX英语Parallel Thread Execution
  • Futhark
  • SPIR-V英语Standard Portable Intermediate Representation
数据查询
可视化
传媒设计
 
其它
  • 分类 目录
  • 列表级条目 列表
  • 历史
  • 比较英语Comparison of programming languages
  • 时间线英语Timeline of programming languages