`

介绍10多种不同的程序设计语言(转)

阅读更多

本文将介绍10多种不同的程序设计语言,以及如何下载它们的免费的编译器,(注意,是免费,而不是盗版),如果下载或者安装有问题,可以给我发邮件: 
ruoyu0088@sohu.com   

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

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

*******Prolog********** 

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


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

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

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

----Turbo   prolog 
http://magicpage.myetang.com/ 
Dos版本的prolog,有开发界面,可以编译成可执行文件,语法和visual-prolog相同,不过内部谓词有许多出入。 

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

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

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

*****functional   language**** 
这是一类语言,叫做函数型程序设计语言。是一种非常高级的语言。一种基于λ演算和在70年代后期才发展起来的新语言类型。大多数程序设计语言明显地规定要执行操作的次序。次序的详细规定是很需要的,因为语言的语句对程序的变量有“作用”,如果改变这些作用的次序,就可以改变产生的最后值。但是函数型语言却没有这种性质。在这个意义上,函数型语言能建立可计算性的数学公式模型。让我们来看一个简单的例子: 
qsort   ::   [a]   ->   [a]   |   Ord   a 
qsort   []   =   [] 
qsort   [a:xs]   =   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相似,不过是解释执行,因此易于学习。 

---caml 
http://caml.inria.fr/ 
又一个函数型语言。 

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

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

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

*******Logo************* 
被称为最佳的启蒙语言,事实上它的功能远远不止启蒙这么简单。一切别的语言能够完成的它也能够完成,只是更加简洁一些,通常logo是使用lisp编写的,我们就可以想象它的高度灵活性了。 
----MSWlogo 
http://www.softronix.com/ 
这个网站还有个逻辑数字电路模拟的软件,很有意思,再也不用为什么触发器   门电路之类的发愁了。 

******python*************** 
www.python.org 
python是一种解释型   交互式   面向对象的语言,我们经常拿它来和Tcl   Perl   Scheme   Java来比较。它有非常清晰的语法,有模块,有类,异常处理,高级的动态数据结构。它比perl更加易学,功能更加强大。 


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

http://www.squeak.org/   这是一个非常有趣的smalltalk版本,看上去就像在你的电脑上模拟了另外一套完成的窗口系统,这里面的窗口更加利害,你甚至可以旋转它,不看不知道,看了才发现还有这么奇妙的语言,这么奇妙的开发环境。10M左右   

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

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

**********Prograph************ 
http://www.taylor-design.com/DataLink/Home.htm 
Prograph可能是全球唯一的纯可视化语言。在这里程序用图表表示,编程序就是绘制图表。我没有看出这么做的优势在那里,不过对于初学编程的人的确有很大帮助,而且尝试新东西总是好的,也许这也是一个发展方向吧。 
到上面的网站可以下载

分享到:
评论

相关推荐

    windows 程序设计

    为说明Windows程序设计的多种技术,本书提供了许多范例程序。这些程序使用C语言撰写并原原本本的使用Windows API来开发程序。我将这种方法称作「古典」Windows程序设计。这是我们在1985年为Windows 1.0写程序的方法...

    C语言程序设计标准教程

    此程序说明float、double的不同 float a; double b; a=33333.33333; b=33333.33333333333333; 从本例可以看出,由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b 是双精度...

    Java核心技术 卷Ⅰ:基础知识 【中文】(第八版)

    第1章概述Java与其他程序设计语言不同的性能。解释这种语言的设计初衷,以及在哪些方 面达到了预期的效果。然后,简要叙述Java诞生和发展的历史。 第2章详细地论述如何下载和安装JDK以及本书的程序示例。然后,通过...

    设计学生学籍管理系统

    第三个步骤是进行主菜单的设计,使不同的窗口共享这个主菜单,通过设计脚本来触发当前活动窗口中定义的事件来完成数据的增删改、查询、打印。第四个步骤是建立各种窗口,通过数据窗口对象,和建立的各种控件,来实现...

    C#微软培训资料

    第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42 第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 ...

    Windows驱动开发技术详解的光盘-part1

     从Windows最基本的两类驱动程序的编译、安装、调试入手讲解,非常容易上手,用实例详细讲解PCI、USB、虚拟串口、虚拟摄像头、SDIO等驱动程序的开发,归纳了多种调试驱动程序的高级技巧,如用WinDBG和VMWARE软件对...

    基于单片机的智能温度计的设计.doc

    5 3.2显示电路 5 3.3温度传感器简介 6 3.4蜂鸣器模块电路 7 3.6电源模块 8 4 设计语言及软件介绍 8 4.1 C51语言介绍 8 4.2 keil uvision4软件介绍 9 5 系统软件设计 10 5.1 概述 10 5.2 系统程序设计模块 ...

    windows驱动开发技术详解-part2

    PCI、USB、虚拟串口、虚拟摄像头、SDIO等驱动程序的开发,归纳了多种调试驱动程序的高级技巧,如 用WinDBG和VMWARE软件对驱动进行源码级调试,深入Windows操作系统的底层和内核,透析Windows驱动 开发的本质。 ...

    C语言入门经典(第4版)--源代码及课后练习答案

    书中除了讲解C程序设计语言,还广泛介绍了作为一名C程序设计人员应该掌握的必要知识,并提供了大量的实用性很强的编程实例。本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。读者基本不需要...

    在线客房预订系统源码

    一、功能介绍 (一)、简练——同一模块实现16大模块功能,操作统一、简便。 新闻管理模块:添加/编辑/删除/移动新闻文章 新闻抓取模块:多目标,设置简单,无需写正则表达式,上手快,效率高,可以分步抓取,可以按照...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    在程序设计领域,人们把能够在无需改写有关代码的前提下,让开发出来的应用程序能够支持多种语言和数据格式的技术称为国际化技术。在计算机文档里,国际化(internationalization)通常简写为i18n,这是因为这个单词...

    课程设计-利用RS-232实现单片机与PC间的串行通信.doc

    单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作 用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价 钱也是低的,一般不超过10元即可......用它来做一些...

Global site tag (gtag.js) - Google Analytics