Alan Kay 推荐计算机专业的学生学习 Lisp
Smalltalk之父,Java思想的先驱.
Alan Kay于1970年加入Xerox公司的Palo Alto研究中心。
早在70年代初期,Alan Kay等人开发了世界上第二个面向对象语言Smalltalk,因此,Alan Kay被誉为Smalltalk之父。2003年,Alan Key因为在面向对象程序设计上的杰出贡献,获得了有计算机界的诺贝尔奖之称的ACM Turing Award。
Alan Kay成名于Smapltalk和OOP,而Java虽然在语言上类似于C,但是在语义上非常接近Smalltalk,很多Java中的设计思想在Alan Kay的文献中找到根源,所以也有些人将Alan Kay尊为Java思想的先驱。不过Alan Kay认为Java的成功不是由于Java本身的内在价值,而是其商业化的成功。
Alan Kay欣赏的是Lisp,他认为Lisp是软件的麦克斯韦方程,其中的许多想法是软件工程和计算机科学的一部分。
2008年7月28日星期一
2008年7月19日星期六
Lisp发布新方言Arc
Arc 语言是 Graham 设计的一种全新的 Lisp 方言,被实现为一个对 MzScheme 的扩展程序。
与其它方言不同,这个语言具有十分清晰和“现代化”的语法,以至于无法被直接实现为一组 Scheme 的卫生宏。
按照作者的话说,Arc 是一种适合“探索性编程”(exploratory programming)的语言,适合乐于思考但不想被现有语言的语法、特性等不足限制思考的程序员使用,在构建大型程序方面并无很大优势。
语法方面,使用了整合 cond 能力的 if,类似 Lua 的 for 语句,省略了转换函数(相对于 Lisp)的宏定义 mac,被替换为方括号的 lambda,字符串、列表、散列的取值语法即函数调用语法。并简化了大量常用语法。
语义方面,增加了对于 Lisp 来说不存在的算符这一概念。
与其它方言不同,这个语言具有十分清晰和“现代化”的语法,以至于无法被直接实现为一组 Scheme 的卫生宏。
按照作者的话说,Arc 是一种适合“探索性编程”(exploratory programming)的语言,适合乐于思考但不想被现有语言的语法、特性等不足限制思考的程序员使用,在构建大型程序方面并无很大优势。
语法方面,使用了整合 cond 能力的 if,类似 Lua 的 for 语句,省略了转换函数(相对于 Lisp)的宏定义 mac,被替换为方括号的 lambda,字符串、列表、散列的取值语法即函数调用语法。并简化了大量常用语法。
语义方面,增加了对于 Lisp 来说不存在的算符这一概念。
little b:用于构建复杂系统的Lisp方言
little b 编程语言刚刚发布了新版本。该项目的初衷是为生物学家提供一个开源的、模块化的、重用能力强的编程语言。
在 Common Lisp 的基础上,little b 提供了优秀的模块化系统和一个完整的、超越当前大多数自命为“面向对象语言”所能提供的面向对象系统。
关于这一点,可以从其 class 定义语法中看出端倪。此外,little b 还整合了 Prolog 的规则推理机制,数学系统中常见的符号计算等功能。
语法方面,大多数语法设计都集中在了 OOP 系统上(花括号用于创建对象,方括号用于指定对象的域,奢侈的设计);支持中缀算符。这里有一个使用 little b 快速建模生物化学系统的例子。"
在 Common Lisp 的基础上,little b 提供了优秀的模块化系统和一个完整的、超越当前大多数自命为“面向对象语言”所能提供的面向对象系统。
关于这一点,可以从其 class 定义语法中看出端倪。此外,little b 还整合了 Prolog 的规则推理机制,数学系统中常见的符号计算等功能。
语法方面,大多数语法设计都集中在了 OOP 系统上(花括号用于创建对象,方括号用于指定对象的域,奢侈的设计);支持中缀算符。这里有一个使用 little b 快速建模生物化学系统的例子。"
2008年7月9日星期三
Lisp: 50 周年(转)
Lisp's 50th Birthday Celebration
Richard P. Gabriel
In October 1958, John McCarthy published one in a series of reports about his then ongoing effort for designing a new programming language that would be especially suited for achieving artificial intelligence. That report was the first one to use the name LISP for this new programming language. 50 years later, Lisp is still in use. During the past five decades, it has been changed and turned, which led to dialects differing in many respects from the original design, but the central corner stones remained the same, making it one of the oldest programming language still in use today, second only to Fortran.
1958 年 10 月,John MaCarthy 发表了一系列关于他正在致力于设计一个特别适合人工智能研究的新编程语言的报告中的一篇。那篇报告里首次将这种新编程语言命名为 LISP。50 年后,Lisp 仍然在使用。在过去的 50 年里,它有许多变化和调整,并产生出一些在许多方面与其最初设计截然不同的方言,但是它的中心思想仍然不变,使其成为今天仍在使用的最古老的语言之一,仅次于 Fortran。
The final design for the first incarnation of Lisp was published in an issue of the Communications of the ACM in 1960. That version of Lisp pioneered numerous languages features that are nowadays taken for granted. To name but a few: Lisp introduced a conditional expression, which was taken over in other languages as the ubiquitous if statement; it introduced recursion and first-class functions, the essential ingredients of functional and many other programming languages; it introduced reference semantics for variables, without which object-oriented programming would not exist; it introduced symbolic expressions, a generic and uniform representation for data (later reinvented as XML) and programs, the latter enabling program transformations from within an application; it introduced garbage collection for the very first time in programming languages; and it even already had a combination of metadata and dynamic dispatch in the form of symbols and property lists.
第一个 Lisp 的最终实现发表在 1960 年的 Communications of the ACM (CACM) 上。那一版本的 Lisp 首创了几个至今仍被采纳的语言特性:Lisp 引入了一个条件表达式,后来被其他语言拿去作一般性的 if 语句了;它引入了递归和第一类 (first-class) 函数,函数型和许多其他编程语言的核心成分;它引入了变量的引用语义,没有它的话就没有面向对象编程语言;它引入了符号表达式,通用和统一的数据和程序的表示形式 (后来被重新发明成 XML),后者使得程序可以在应用里进行转换;它很早就在编程语言里引入了垃圾收集机制;并且它甚至已经有了一个元数据组合以及基于符号和属性列表的动态派发机制。
Lisp is clearly one of the most influential programming languages in the history of computer science: Timothy Hart added macros to Lisp in the 1960's; Warren Teitelman invented an advice facility for Lisp in the 1960's as the very first precursor to aspect-oriented programming; Carl Hewitt used Lisp as a platform to develop backtracking (essential for logic programming) and the actor model; Alan Kay acknowledges the heavy influence of Lisp on Smalltalk, the first explicit object-oriented programming language; Brian Smith developed the concept of computational reflection using Lisp as a starting point; Paul Graham used Lisp to develop the first continuation-based web application; and even today Lisp is on the forefront for the upcoming Web 3.0.
Lisp 无疑是计算机科学史上最具影响力的编程语言之一:Timothy Hart 在 1960 年代为 Lisp 增加了宏;Warren Teitelman 在 1960 年代发明了一个 advice 机制,成为了面向方面 (aspect-oriented) 编程的最早先驱;Carl Hewitt 将 Lisp 作为一个开发回溯 (逻辑编程的本质) 和其他 actor 模型的平台;Alan Kay 承认了 Lisp 对于 SmallTalk 的重要影响,后者是第一个明确的面向对象编程语言;Brian Smith 开发了第一个基于续延 (continuation-based) 的 Web 应用;而且直到今天 Lisp 仍处在即将到来的 Web 3.0 的前沿。
We would like to celebrate Lisp's 50th birthday. OOPSLA 2008 is an excellent venue for such a celebration, because object-oriented programming benefitted heavily from Lisp ideas and because OOPSLA 2008 takes place in October, exactly 50 years after the name Lisp has been used publicly for the first time.
John McCarthy has already agreed to give a talk about the early history of Lisp, returning to OOPSLA after his successful keynote talk at OOPSLA 2007. Guy Steele and Richard Gabriel will repeat their HOPL-II talk about the Evolution of Lisp from 1992, using a particularly unusual set of slides. Pascal Costanza will talk about the recent developments in the Lisp community, which has seen a surprising resurrection after its wake from the AI Winter. We will invite other influential Lispers, covering important aspects in the development of Lisp during the past five decades. Finally, we will have an open panel discussion about the next 50 years of Lisp.
OOPSLA 2008 will take place in Nashville, Tennessee, USA from October 19 to October 23. OOPSLA is the major annual conference on object-oriented programming worldwide and continues to attract several hundreds of the brightest minds in this field both from industry and academia since over 20 years. Find more information about OOPSLA 2008 at http://oopsla.org
Richard P. Gabriel
In October 1958, John McCarthy published one in a series of reports about his then ongoing effort for designing a new programming language that would be especially suited for achieving artificial intelligence. That report was the first one to use the name LISP for this new programming language. 50 years later, Lisp is still in use. During the past five decades, it has been changed and turned, which led to dialects differing in many respects from the original design, but the central corner stones remained the same, making it one of the oldest programming language still in use today, second only to Fortran.
1958 年 10 月,John MaCarthy 发表了一系列关于他正在致力于设计一个特别适合人工智能研究的新编程语言的报告中的一篇。那篇报告里首次将这种新编程语言命名为 LISP。50 年后,Lisp 仍然在使用。在过去的 50 年里,它有许多变化和调整,并产生出一些在许多方面与其最初设计截然不同的方言,但是它的中心思想仍然不变,使其成为今天仍在使用的最古老的语言之一,仅次于 Fortran。
The final design for the first incarnation of Lisp was published in an issue of the Communications of the ACM in 1960. That version of Lisp pioneered numerous languages features that are nowadays taken for granted. To name but a few: Lisp introduced a conditional expression, which was taken over in other languages as the ubiquitous if statement; it introduced recursion and first-class functions, the essential ingredients of functional and many other programming languages; it introduced reference semantics for variables, without which object-oriented programming would not exist; it introduced symbolic expressions, a generic and uniform representation for data (later reinvented as XML) and programs, the latter enabling program transformations from within an application; it introduced garbage collection for the very first time in programming languages; and it even already had a combination of metadata and dynamic dispatch in the form of symbols and property lists.
第一个 Lisp 的最终实现发表在 1960 年的 Communications of the ACM (CACM) 上。那一版本的 Lisp 首创了几个至今仍被采纳的语言特性:Lisp 引入了一个条件表达式,后来被其他语言拿去作一般性的 if 语句了;它引入了递归和第一类 (first-class) 函数,函数型和许多其他编程语言的核心成分;它引入了变量的引用语义,没有它的话就没有面向对象编程语言;它引入了符号表达式,通用和统一的数据和程序的表示形式 (后来被重新发明成 XML),后者使得程序可以在应用里进行转换;它很早就在编程语言里引入了垃圾收集机制;并且它甚至已经有了一个元数据组合以及基于符号和属性列表的动态派发机制。
Lisp is clearly one of the most influential programming languages in the history of computer science: Timothy Hart added macros to Lisp in the 1960's; Warren Teitelman invented an advice facility for Lisp in the 1960's as the very first precursor to aspect-oriented programming; Carl Hewitt used Lisp as a platform to develop backtracking (essential for logic programming) and the actor model; Alan Kay acknowledges the heavy influence of Lisp on Smalltalk, the first explicit object-oriented programming language; Brian Smith developed the concept of computational reflection using Lisp as a starting point; Paul Graham used Lisp to develop the first continuation-based web application; and even today Lisp is on the forefront for the upcoming Web 3.0.
Lisp 无疑是计算机科学史上最具影响力的编程语言之一:Timothy Hart 在 1960 年代为 Lisp 增加了宏;Warren Teitelman 在 1960 年代发明了一个 advice 机制,成为了面向方面 (aspect-oriented) 编程的最早先驱;Carl Hewitt 将 Lisp 作为一个开发回溯 (逻辑编程的本质) 和其他 actor 模型的平台;Alan Kay 承认了 Lisp 对于 SmallTalk 的重要影响,后者是第一个明确的面向对象编程语言;Brian Smith 开发了第一个基于续延 (continuation-based) 的 Web 应用;而且直到今天 Lisp 仍处在即将到来的 Web 3.0 的前沿。
We would like to celebrate Lisp's 50th birthday. OOPSLA 2008 is an excellent venue for such a celebration, because object-oriented programming benefitted heavily from Lisp ideas and because OOPSLA 2008 takes place in October, exactly 50 years after the name Lisp has been used publicly for the first time.
John McCarthy has already agreed to give a talk about the early history of Lisp, returning to OOPSLA after his successful keynote talk at OOPSLA 2007. Guy Steele and Richard Gabriel will repeat their HOPL-II talk about the Evolution of Lisp from 1992, using a particularly unusual set of slides. Pascal Costanza will talk about the recent developments in the Lisp community, which has seen a surprising resurrection after its wake from the AI Winter. We will invite other influential Lispers, covering important aspects in the development of Lisp during the past five decades. Finally, we will have an open panel discussion about the next 50 years of Lisp.
OOPSLA 2008 will take place in Nashville, Tennessee, USA from October 19 to October 23. OOPSLA is the major annual conference on object-oriented programming worldwide and continues to attract several hundreds of the brightest minds in this field both from industry and academia since over 20 years. Find more information about OOPSLA 2008 at http://oopsla.org
订阅:
博文 (Atom)