中级农民
积分 120
大米 颗
鳄梨 个
水井 尺
蓝莓 颗
萝卜 根
小米 粒
学分 个
注册时间 2012-8-2
最后登录 1970-1-1
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
本帖最后由 order66executor 于 2013-3-30 09:25 编辑 . ----
1.编程语言是什么?
个人理解,编程语言就是操作流程的语法规则。设想有台人工计算机,上面有“读寄存器”“加”“乘”“写寄存器”。现在你要计算f(x)=x*3+2,你翻了说明书,说明书上列出了一堆操作步骤:
(1) Press “Read to the Register”
(2) Press “*”, and then press "3"
(3) Press “+”, and then press "2"
(4) Press “Write to the Memory"
你按照说明书操作,得到结果。
这个例子中,你扮演的是CPU里的控制器,说明书是指令寄存器,而说明书上的操作步骤就是计算机程序,操作步骤的语言(为了让你看懂)就是编程语言。
2.HTML和SQL是不是编程语言?
让我们看下HTML和SQL分别是如何运作的。HTML代码是这么写的:
<html>
<body bgcolor="yellow">
<p>下面是张图片
<img src="图片.gif" />-baidu 1point3acres
</p>
</body>
</html> ..
这个例子很简单,代码规定了文字在图片的上方,背景为黄色。它不是一个操作步骤的说明书,而像是一个房间装潢的图纸。因此,HTML不是编程语言,它是一种称之为标记语言,源于XML。
相反,SQL代码是这样写的:
SELECT * FROM table;. 1point3acres
DELETE table;
我们可以明显地看到操作步骤,因此SQL是编程语言,是数据库的专用编程语言(结构化查询语言),虽然只学这个只能当DBA。类似的专门语言也有matlab,专门用于数学和图形计算,ActionScript,Flash编程专用。.
3.什么是高级语言?
我们看说明书,有中文的外文的。其实还有种更直接的办法,就是看操作视频。相应的,计算机也有不同的编程语言。
机器语言:0101组成,最容易被计算机理解,就相当于操作视频,但是这个视频是拿方言拍的,不同机器不同机器语言。
汇编语言:中文说明书,你看了说明书之后,脑海中浮现出视频,然后再操作。不同国籍(计算机里叫体系结构)有不同的说明书
高级语言:就是外语说明书,神奇的是它是世界语,没有人拿它作母语,但是它比各种语言更简单。
4.什么是编译语言?什么是脚本语言?. Χ
前面说了,高级编程语言是世界语写的说明书。翻译说明书有2种方法。1全部翻译完再执行,称为编译执行,相应的语言称为编译语言,Java,C/C++,obj-c,C#,VB都属于编译语言;2翻译一句执行一句,称为解释执行,相应的语言称为脚本语言,常见的有PHP,Python,Perl,Ruby和JSP等。
.--
5.按照编程范式,高级语言如何分类?
面向对象,过程式,函数式,逻辑式
最早的说明书差不多是按照一二三四的步骤写下来的,也会有分块的步骤称为函数,这就是过程式语言。久而久之,说明书越来越长,达到几十万条步骤,这样说明书既容易漏,又很难改。于是人们把说明书的内容抽象成具体的对象,对象之间产生了继承的关系。比如萨摩耶是狗,贵宾也是狗,彩色狗(别说你没上过D8)是萨摩耶,所以彩色狗也是狗。狗可以吠,所以萨摩耶,贵宾也可以吠。但是彩色狗可以删D8的帖子,而不是所有狗都可以删DB的帖子。按照这种面向对象逻辑写出来的程序,就有易读易维护的特点。
过程式的编译语言主要有C和Pascal。PHP和Perl的粉丝号称它们是面向对象的,但窃以为它们属于过程式的脚本语言。其他语言基本都是面向对象的,Java,obj-c,C++,C#都是面向对象的编译语言,Python,Ruby和JSP是面向对象的脚本语言。 ..
.
函数式语言敝人知之甚少。函数式语言主要是lisp,用函数的嵌套来表示程序,比如求和:
defun total (x) ( if (null x) 0 (+ (first x) (total (rest x))))). .и
而逻辑式编程语言就更诡异了,prolog是典型的逻辑式编程语言,另外SQL其实也是(也有过程式的特点)。. 1point 3acres
6.按照类型怎么分类语言?
懒得写了,网上抄了。
静态类型定义语言:一种在编译时,数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。Java和C是静态类型定义语言。
动态类型定义语言:一种在执行期间才去发现数据类型的语言,与静态类型定义相反。VBScript和Python是动态类型定义的,因为它们是在第一次给一个变量赋值的时候找出它的类型的。
强类型定义语言:一种总是强制类型定义的语言。Java和Python是强制类型定义的。如果你有一个整数,如果不显示地进行转换,你不能将其视为一个字符串。
. Χ
弱类型定义语言:一种类型可以被忽略的语言,与强类型定义相反。VBScript是弱类型定义的。在VBScript中,可以将字符串 '12 ' 和整数 3 进行连接得到字符串 '123 ',然后可以把它看成整数 123,而不需要显示转换。
7.C和C++什么区别?
C++是C的面向对象扩展,C++向下兼容C。它们都是很接近系统底层的语言,常用于写性能要求较高的部分。如果你想精通CS,最好从这两种语言学起。
8.我想学面向对象的编译语言,Java,obj-c,C#哪个好?
Java是一种跨平台的语言,不仅跨平台,而且由于Java是在虚拟机上执行,所以可以一次编译,到处执行,不过这也造成性能上的开销(Java Fans勿喷,实测数据是比obj-c和C#差)。而obj-c和C#分别是苹果和微软平台上专用的语言。所以,喜欢苹果就选obj-c,喜欢微软(好吧= =)就选C#。. 1point 3 acres
另外,急着找工作就学obj-c(近来移动应用需求量巨大),急着会编程就学C#(或者VB,它们真的很简单)。
其他情况请走Java路线。当然,如果你是真的想成为一名优秀的程序员,请从C开始~~~
9.我想学面向对象的脚本语言,Python和Perl有什么区别?
如果你了解过python,你会知道一句经典的话:“一种方法,最好只有一种方法来做一件事”。
相应的Perl也有一句话:“总是有多种方法来做同一件事”。
它们的区别就在于此。对于Perl程序来说,一个Java程序员写的Perl和PHP程序员写的Perl差得很远,因为他们编程习惯不同,而Perl支持很多语法规则,Perl程序员是语言学家,注重语言的巧妙运用;相反,到了Python里他们可能写的一模一样,因为Python尽量简化语法规则,Python程序员是工程学家,注重统一的标准和良好的结构。
.google и
10.我想了解更多编程语言,并了解编程语言的趋势。. 1point 3 acres
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
上一篇:
image and video processing/ multimedia. 项目求助!超详细 下一篇:
数学建模对CS,尤其是software,HCI申请有用吗