`

脚本语言总览

阅读更多

20年后,我们用什么样的语言?也许现在谁都不好回答,20年前的程序员们会告诉你用汇编吧,今天人们也许会告诉你用c语言(c++?)吧。那么20年后呢,也许不是c语言了吧。下面都是所谓的非主流语言,不过它们的设计思想、所能够完成的功能,绝对不比c语言差。也许将来它们会成为主流,也许不会,可是不管怎样,它们都有自己的闪光之处。

--->你要么站在电脑的硬件上编程,要么站在巨人的肩膀上编程,请选择吧。


PROLOG
人工智能领域常用的语言,开发自然语言分析,专家系统,以及所有和智能有关的程序,都非常拿手。可以到我的主页来学习这门语言 http://cdtzx.go.163.com/

Visual Prolog
http://www.visual-prolog.com/ 顾名思义,这是一个可以制作界面的Prolog,有试用版本下载,大概20M左右。这个prolog版本需要对谓词以及数据进行声明,就像C语言一样。因此在使用的时候比较复杂,不过更加适合编制较大的程序。编译出来的程序可以直接运行。

Amzi! Prolog
http://www.amzi.com/ 这个prolog版本包含解释器、编译器,不过编译出来的程序不能够直接运行,需要运行器运行。可以很方便的和其它语言(例如visual basic,java,C,CGI)连接,开发智能程序。解释器的运行效率较低。它所说使用的语法体系和visual prolog不同,程序需要进行适当的修改才能够在visual prolog中运行。

SWI Prolog
http://www.swi-prolog.org/ 我没有怎么使用过这个版本的prolog解释器,不过它的运行速度要比amzi prolog的解释器快,和amzi的编译之后的程序差不多快,如果下载图形软件包XPCE的话,还可以开发有界面的程序。它的语法和amzi prolog相同,程序可以通用,不过内部谓词有些不同,有时候需要修改一下。

Turbo Prolog
如果需要可以给我发邮件 Dos版本的prolog,有开发界面,可以编译成可执行文件,语法和visual-prolog相同,不过内部谓词有许多出入。

B Prolog
www.cad.mse.kyutech.ac.jp/people/zhou/index.html 好像是中国人开发的prolog软件,据说比其它的prolog运算速度都要快,我曾经在linux下面使用过这个prolog,也有window版的,不过没有什么集成开发环境。语法和其它的几个都不太相同,需要适当的修改程序才能够在此环境下运行。此prolog提供了许多测试速度的解谜题的程序,这个版本的prolog支持constraint程序设计。

Strawberry Prolog
http://www.dobrev.com/ 1兆的容量,包括完整的开发界面,帮助,例程,提供了几个棋类游戏的源程序。可以直接开发有界面的prolog程序,共享版不能够编译,就解释执行吧。

Sicstus Prolog
http://www.sics.se/sicstus/ Sicstus Prolog无疑是Prolog版本中最出色的,虽然它并不是免费软件,但是可以下载到有时间限制的试用版本,而且只要修改时间也可以无限期的使用下去(过期之后修改时间也不会有问题)。它语法与amzi prolog类似,都属于ISO标准,内部胃词丰富,提供了丰富的库,例如集合、图、带权图等等。支持unix和windows等各种操作系统平台。支持constraint程序设计。


LISP
人工智能语言的老大哥。语言格式只有一个形式:列表,所以也叫做表处理语言,这可不是一般的表,是可以包容任意结构的表,有了它,你还用c语言来写链表,二叉树的程序么?学习数据结构不妨使用lisp,让你更加关心算法,而不是数据如何在计算机内部表达。

XEmacs
http://www.xemacs.org/ 与著名的guns emacs编辑器的起名,并且界面更加友善,内带emacs lisp, 和许多使用lisp编写的工具软件,例如calc, 是一个功能强大的计算器,支持符号运算,有全部的源程序,如果能够好好研究这些源程序,收获一定不小。

common lisp
http://www.franz.com/ windows下的common lisp集成开发环境, 60天试用。 Lisp Work

common lisp
http://www.xanalys.com/ 无限期使用,没有任何功能限制 SCHEME

这是lisp的一种方言,比lisp更加标准化。

MIT Scheme
http://mitpress.mit.edu/sicp/ 这里有一本非常好的介绍编程技术的书,使用的语言是lisp/scheme。在这里还可以下载到Scheme的解释器,基本上是模仿emacs作的。 DrScheme

http://www.drscheme.org/ DrScheme是一个Scheme语言的交互式的集成开发环境。非常适合于教学使用。支持多种语言级别(初级、中级、高级等等),有丰富的界面库,支持TCP/IP。内带详细的帮助和教程。


FUNCTION LANGUAGE
这是一类语言,叫做函数型程序设计语言。是一种非常高级的语言。一种基于λ演算和在70年代后期才发展起来的新语言类型。大多数程序设计语言明显地规定要执行操作的次序。次序的详细规定是很需要的,因为语言的语句对程序的变量有“作用”,如果改变这些作用的次序,就可以改变产生的最后值。但是函数型语言却没有这种性质。在这个意义上,函数型语言能建立可计算性的数学公式模型。让我们来看一个简单的例子:

qsort :: [a] -> [a] | Ord a
qsort [] = []
qsort [a:xs] = qsort [x \\ x<-xs | x<a] ++ [a] ++ qsort [x \\ x<-xs | x>=a]
这段程序就是快速排序的代码,你看有多么简洁,并且它的这个qsort可以对任何类型的数据进行排序(只要这种数据可以比较大小)。想读懂上面的程序么?那么下载下面的clean, 或者haskell,好好研究吧,祝你有新的发现。

Clean
http://www.cs.kun.nl/~clean/ 并行的函数型语言,可以把源程序编译成exe文件,带有丰富的库,从tcp/ip, 到界面设计,到游戏开发,无一不全。

Haskell
http://www.haskell.org/hugs/ hugs是haskell的免费编译器,语法和clean相似,不过是解释执行,因此易于学习。

O'Caml
http://www.ocaml.org/ 又一个函数型语言,速度很快,编译出来的程序速度和用C做出来的差不多快。

Mozart OZ
http://www.mozart-oz.org/ mozart oz 是具有魔力的语言。它融合了目前几种流行的程序设计思想,我们叫它多范式语言。它是面向对象的语言,它是函数型的语言,它是约束逻辑(constraint)的语言,它是并发式的语言,它还是分布式的语言,几句话很难概括它的功能。最好去它的网站看看吧,下载一个慢慢研究? 他使用emacs作为开发界面,因此如果你想在windows下使用本语言,首先需要安装emacs for windows(也可以在mozart的网上找到,也可以去www.gnus.org去找,也可以安装xemacs), 如果你安装了emacs 那么你也就同时获得了emacs lisp, 呵呵,收获不小。 为了提起您的兴趣,请思考如下的问题如何编程解决,然后你可以在mozart中找到惊人简单的解决方案。 15个人每天出去玩,每天分为5组,每组3人,玩一个星期,使得任何两个人都曾经在一组中玩过,你如何安排?

J software
http://www.jsoftware.com/ 不要和java搞混淆了。J是一种面向阵列的语言,也就是说矢量,矩阵,以及高次数组都是它的最基本的数据类型,J中引入了大批量的运算符,以及独特的算式分析方法,大幅度的扩展了数学算式的表达能力。 例如如果你要算从1加到100, 用c怎么做? J的程序是:+/i.100 对,就这么短,一个表达式解决了问题,事实上,使用表达式编写出来的程序异常简洁,虽然初看上去很难读懂,一旦掌握了J语言,你就会发现,原来你可以用只有c语言1/20的字符表达同样的功能。

FORTH
http://cdtzx.51.net/pimage/www.jsoftware.com forth是一种可扩展的,交互式的语言。最初为小型的嵌入式电脑设计的,现在它几乎可以在任何主流的芯片上运行。 在电子表格,专家系统, 多用户数据库,和分布式实时控制系统中有广泛的应用。 表面来看,forth是一种基于堆栈的概念机。例如如果要计算 (3+4)*5 ,我们的程序就是:3 4 + 5 * . 首先把3和4入堆栈,然后调用+子程序,+把堆栈的最顶上两个元素取出(也就是3和4)进行加法运算,然后把结果入堆栈,然后把5入堆栈,然后调用*子程序,把最顶的2个元素,也就是7和5取出,并进行乘法运算,然后把结果入堆栈,最后的.把结果从堆栈中取出。 事实上这是一种简单有效的概念机。当然forth远远不止这些,它有什么样的功能,就由你去发掘了。

LOGO
被称为最佳的启蒙语言,事实上它的功能远远不止启蒙这么简单。一切别的语言能够完成的它也能够完成,只是更加简洁一些,通常logo是使用lisp编写的,我们就可以想象它的高度灵活性了。

MSW Logo
http://www.softronix.com/ 这个网站还有个逻辑数字电路模拟的软件,很有意思,再也不用为什么触发器 门电路之类的发愁了。

Star Logo
http://www.media.mit.edu/starlogo starlogo的网站如是说: StarLogo是一个可以编程的建模环境,用来研究分散系统的运行机制。所谓分散系统是指:没有组织者而组织,没有协调者而协调的系统。使用StarLogo你可以对许多现实世界中的现象进行建模并且观察研究,例如鸟群、交通、蚂蚁以及市场经济。 StarLogo是一种特殊的Logo语言,和传统的Logo语言一样,你可以通过向海龟发命令来作图。除此之外,Starlogo容许你并行的控制上千个海龟,并且为这些海龟设定不同的行为模式。StarLogo非常适合于研究人工生命。


PYTHON
http://www.python.org/ python是一种解释型、交互式、面向对象的语言,我们经常拿它来和Tcl Perl Scheme Java来比较。它有非常清晰的语法,有模块,有类,异常处理,高级的动态数据结构。它比perl更加易学,功能更加强大。python采用动态数据结构,也就是说变量没有数据类型,这一点和Lisp十分相似,在python中所有事物都是对象(object),字符串、函数以至于类和模块。这种面向对象的概念和smalltalk很相似。并且自带了丰产丰富的模块库。对于初学者,python很适合于学习编程思想,而不会让读者为了繁杂的语法而头痛。对于高级用户,python是最出色的脚本语言,它可以很容易的内嵌某个软件中,作为那个软件的扩充,例如著名的3D设计软件blender就可以使用内嵌的python脚本语言来设计复杂动画。


SMALLTALK
可是面向对象的程序设计语言的鼻祖阿,并且正在蓬勃的发展,没有过时。它是纯面向对象的语言,就连整数也是对象。开放环境也非常集成,如果感兴趣可以到一下网站下载,绝对有耳目一新的感觉。举个例子,

循环语句在smalltalk中是向一个整数对象发送消息:

10 timesRepeat: [ teresa moveRight: 10 ].

其中timesRepeat:为消息名称,10为接受消息的整数对象,
[ teresa moveRight: 10 ].是消息的参数,

这又是smalltalk强大的地方,它可以把一段程序作为参数传递给某个对象!!!
Squeak Smalltalk
http://www.squeak.org/ 这是一个非常有趣的smalltalk版本,看上去就像在你的电脑上模拟了另外一套完成的窗口系统,这里面的窗口更加利害,你甚至可以旋转它,不看不知道,看了才发现还有这么奇妙的语言,这么奇妙的开发环境。10M左右

Cincom Smalltalk
http://www.cincom.com/scripts/smalltalk.dll/home.ssp 这个版本比较实用,有详细的帮助,可以开发真正的windows程序。30M左右

Dolphin Smalltalk
http://www.object-arts.com/ 这里提供的免费smalltalk版本只有3M不到,如果你想先尝试一下这种语言的话,可以下载这个。


PROGRAPH
http://192.219.29.95/ Prograph可能是全球唯一的纯可视化语言。在这里程序用图表表示,编程序就是绘制图表。我没有看出这么做的优势在那里,不过对于初学编程的人的确有很大帮助,而且尝试新东西总是好的,也许这也是一个发展方向吧。 到上面的网站可以下载一个免费版本,可以解释运行,但是不能够编译。大小约为27M。


ICON
这个语言和图标没有什么关系,不要误解了。这是一种很神奇的语言,虽然目前已经有几年没有更新版本了,不过我觉得它的许多思想都是很先进的。 http://www.cs.arizona.edu/icon/ 在语法形式上与c,pascal很相似,但是功能却更加强大,以下是它的一些特点: Icon的表达式可以产生一系列的值,而不是一个值。 面向目标的求值方式,可以自动的搜索正确的解答(这一点和prolog很像) 强大的字符串处理功能 当然,至于链表、集合、甚至词典(dictionary,也可以叫做hash表)都是它的基本数据类型。内存也是自动管理的,无需担心内存泄漏或者溢出等琐碎的问题。 他特别适合于文本分析、文本编辑、数据格式化、人工智能、专家系统、符号运算的方面的编程。 下面给几个简单的例子:

every f(i to j) ---Icon
for(k=i;k<=j;k++) f(k); ---C
every write(find("or",sentence)) ---输出sentence中所有子字符串or的位置
BASIC
Basic版本到网络上一搜索一大堆,这里介绍的是一种最适合于编游戏的Basic。 http://www.blitzbasic.com/ 有demo下载,2D,3D的都有,不能够编译成exe,但是可以解释执行,3D版本限制使用次数,如果需要破解,可给我发邮件。 这个basic专门针对游戏开发而设计,想快速开发游戏的懒人们赶快去下载一个吧。:) 2D的主要功能有: 高速绘制块、图像、圆、线条等图形图像 支持流行的图像格式:bmp,jpg,png 双缓冲绘制流畅的动画 碰撞检测,精确到点 游戏可以在windows中运行,也可以全屏运行 高速!


C & C++
最后我们还是回到c语言,毕竟这是目前最流行的语言,如果你不想用盗版,不想安装100多兆的垃圾(大多数初学者不可能完全使用borland c++ builder 或者visual c++的全部功能,而只是用来学习c语言本身),也不想在dos的edit样子的面孔下,使用Tc编程序,那么try下面的东东吧。3M的大小绝对值的下载。

LCC
http://www.cs.virginia.edu/~lcc-win32/index.html

Dev-C++
如果想下载C++的编译器,去http://www.bloodshed.net/devcpp.html看看,这个集成开发环境使用Delphi编写,C++编译器是Mingw编译系统。

Tiny CC
[Zoomq 补充,刚刚看到的信息!]

GNU/Linux 系统上最小的 C 语言编译器 Tiny C 编译器。Tiny C 编译器不

仅仅是一个常规意义上的 C 语言编译器,它还使得用户可以像使用脚本语言一样使用 C 语言进行快捷的脚本编程。

http://www-900.ibm.com/developerWorks/cn/linux/l-tinyc/part1/index.shtml

[ZhouTing补充]

UnderC
这个是C++的解释执行环境,有Windows和Linux的版本。并且带源码。

http://home.mweb.co.za/sd/sdonovan/underc.html



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wzwind/archive/2008/09/14/2905307.aspx
分享到:
评论

相关推荐

    教师总览性上课时间信息生成方法及其Python实现.pdf

    Python作为一种开源、面向对象的高级脚本语言,以其易学、编程高效的特点得到了广泛的应用。本文正是基于Python语言的这些特点,提出了一种高效的、基于xlrd和win32com.client包的教师总览性上课时间信息生成方法。...

    Flex4视频教程_01-01视频总览.rar

    MXML用于声明式地创建用户界面,而ActionScript则是面向对象的脚本语言,用于处理逻辑和业务规则。 4. **Flex SDK**:理解Flex Software Development Kit(SDK)的作用,它是免费的开源工具集,可以用来编译和部署...

    Windows开始运行命令总览

    Windows Script Host (WSH) 的一部分,允许执行脚本语言如VBScript和JScript,常用于自动化任务和系统管理。 #### 5. `write` 一个文本编辑器,虽然在较新的Windows版本中已被记事本和其他编辑器所取代,但在某些旧...

    ActiveX技术彻底研究之第一阶段:ActiveX技术总览+实例介绍

    控件的属性、方法和事件可以通过JavaScript等脚本语言访问,实现动态交互。例如,Microsoft的ActiveX Data Objects (ADO)控件常用于在网页上处理数据库操作。 5. **ActiveX与.NET Framework**:随着.NET Framework...

    CHrome浏览器插件-Tampermonkey(油猴脚本)

    Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本... 它提供了诸如便捷脚本安装、自动更新检查、标签中的脚本运行状况速览、内置的编辑器等众多功能, 同时Tampermonkey还有可能正常运行原本并不兼容的脚本。

    GP规范 GP Systems Scripting Language

    总览 - **2.1 GlobalPlatform倡议**:阐述了GlobalPlatform组织的目标和愿景,强调了其在全球范围内推动智能卡标准化的重要性。 - **2.2 GlobalPlatform卡片定制化需求**:概述了智能卡开发者在使用GP Systems ...

    sql语言自学通

    #### SQL总览与开发工具 SQL支持多种数据操作,包括数据查询(SELECT)、数据定义(CREATE/DROP/ALTER TABLE)、数据控制(GRANT/REVOKE)和数据操纵(INSERT/UPDATE/DELETE)。流行的SQL开发工具如MySQL Workbench...

    Ruby语言入门教程

    Ruby是一种纯面向对象的脚本语言,由日本程序员松本行弘于1995年创建。 - **设计初衷**:松本行弘希望创建一种既能提高程序员生产力又能保持代码优雅性的语言。Ruby融合了Perl的灵活性和Smalltalk的面向对象特性。 ...

    The VTK User's Guide中文版(打印版)

    Tcl(Tool Command Language,工具命令语言)是一种脚本语言,广泛应用于自动化测试、脚本编程等领域。在 VTK 中,Tcl 是一种重要的脚本语言,用于实现自动化测试、批量处理等任务。开发者可以使用 Tcl 来编写脚本,...

    学生成绩管理查询系统 asp语言编写

    ASP作为服务器端脚本语言,可以通过与数据库(如Access、SQL Server等)的连接,实现这些功能。同时,为了增强用户体验,开发者可能还会结合JavaScript、CSS等前端技术,提升页面的交互性和美观度。总的来说,学生...

    详细设计说明书 .pdf,景区导览系统,各模块说明详细

    文档提及的ArcGISServer平台是一个基于Web的GIS服务器软件,它支持各种地图服务和位置服务,而JavaScript是一种广泛使用的脚本语言,用于开发交互式网页和Web应用程序。 在景点查询模块中,系统可以根据游客的需求...

    管理系统后台界面大全.rar

    PHP(Hypertext Preprocessor)是一种开源的服务器端脚本语言,广泛应用于Web开发,尤其适合动态网站。JSP(JavaServer Pages)是Java平台上的技术,用于构建动态网页,提供与PHP类似的功能,但具有更强的企业级支持...

    python入门学习建议与总结(网工加油站版)

    ##### 视频教程总览 1. **【001.基础】python编程视频全套教程★超清晰★中文(36集)** - **特点**:适合初学者入门,内容全面,讲解清晰。 2. **【002.基础】Python编程视频教程(全38集)** - **特点**:与前...

    HTML语言。txt

    #### HTML语言全览 HTML,即Hypertext Markup Language,是一种用来创建网页的标记语言。它通过一系列的标签(如`&lt;html&gt;`, `&lt;head&gt;`, `&lt;title&gt;`, `&lt;body&gt;`等)来定义文档的结构和内容。每个标签都有其特定的功能,...

    基于Unity3D的虚拟校园

    运用Unity3D跨平台引擎,结合C#脚本语言,实现人机交互控制。在虚拟校园环境中,用户可进行三维空间的漫游、导览,并能够方便、详尽的查询校园各部分的相关信息。系统运行效果良好、维护简单,说明了Unity3D是设计、...

    非常适合初学者学习的VBscript教程

    VBScript(Visual Basic Script)是一种轻量级的脚本语言,尤其适合初学者入门学习。它主要用于Windows环境和Web开发,特别是在Internet Explorer浏览器中的ActiveX技术中应用广泛。本教程以通俗易懂的方式介绍了...

    twitter-turing-test:一种游戏,您需要猜测一条推文是来自人类的,还是来自经过某类推文训练的神经网络语言模型

    总览该项目使用以下开源项目来开发我们的模型: 用于从一组用户名中抓取Twitter数据。 对于某些较大的数据集, 用作代理池,以避免Twitter的IP黑名单。 ,可根据其他数据微调模型。 将模型部署到以获得实时HTTP端点...

    吉大导览微信小程序,即烧陶瓷杯子,matlab机械仿真之后我的第三个开放性实验。吉林大学校区导览功能。.zip

    2. **编程环境**:提供了易于使用的脚本编写与函数定义界面,支持面向对象编程,并可通过M文件实现模块化程序设计。 3. **数据可视化**:内置强大的二维和三维图形绘制功能,能够创建高质量的数据图表,便于数据...

    R语言经典实例(中+英)

    R语言经典实例(中+英) 第1章 R入门和获得帮助 7  1.1 下载和安装R软件 8  1.2 开始运行R软件 10  1.3 输入R命令 13  1.4 退出R 15  1.5 中断R正在运行的程序 16  1.6 查看帮助文档 17  1.7 获取函数的帮助...

Global site tag (gtag.js) - Google Analytics