六朝燕歌行2:编程语言一共有多少种

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 13:42:24

编程语言分类及入门

代码:
Author: Felix Huang
Date: 20031002
Rev. 1.0
编程的语言按照编程思想可以分成几类:

=================
分类介绍

1. Register Machine 类

-------------
C/C++
-------------

C 语言是基于 Register 的图灵机的实现,一般来说,目前流行
的语言都是这一类。这种语言相当传统,思想比较接近计算机,
其中又以 C 为最,最初 Ken Thompson 设计 C 出来就是为了实现
Unix 的。因此有人称 C 作``中级语言''。事实上 C-like 语言的长处
就在于跟计算机的思想接近,因此执行效率高。缺点在于入门困难,
毕竟人脑可不是由 0 跟 1 组成的(不由另我想起 Donald Knuth 的名
言:Rewriting the Bible in 0's and 1's)。

在1980年代以前,一般的*作系统都是由机器的汇编码甚至机器码写
成,所以移植十分困难。最明显的例子是 RMS 曾经工作过的 ITS 系统
(全称是 Incompatible Time Sharing System,MIT 的 AI 实验室搞出来的
古怪名字),在 PDP-7 上的系统无法移植到 PDP-10 与 PDP-11 上,结果
被 AI lab 放弃使用。于是有鉴于此,AT&T 的 Ken 设计 Unix 的时候,
为了方便移植起见,就首先搞出来一个 C ,于是自此之后 Unix 大行
其道,几乎所有机器都可以运行 Unix ,只要重新编译一下就可以了。

C 的特点在于与系统联系紧密,语法松散。所以不是初学者的好选择。

C 的国际标准为 ISO C,目前的版本是 ISO C99,上一版是 C90。ANSI C
是国际标准化组织 ISO 接受 C 标准前的名字,ANSI 表示此乃美国标准。

C++ 是 AT&T 的 Bjarne Stroupe 设计的。设计 C++ 的目的是把面向对象
思想加到 C 中,使在抽象模型的时候更容易,也更方便大规模的代码
重用与代码管理。事实上,C++ 的代码效率略低于 C。但长处也是极其
明显的,C++ 代码的开发周期会明显短于 C,特别在大项目上。

C++ 的国际标准是 ISO C++,目前版本是 ISO C++ 98.

目前常见的 C/C++ 的编译器有:
Visual C++ Compiler MS 出品 Win32(贵)
Borland C++ Compiler Borland 出品 Win32(有免费版本下载)
Intel C++ Compiler Intel 出品,专为 Intel CPU 服务,Win32/Linux
(Linux下有免费非商业版授权)
GNU Compilers Collection 中的 C 编译器(gcc)
win32/linux/bsd/…… 免费,自由软件

Linux 下还有一个超小型的 C 编译器 Tiny CC,可以把 C 源文件以脚本
形式运行。

------------
Perl
------------

Larry Wall 的作品。此人非常强悍,写 Perl 出来只是为了解决建网站的
时候要写 CGI。他在 Perl 之前的作品是 patch 。ESR 对 patch 的评价非
常高,认为 patch 促成了被 Linux 开发模式所验证的高度分布的现代化
的开发模式。

Perl 是一门凌乱的语言,语法没有很具体的规则。如果你一个月没看过
perl 的代码,甚至会连自己的东西都看不懂。但事实上, perl 的效率
相当高,web 上大部分的应用,都是用 perl 写成的,包括 yahoo。入门
的 programmer 最好不要学,应该等你对 c 都有一定熟悉之后,才开始学习
perl。

linux 及其它 unix 类的*作系统下一般都会自带 perl。windows 的用户
可以到 www.activestate.com 下载 ActivePerl。

-----------------------------------
Pascal/Object Pascal/Delphi
-----------------------------------

Pascal 是一门语法相当严谨的语言,搞竞赛的同学一般都是先接触到它。
它的长处在于严谨的语法与类型检查,弱点是与平台相关的硬件控制、
指针的支持比较弱。这些方面 Borland 公司在开发 Delphi 的时候加以
改进,加入了对对象的支持、对指针的改进。然而 Pascal 并没有一个统
一的标准,所以不同编译器之间互不兼容的情况相当严重。但这并不能
阻止 pascal 成为一种好的入门语言。

pascal 的编译器有数种。目前常见的是 borland 的 delphi,gnu pascal
compiler 以及 free pascal。后两者是自由软件。

2. OO 类

-----------------
Smalltalk
-----------------

面向对象语言的鼻祖。其 OO 的程度比 Java 更彻底,也更适合作为 OO
的入门语言。其语法相当接近英语的自然语言,消息体系更为合理,
对理解 OO 有帮助。

编译器可到 www.gnu.org/software/smalltalk 下载。上面还有一份不错的
入门教程。

-------------
Java
-------------

笔者对 Java 的了解不多。Java 是一种完全面向对象的编程语言,其特点
为跨平台,应用广泛。

Java 编译器及库可以在 java.sun.com 下载。

--------------
Python
--------------

Python 是一门运行效率跟 Perl 可以比较的语言,而且 Python 揉合了 OO
与部分 Functional Programming 的优点,在最近发展得相当迅速。

Python 编译器可以在 www.python.org 下载。

3. Functional Programming

这类语言一般是基于 Church 的 Lambda 演算理论,有志学习数学与计算
的同学不可不学。

-------------
Lisp
-------------

最经典的 FP 语言,厉害之处在于定义了一种数据结构(表)与七个基本操
作就可以表示所有程序的运行结构了。能力无限强的一种语言。Emacs 之
所以如此强大,其原因是,Emacs 实际上是一个 Lisp 解释器,它的界面、
功能全部是由 Emacs Lisp 的子程序提供的,扩展相当容易。

解释器有几种,包括 gnu common lisp, clisp 与 cmucl. 前者可在 sf.net
找到,后两者可在 cons.org 找到。

---------------
Haskell
---------------

相当专业的一种语言,不搞数学不需要看。 www.haskell.org

=================
入门建议
=================

初学编程,应该从语法严谨的语言入手。因此 pascal 是一个不错的选择。
应该以 pascal 为基础去了解各种数据结构与算法,并掌握一定的数学基
础。当对数据结构与算法有一定熟悉后,便可以学习其它一系列的语言。

如果是想学习 OO 的话,推荐学习的是 java,但同时应该看 smalltalk 的
东西,因为 smalltalk 对 OO 的理解非常有帮助。而且 smalltalk 本身并
不困难,很容易就可以理解。

进一步学习,应该对带来不同编程思想的语言都有一定了解。上面提到
的语言都是不同编程思想中的皎皎者,对它们不一定要精通,但最好有
一定了解。

当遇到任何一门语言,你都可以快速应用的时候,你就成为真正的高手了。

不少于100种