语言编译器编程语言分类及入门

发一下牢骚和主题无关:

    编程语言分类及入门

代码:
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 本身并
不困难,很容易就可以理解。

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

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

    每日一道理
春蚕死去了,但留下了华贵丝绸;蝴蝶死去了,但留下了漂亮的衣裳;画眉飞去了,但留下了美妙的歌声;花朵凋谢了,但留下了缕缕幽香;蜡烛燃尽了,但留下一片光明;雷雨过去了,但留下了七彩霓虹。

    


    

文章结束给大家分享下程序员的一些笑话语录: AdobeFlash拖垮Windows拖垮IE!又拖垮Linux拖垮Ubuntu拖垮FirxEox!还拖垮BSD拖垮MacOS拖垮Safri!简直无所不拖!AdobeFlash滚出网路世界!不要以为市占有率高就可以持续出烂货产品!以后替代品多得是!

原文地址:https://www.cnblogs.com/jiangu66/p/3084593.html