- 浏览: 83707 次
- 性别:
最近访客 更多访客>>
最新评论
-
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 1766先看一句代码: ruby 代码 (1..9). ... -
8.3 正则表达式
2007-02-13 06:13 1559一本入门小书,不想涉及正则表达式,但是正则表达式与Ruby语言 ... -
8.2 再说字符串
2007-02-13 06:07 1340一. 生成一个字符串 字 ... -
8.1 再说数组
2007-02-13 06:03 1466一. 建立一个数组 ruby 代码 #E8.1- ... -
7.4 require 和 load
2007-02-13 05:59 1357程序 E7.3-1.rb中先写了Me模块,然后include ... -
7.3 糅和(Mix-in) 与多重继承
2007-02-13 05:55 1806糅和,也译作混合插入,也许就称作 Mix-in 比较合适。 现 ... -
7.1 模块 7.2 命名空间
2007-02-13 05:50 22417.1 模块 我们常常把许 ... -
6.5 访问控制
2007-02-13 05:43 1174在Ruby里,要读取,或是改变对象的属性,唯一的途径是调用对象 ... -
6.4 单例方法
2007-02-13 05:16 1038同一份设计蓝图(类),不同的实例对象,可以表现出不同的行为特征 ... -
6.3 实例变量、类变量、类方法
2007-02-13 05:28 2273学习编程的过程,就是深化理解变量的过程。在面向对象编程中也不例 ... -
6.2 增强父类方法
2007-02-13 04:39 1028如果我们只是想增强父类的方法,而不是完全地替代它,就可以用关键 ... -
6.1 重载?重写
2007-02-13 04:11 1926在Java 中,重载(overload)和重写(overrid ... -
5.5 一些编码建议
2007-02-13 03:37 1138这里不是 Ruby语言的编 ... -
5.4 蓝图可以改变吗? ——动态语言
2007-02-13 03:28 775Ruby 是动态语言,你可以改变 Ruby 程序的结构,功能, ... -
5.3 详解变量—— 动态类型
2007-02-13 03:22 1171变量是什么?变量有哪些特征呢?学习编程的过程,就是深化理解变量 ... -
5.1 为什么是Ruby? 5.2 Ruby会长久么?
2007-02-13 03:16 10155.1 为什么是Ruby? 现 ... -
4.5 多态
2007-02-13 03:07 795不同的子类继承一个父 ... -
4.4 继承
2007-02-13 03:04 836如果我们要写一个学生 ... -
4.3 封装
2007-02-13 02:53 929让我们来定义一个类,类名是Person,类名首字母要大写;属性 ... -
4.1 两种思维方式 4.2 对象
2007-02-13 02:47 9304.1 两种思维方式 人们 ...
相关推荐
计算机网络 谢希仁第八版 第一章概述 思维导图 计算机网络 谢希仁第八版 第一章概述 思维导图 计算机网络 谢希仁第八版 第一章概述 思维导图 计算机网络 谢希仁第八版 第一章概述 思维导图 计算机网络 谢希仁第八版 ...
计算机网络第五版 第一章 概述 参考答案
授课课件(PPT)信号与系统 郑君里 第三版 第一章 概述
软件工程导论 第一章 概述 作者:西安理工大学张毅坤教授
国际贸易第一章概述.ppt
计算机网络第一章概述思维导图: 本章节重点: 互联网边缘部分和核心部分的作用 计算机网络的性能指标 计算机网络的分层次的体系结构 目录 21世纪是以网络为核心的信息时代 互联网:(Internet):超级多的...
C语言第一章概述
计算机网络第一章概述复习题.pdf
第一章 概述 .xmind
在"操作系统第一章概述"中,我们首先会接触到计算机的基本概念和构成。 计算机定义为一种具有存储和运算能力的信息处理装置,能够处理各种形式的信息,包括数值、文字、图像、声音和视频等。其工作基于算术运算和...
计算机网络第一章概述PPT
计算机网络第一章概述复习题答案.pdf
在第一章概述中,课程首先回顾了机械原理和技术基础知识,强调了通用机械零部件设计和选用的重要性。机械系统设计则更进一步,它不仅仅是单一机械部件的设计,而是研究如何将这些部件有机整合,形成具有特定功能的...
自动化专业用PLC课件第一章概述.ppt
计算机网络第一章概述复习题(答案).pdf
#### 第一章概述内容 - **计算机网络在信息时代的作用**:随着21世纪的到来,世界进入了数字化、网络化和信息化的时代。计算机网络作为这一时代的核心组成部分,在推动经济发展、促进全球化等方面发挥着重要作用。 ...
计算机网络-第一章概述复习题(答案).pdf
移动通信 第一章 概述.ppt
数控技术第一章概述.pptx
抗生素备课第一章概述.ppt