Lisp 语言优点那么多,为什么国内很少运用?

 我来答
不高兴marlboroa85d
2018-03-20
知道答主
回答量:21
采纳率:0%
帮助的人:1.8万
展开全部

很久以前,这门语言一直处于计算机科学研究的前沿,尤其是在人工智能领域。现在,它很少使用,它不是因为古代,类似于古代语言被广泛使用。


其他类似的古代语言包括FORTRAN,COBOL,口齿不清,基本的,和ALGOL家族,这些语言之间唯一的区别是,他们为谁设计,Fortran是专为科学家和工程师,他们对计算机编程是为了解决问题of.cobol是设计业务,最好是反映交易者可以使用计算机era.lisp是计算机科学的研究与设计,最突出的表现是为初学者设计的in.basic研究计算机的基本原理。最后,ALGOL语言是一种计算机程序员修改,演变成其他语言,如C,一个大家庭的Pascal和java。

上面提到的一些语言没有它们那么受欢迎。我们可以称他们为“失败”。问题是他们为什么会失败?首先要指出的是COBOL。是不幸的,它是商业人员可读性强的失败点。业务人员发现他们可以雇佣程序员来管理他们的系统。程序员天生偏向于为他们设计的语言,而不是他们的老板。所以,随着时间的推移,越来越多的业务功能的实现,如VB,C,C++和java。现在,只有少数部分软件仍然用COBOL语言编写。

基本有不同的命运。他是为介绍职员而设计的。在微型计算机上学习编程的人将使用内置的BASIC语言作为起点。随着时间的推移,微机通过个人电脑运行微软的操作系统更换,或MacOS的苹果电脑。这种语言逐渐被VB所取代。虽然他是一个主要的程序员,但它已经被COBOL取代了一段时间。为什么我们需要花这么多的资源在昂贵的编译器上,而廉价的解释器已经存在于我们的计算机上呢?近日,微软迁移到.NET Framework让VB的背后。它的替换,C #是ALGOL家族的一个成员,类似于java。

  

FORTRAN在这些年的使用一直是起伏的。在某一阶段,几乎所有的科学代码都是用它写成的。它的优点是在语言中没有指针,也不允许递归。这意味着所有数据的引用位置都可以在编译时确定。FORTRAN编译器使用这些附加信息使程序运行得非常快。不幸的是,随着时间的推移,固定大小数组的数据结构变得过时。现在,科学必须处理任何形状的风格,甚至更复杂的现实世界。这需要在语言中添加指针。这样的时间,Fortran逐渐下降。现在,它已经转移到高性能计算。新的并行矩阵和向量运算最近被添加到这种语言中,并且仍然有它的性能优势。

ALGOL语言家族已经成功。原因是语言是程序员为程序员编写的。随着时间的推移,这些与系统和应用程序相关的语言现在已经成为最常用的语言。它的优点是程序员越多使用它,语言就越能提高,越来越多的程序是用它们编写的。这提供了一个良性循环,并且雇佣了更多的程序员来处理他们自己的程序。这是网络效应的一个例子。系统的“价值”是用户数量的平方,即以这种速度增长的用户之间的交互。

那么Lisp语言家族为什么站在失败者一边呢?有些人认为这是语法上的错误。Lisp因其括号而臭名昭著。我不认为这是原因。许多用户说,良好的格式允许他们跟上这些括号。与此同时,Lisp语言问世不久,就有了一种叫做“超级括号”的语法,它允许人们快速地表达任意数量的反括号。今天这个功能很少被使用。最后,优秀的编辑器解决了大多数语法问题。

其他人经常抱怨Lisp是一种函数式语言。这是失败的原因吗?当然,只有Lisp比以前的语言更具功能性。但事实上,我不认为这很简单。Lisp也命令语言的特点,与ALGOL语言也可以作为一个纯粹的功能性语言。如果有人想选择一种特定的编程范式来编写代码,一些特定的语言可以使这个选择更容易实现。然而,现代语言的灵活性足以支持各种编程范式,几乎完全命令Lisp没有理由存在。

