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


    发一下牢骚和主题无关:

        编程语言分类及入门

    代码:
    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滚出网路世界!不要以为市占有率高就可以持续出烂货产品!以后替代品多得是!

  • 相关阅读:
    EntityFramework中的线程安全,又是Dictionary
    记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)
    这一个月
    使用Nginx解决IIS绑定域名导致应用程序重启的问题
    Bootstrap for MVC:Html.Bootstrap().TextBoxFor(model=>model.Name)
    Orchard 刨析:Logging
    Orchard 刨析:Caching
    Orchard 刨析:前奏曲
    Orchard 刨析:导航篇
    数据集
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3084593.html
Copyright © 2020-2023  润新知