fbpx
维基百科

newLISP

newLISP是作为Lisp方言的脚本语言。它由Lutz Mueller设计和开发[4]。newLISP是在GNU通用公共许可证版本3及以后版本下发行的自由及开放源代码软件

newLISP
编程范型多范型
语言家族Lisp
設計者Lutz Mueller
實作者Lutz Mueller
发行时间1991年,​32年前​(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语言,然而只使用最现代的系统资源比如数据存储(例如磁盘空间)和内存[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 . [2018-11-20]. (原始内容存档于2022-04-17). 
  3. ^ . [2022-05-08]. (原始内容存档于2020-10-21). 
  4. ^ Walling, Rob. . Softwarebyrob.com. [2018-11-20]. (原始内容存档于2017-06-20). 
  5. ^ . Rosetta Code. [2018-11-20]. (原始内容存档于2022-04-30). 
  6. ^ Lazar, Alexandru. . OSNews. 5 January 2009 [2018-11-20]. (原始内容存档于2018-12-11). 
  7. ^ Slepak, Greg; Hildmann, Marc. . AppTruck. [2018-11-20]. (原始内容存档于2016-03-03). 
  8. ^ Reimer, Jeremy. The newLISP on Rockets 2.0 Blog. Rocket Man. [2018-11-20]. 

外部链接 编辑

  • 官方网站
  • GitHub上的newlisp頁面

newlisp, 是作为lisp方言的脚本语言, 它由lutz, mueller设计和开发, 是在gnu通用公共许可证版本3及以后版本下发行的自由及开放源代码软件, 编程范型多范型语言家族lisp設計者lutz, mueller實作者lutz, mueller发行时间1991年, 32年前, 1991, 当前版本10, 2019年5月12日, 穩定版本, 作用域动态系统平台ia, 64操作系统跨平台, unix, 类unix, windows許可證gplv3, 網站www, newlisp, org啟發語言c, c. newLISP是作为Lisp方言的脚本语言 它由Lutz Mueller设计和开发 4 newLISP是在GNU通用公共许可证版本3及以后版本下发行的自由及开放源代码软件 newLISP编程范型多范型语言家族Lisp設計者Lutz Mueller實作者Lutz Mueller发行时间1991年 32年前 1991 当前版本10 7 5 2019年5月12日 穩定版本 1 作用域动态系统平台IA 32 x86 64操作系统跨平台 Unix 类Unix Windows許可證GPLv3 網站www wbr newlisp wbr org啟發語言C Common Lisp Perl Scheme 目录 1 哲学 2 语言特征 2 1 上下文 2 2 作用域 2 3 内存管理 2 4 GUI选项 2 5 独立二进制执行 2 6 交互于共享库 3 框架 4 引用 5 外部链接哲学 编辑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官方网站 GitHub上的newlisp頁面 取自 https zh wikipedia org w index php title NewLISP amp oldid 75214534, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。