也许Lisp的问题是他使用垃圾回收?那时,只有Lisp使用这个特性作为计算机语言。垃圾收集确实占用了大量的计算资源,而这方面的早期计算机的不足就足以组织Lisp。但我认为这仍然不是主要原因。Lisp用于编写高度复杂的程序。事实上,如果使用其他语言编写,这些程序必须有一个垃圾收集模块。这可能比Lisp的实现要好吗?众所周知,任何这样复杂的程序,如果用其他语言编写,必然会被置于一个比Lisp的垃圾收集大得多的功能模块。

口齿不清的失败正是因为他太成功了,这使他的目标模糊了。Lisp是非常灵活和灵活的,足以灵活地改变其形式,以满足早期语言的需要。对于其他语言,如果你想完成一项庞大的任务,你需要把这个任务分解成一小块,然后完成它。如果是更大的,即使是编译也需要一步一步来完成。但Lisp不是。由于其强大的能力,程序员可以将Lisp转换成特定领域中的特定工具。这个方便的工具将很方便地解决这个问题——任务很容易完成。由于语言的正交性,我们重构的Lisp仍然可以与原来的编译器和解释器一起运行。

那么,建立一个特定的领域语言作为解决问题的方法有什么问题呢?其结果是它是非常有效的。然而,这种方法将瓦解语言。这就导致很多语言稍有不同。这是Lisp代码对其他人可读性差的真正原因。在其他语言中,相对简单的印象可以测量给定的代码函数。Lisp具有超强的表达能力。因为给定的符号(符号)可能是变量、函数或操作,它需要阅读大量代码才能找到它。

Lisp失败的原因是它是支离破碎的,它的分裂是由它的语言性质和特定域方案的风格造成的。网络效应是相反的。越来越少的程序员使用相同的方言,所以它是相对的ALGOL语言家族的总价值。

如果有人正在设计一门语言,我们怎样才能避免这个问题呢?如果语言的表达能力是我们的目标,就必须以某种方式加以调整。这种语言必须有特殊的限制,以确保编写代码的可读性。Python是一种成功的语言,它已经完成了,其中一些是硬编码的,而其他的则以习惯的方式存在。

总结:将来,最终会有一种流行的语言像Lisp一样。

七月_不下雨f8d1e10
2018-03-20 · TA获得超过296个赞
知道答主
回答量:211
采纳率:0%
帮助的人:10.3万
展开全部

之前在学校学编程的时候,偶然间听过这种语言,还是挺意外的,毕竟在中国这种语言太冷门了。有些人估计都没听说过这种语言啊。


定义

首先来看下这种语言是什么?同样类似目前已经渐渐被忘记的语言还有一个就是FORTRAN。定义中的是LISP为函数式程序设计语言,所有运算都能以函数作用于参数的方式来实现。LISP没有命令式语言程序中常见赋值语句和变量,重复的过程可以使用递归的函数调用来表示,并不需要使用循环模式。

优点和缺点

任何语言都有利有弊,任何语言并不能说是最好的语言。而相对与别的语言来讲,LISP语言最突出的优点就是弱类型这个优点了。LISP作为弱类型这优点相对缺点则是运行效率的低下。原始定义简洁的缺点使到大型开发工程变得困难,自底层到高层,自二维表查询到面向对象,使用者需要嵌入更多的函数来实现,致使LISP众多方言的衍生。

失败的原因

我认为一个语言的没落失败必定是因为他不适应这个社会的需求和发展。只有随时顺应社会人编程的需求和习惯还能更好的别使用。Lisp失败的原因是因为它的碎片化,并且它的碎片化是因为其语言天性与特定领域方案的风格造成的。而网络效应则恰恰相反。越来越少的程序员使用相同的方言,因此它相对与ALGOL语言家族的总价值下降。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式