- 浏览: 84069 次
- 性别:
最近访客 更多访客>>
最新评论
-
Bernice_liu:
谢谢分享,受益匪浅,适合我——初学者
Ruby语言中文教程all in one -
何枫abc:
怎么感觉Ruby有点像C!!!
3.5 标识名和变量的作用域 3.6 类库 3.7 数据类型 -
何枫abc:
谢谢了!!!你写的很好,现在我正在学Ruby!!!
第二章 运行环境 -
yangzhihuan:
正想知道ruby是怎么样生成像javadoc那样的文档,多谢了 ...
3.1 注释与分行 -
whisper:
从lambda演算的角度说我们并不关心一个东西到底是什么,而只 ...
变量一定要有类型吗(一)
1.1 编程语言的发展简史
本小节是一些编程语言的简单介绍,你如果不感兴趣,可以略过不看。
先说程序是什么?程序就是指令序列的有序集合。指令即代码,可以是数字,也可以是文字,文字最终要转换成数字。也就是说,程序是许多数字串,当然,也可以合并成一个很长很长的数字串。
程序的作用是什么?程序能够做事,做你想叫它做的事。换一种说法,程序的功能是完成它的使命。它的使命由编写程序的人来决定,或者由编写程序的程序来决定。
编写程序就是写文章,写能够转换成很长很长数字串的文章,给计算机看。
最初的计算机编程语言是一长串二进制代码。所谓的二进制就是只有1和0,所以第一代的计算机编程语言就象下面的许多1和0。
1001101001010011
0100011101111110
1010101000010100
11110100001010001
……
这是给计算机看的,你看不懂,我也看不懂,程序员自己下次再看的时候,也是搞不清。但是,这是最基本的。直到现在,计算机的中央处理器(CPU)还是只认1和0组成的二进制代码。
第二代的计算机编程语言叫汇编语言,就象这样:
LD x,37H
MOV a,x
……
程序员之间能够很容易地交流,但是这样的语言编写效率很低,而且不同的CPU有不同的指令集,根本无法重复使用。
第三代的计算机编程语言称之为高级语言。容易编写,容易阅读,容易交流,而且可以与CPU、操作系统无关。从1958年的LISP和1957年的FORTRAN开始到现在,我们接触到的编程语言几乎都是第三代语言。其中又有两大类。一类叫函数式语言,如:LISP,Haskell。一类叫命令式语言,如:FORTRAN,Pascal,C++,Java。
第四代的计算机编程语言,你只要告诉它你要什么,无须告诉它怎么做,它就能把答案给你。上个世纪八十年代末发展起来的数据库查询语言(SQL)就是一个例子。第四代的编程语言还在起步阶段,智能化程度还有待于加强。SQL是当今最为强大的数据检索机制之一;SQL并不能完成一个过程语言所能完成的所有任务。
需要说明的是,面向对象的编程语言并不是第四代语言。面向对象是一种认识事物的方式、理念,你可以面向对象地编程(OOP),也可以面向对象地设计(OOD)。面向对象的编程语言是过程语言的自然延续,同属于第三代命令式语言。
大家平常所说的编程语言是指第三代的计算机编程语言。有的语言是解释执行,如Python,Ruby,交互性很好;有的语言是编译执行,如Pascal, C,速度较快。 有的语言是本地执行,如C,C++;有的语言是虚拟机执行,如Java, C#。有的语言是动态语言,如JavaScript,Ruby;有的语言是静态语言,如C++,Java。
1.2 编程其实很容易
一门语言包含三个方面:语义,语法和语用。汉语,英语是如此,计算机编程语言也是如此。
从语义方面来看,人类语言的单词量非常大,要以万计,常用单词也有几千;计算机编程语言的基本单词只有几十个,我们称之为关键字。
学习一门计算机编程语言只要搞清楚这几十个关键字的意思、用法,就大致及格了,六十分到手了。如果要灵活应用一门计算机编程语言,就必须在反复使用的过程中去不断加强理解,不断加深体会。如果碰上好的教材,遇到好的老师,那么入门拿到六十分是很容易的。要想拿到八十分、九十分,就看各人修行了,所谓拳不离手,曲不离口。多多练习,“无它,但手熟尔”。
Ruby是一种动态语言,语法简单,就象当年的BASIC一样,非常容易上手,适合初学者。对于编程高手来说,Ruby里有许多深奥之处,等待你去发掘。
1.3 Ruby的由来
松本行弘(Matz)是日本一家开源软件公司的程序员,有15年的编程经验。在工作中,他希望有一种比 Perl 强大,比 Python 更面向对象的语言。从1993年2月,他开始设计一个全新的自己的语言,1994年12月发布了第一个 alpha 版本,并且将这种新语言定名为Ruby(红宝石)。发展到现在,最新版本是Ruby 1.8.5(2006-8-25)。
1.4 Ruby的特性
计算机编程语言的发展总是与飞速变化的世界息息相关的,Ruby是为了适应变化、提高和完善编程艺术而出现的。
● 完全开源
● 多平台 Ruby可以运行在 Linux, UNIX, Windows, MS-DOS, BeOS①,OS/2②…
● 多线程 线程就是指能在一个程序中处理若干控制流的功能。与 OS 提供的进程不同的是,线程可以共享内存空间。
● 完全面向对象
● 不需要内存管理 具有垃圾回收(Garbage Collect,GC)功能,能自动回收不再使用的对象。
● 解释执行 其程序无需编译即可轻松执行。
● 功能强大的字符串操作/正则表达式
● 具有异常处理功能
● 可以直接访问OS Ruby可以使用(UNIX的)绝大部分的系统调用。单独使用Ruby也可以进行系统编程。
● 动态类型语言 Ruby的变量没有类型,因此不必为类型匹配而烦恼。
● 动态语言 程序运行中,可以新加入属性,行为,也可以重写方法。
● 支持操作符重写
● 支持无限精度的数字 例如计算400的阶乘也轻而易举。
● 丰富的库函数
● 用模块进行混合插入(Mix-in) Ruby舍弃了多重继承,但拥有混合插入功能。使用模块来超越类的界限来共享数据和方法等。
● 语法简单 它是脚本语言,没有指针,学习曲线比较低。.
……
Ruby 吸取了 perl 的正则表达式, python 的简单性可读性,smalltalk 的纯面向对象语法和单继承,LISP 的无穷嵌套的语法,Java的线程…
① BeOS是win98同时代的操作系统,性能优于win98。可惜开发BeOS的公司现在已经不存在了,最后版本好像是BeOS5.0 。
② OS/2是IBM的PC机操作系统,与win3.1同时代。
完整阅读,请看我写的 Ruby语言中文教程all in one
发表评论
-
8.4 迭代器、代码块、闭包
2007-02-13 06:25 1772先看一句代码: ruby 代码 (1..9). ... -
8.3 正则表达式
2007-02-13 06:13 1565一本入门小书,不想涉及正则表达式,但是正则表达式与Ruby语言 ... -
8.2 再说字符串
2007-02-13 06:07 1362一. 生成一个字符串 字 ... -
8.1 再说数组
2007-02-13 06:03 1489一. 建立一个数组 ruby 代码 #E8.1- ... -
7.4 require 和 load
2007-02-13 05:59 1365程序 E7.3-1.rb中先写了Me模块,然后include ... -
7.3 糅和(Mix-in) 与多重继承
2007-02-13 05:55 1814糅和,也译作混合插入,也许就称作 Mix-in 比较合适。 现 ... -
7.1 模块 7.2 命名空间
2007-02-13 05:50 22487.1 模块 我们常常把许 ... -
6.5 访问控制
2007-02-13 05:43 1202在Ruby里,要读取,或是改变对象的属性,唯一的途径是调用对象 ... -
6.4 单例方法
2007-02-13 05:16 1044同一份设计蓝图(类),不同的实例对象,可以表现出不同的行为特征 ... -
6.3 实例变量、类变量、类方法
2007-02-13 05:28 2279学习编程的过程,就是深化理解变量的过程。在面向对象编程中也不例 ... -
6.2 增强父类方法
2007-02-13 04:39 1053如果我们只是想增强父类的方法,而不是完全地替代它,就可以用关键 ... -
6.1 重载?重写
2007-02-13 04:11 1933在Java 中,重载(overload)和重写(overrid ... -
5.5 一些编码建议
2007-02-13 03:37 1162这里不是 Ruby语言的编 ... -
5.4 蓝图可以改变吗? ——动态语言
2007-02-13 03:28 782Ruby 是动态语言,你可以改变 Ruby 程序的结构,功能, ... -
5.3 详解变量—— 动态类型
2007-02-13 03:22 1201变量是什么?变量有哪些特征呢?学习编程的过程,就是深化理解变量 ... -
5.1 为什么是Ruby? 5.2 Ruby会长久么?
2007-02-13 03:16 10325.1 为什么是Ruby? 现 ... -
4.5 多态
2007-02-13 03:07 802不同的子类继承一个父 ... -
4.4 继承
2007-02-13 03:04 839如果我们要写一个学生 ... -
4.3 封装
2007-02-13 02:53 936让我们来定义一个类,类名是Person,类名首字母要大写;属性 ... -
4.1 两种思维方式 4.2 对象
2007-02-13 02:47 9394.1 两种思维方式 人们 ...
相关推荐
计算机网络第五版 第一章 概述 参考答案
授课课件(PPT)信号与系统 郑君里 第三版 第一章 概述
软件工程导论 第一章 概述 作者:西安理工大学张毅坤教授
国际贸易第一章概述.ppt
计算机网络第一章概述思维导图: 本章节重点: 互联网边缘部分和核心部分的作用 计算机网络的性能指标 计算机网络的分层次的体系结构 目录 21世纪是以网络为核心的信息时代 互联网:(Internet):超级多的...
C语言第一章概述
计算机网络第一章概述复习题.pdf
第一章 概述 .xmind
在"操作系统第一章概述"中,我们首先会接触到计算机的基本概念和构成。 计算机定义为一种具有存储和运算能力的信息处理装置,能够处理各种形式的信息,包括数值、文字、图像、声音和视频等。其工作基于算术运算和...
计算机网络第一章概述PPT
计算机网络第一章概述复习题答案.pdf
在第一章概述中,课程首先回顾了机械原理和技术基础知识,强调了通用机械零部件设计和选用的重要性。机械系统设计则更进一步,它不仅仅是单一机械部件的设计,而是研究如何将这些部件有机整合,形成具有特定功能的...
自动化专业用PLC课件第一章概述.ppt
计算机网络第一章概述复习题(答案).pdf
#### 第一章概述内容 - **计算机网络在信息时代的作用**:随着21世纪的到来,世界进入了数字化、网络化和信息化的时代。计算机网络作为这一时代的核心组成部分,在推动经济发展、促进全球化等方面发挥着重要作用。 ...
计算机网络-第一章概述复习题(答案).pdf
移动通信 第一章 概述.ppt
数控技术第一章概述.pptx
抗生素备课第一章概述.ppt