Go是谷歌2009发布的第二款编程语言。2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用的一种BASIC语言.
北京时间2010年1月10日,Go语言摘得了TIOBE公布的2009年年度大奖。该奖项授予在2009年市场份额增长最多的编程语言。
谷歌资深软件工程师罗布·派克(Rob Pike)表示,"Go让我体验到了从未有过的开发效率。"派克表示,今天的C++或C一样,Go是一种系统语言。他解释道,"使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。"
2007年,谷歌把Go作为一个20%项目开始研发,即让员工抽出本职工作之外时间的20%, 投入在该项目上。除了派克外,该项目的成员还有其他谷歌工程师也参与研发。
派克表示,编译后Go代码的运行速度与C语言非常接近,而且编译速度非常快,就像在使用一个交互式语言。现有编程语言均未专门对多核处理器进行优化。Go就是谷歌工程师为这类程序编写的一种语言。它不是针对编程初学者设计的,但学习使用它也不是非常困难。Go支持面向对象,而且具有真正的闭包(closures)和反射 (reflection)等功能。
在学习曲线方面,派克认为Go与Java类似,对于Java开发者来说,应该能够轻松学会 Go。之所以将Go作为一个开源项目发布,目的是让开源社区有机会创建更好的工具来使用该语言,例如 Eclipse IDE中的插件。
在谷歌公开发布的所有网络应用中,均没有使用Go,但是谷歌已经使用该语言开发了几个内部项目。派克表示,Go是否会对谷歌即将推出的Chrome OS产生影响,还言之尚早,不过Go的确可以和Native Client配合使用。他表示"Go可以让应用完美的运行在浏览器内。"例如,使用Go可以更高效的实现Wave,无论是在前端还是后台。
Go 同时具有两种编译器,一种是建立在GCC基础上的Gccgo,另外一种是分别针对64位x64和32位x86计算机的一套编译器(6g和8g)。谷歌目前正在研发其对ARM芯片和Android设备的支持。派克表示,"Android手机存在的问题是,我们一直没有一个数学协处理器。"
抽象性
指的是对具体东西进行类的概括。
递归性
指的是相同的规则可以重复使用。
系统性
指的是语法规则具有推导性和解释性。
稳定性
变化现象比较少,变化过程也十分缓慢。
语音
语音是指语言的声音,包括字词发音、音节轻重、停顿、句调等。语法现象就表现为语音差别。
动补结构“想起来了”意思是“回想起来了”;
动宾结构“想起来了”意思是“打算起床”。
语汇
语汇是指词语的意义、用法和类别等,某些特定词语会造成语法上的差异。“长2米”、“短2米”
修辞
修辞包括词语选用、辞格运用和句式调整。为了修辞需要有时可以超出语法规则的限制。比如“太阿Q”“很女性”名词做谓语。
语境
指的是对具体东西进行类的概括。
比如“一张动物园”是“我要买一张去动物园的票”这句话在特定场所(公共汽车上)的成分省略现象。
逻辑
人们说话要合逻辑,也有约定俗成。
比如“门把风吹开了”不合逻辑,例外如本来该说“来北京以前”,但人们反而常常说“没有来北京以前”。
历时和共时
历时:纵向动态,重点是某些语法现象在特定时间过程中产生和消失的原因和规律。比如古代汉语中的之、乎、者、也现在已变成“的、了、吗、呢”等另一套语气词。
共时:横向静态,重点是某一种语言在特定时间范围内的语法表现形式和语法规则系统。所以现代汉语是一种共时的系统。
教学和信息
教学:研究成果是服务于人,特点是规范和实用,定义和说明要求具有简明性和可接受性。
信息/计算机:特点是精确和可靠,定义和规则必须具有推导性和可验证性。
普遍和个别
普遍:发现人类语言中的共同的语法机制。
个别:发现各种语言独特的语法现象。
语法和句法
语法/形态学,主要描写词的形态特征和变化规则。
句法/造句法,主要说明句法成分和句子类型。汉语中像语序、虚词、结构等句法问题应该在语法中占有更多分量。
组合规则和聚合规则
“哪个成分在前,哪个成分在后”的问题就由组合规则来管,所以组合规则实际就是语法结构的构成规则。
“什么样的成分能替换出现在某个组合位置上”的问题就由“聚合规则”来管,所以聚合规则实际上就是语法成分的归类规则。
核心语法和外围语法
核心语法:仅指句法结构规则,又称“小语法”。
外围语法:则还包括语法有关的词语、语义和语音等现象。这种语法分类是一种较新的分类观点。
A.语素: 最小的有意义的一眼单位。
B.语素组: 多个语素组成的有意义的未独立使用的语言单位。
C.词: 最小的有意义的能够独立使用的语言单位。
D.词组: 有意义的能独立使用的语言单位。
E.句子: 由若干个词活着词组按照一定的规则组合成的,能表达相对完整的意义。
F.句组: 由多个句子组合而成的,表达相互关联的比较复杂的意义。
各语法单位的关系(三级六种)
凡事能够体现一类意义或有共同作用的形式,就都是 语法形式 ,语言中不管是词语意义,还是结构意义,凡是通过一类形式或共同功能所获得的意义,就是 语法意义 。语法形式与语法意义就像是语法这张纸的两面,二者相互依存、不可分割。
词法手段
词性变化:
附加:英语中名词后加“-s”表示复数。
屈折:如英语中的复数“man/men(男人)”。
异根:如英语中“go/went(走)”。
零形式:未加词缀的“book(书)”这种单数意义就是用零形式表示的。
词的轻重音:未加词缀的“book(书)”这种单数意义就是用零形式表示的。
词的重叠:名词或量词的重叠“人/人人、天/天天”都有“逐个”的意思。
句法手段
虚词:比如“我和老师”、“我的老师”。
语类选择:比如“读书”是动宾结构,“好书”是偏正结构。
语序:如“天气好”是主谓关系,“好天气”是偏正关系。
句调:比如“他去?(高调)”“你去!(低调)”来表达疑问、祈使语气。
人类语言分类:
用词形变化、词的轻重音等语法手段的语言,如俄语、德语等,叫做 综合性语言 ;主要使用虚词、语序等语法手段的语言,如汉语、英语等,叫做 分析性语言 。因此,词法手段又可称作综合性手段,句法手段又可以称作分析性手段。
类别范畴 是由语类和语类选择形式表示的语法意义。
从词的类别看,各种语言都需要词的语法类别意义。比如建立名词的类表示人或事物的意义,如“工人、英语”。但不同语言在语类上也有差异。比如俄语中只有形容词修饰名词,但汉语修饰名词的词就不需要词形变化,如“军用电话、高级电话”,所以汉语的不同词类都可能表示修饰义。
从词与词的类别选择看,各种语言也都要求某类词与某类词的组合的意义,比如名词加动词就产生人或事物被陈述的意义,如“工人工作”。不同语言在语类选择的意义上也有差异。例如德语名词前需要修饰义的成分时只能选择形容词。
关系范畴 主要指通过 虚词和语序 表示语法意义。
有些缺少形态变化的语言必须通过虚词和语序来表示特定的语法关系意义。例如“学生家长”同样是“名词+名词”,但既可能是联合关系也可能是修饰关系,通过加上连接词“和”和“的”,如“学生和家长”“学生的家长”,就可以区别这两种关系意义了。
划分标准:
形态标准:英语动词有时、体、态的词形变化,名词有单复数的变化。
意义标准:一种语汇概念意义,一种是语法范畴意义。
分布标准:这种观点是说要根据词的聚合位置来确定词类。
划分结果:
共同词类和特殊词类
共同词类如名词、动词;特殊词类如汉语的量词。
词类的大类和小类 的实词(体词、谓词)和虚词。
典型词类和夸类词类
如“table(桌子)”是典型名词。
基本词组
词组利用语序的语法手段,叫做“基本词组”。有五种类型:
主谓词组:他很聪明
动宾词组:吃面条
偏正词组:优秀教师
动补词组:洗干净了
联合词组:能源交通
特殊词组
汉语的助词词组(动词+时态助词),如“吃了、说过”。
汉语的方位词组,如“桌子上”。
汉语的语气词词组,如“走吧”。
除此之外还有三种比较重要的特殊词组,一是“介词词组”,二十“数量词组”,三十“‘的’字词组”。
词类的聚合分类
体词性词组——谓词性词组
向心词组——离心词组
层次分析必须依据两条原则:一是成结构,二是有意义。
句型类:
完全主谓句: “妈妈来了”、“这孩子真聪明”。
不完全主谓句: “下雨了”可以补出主语,说“天下雨了”。
非主谓句: “禁止吸烟”、“有人来了”。
独词句: “谁”、“好”、“进来”。
句式类:
XY——YX: “我认识这个人——这个人我认识(宾语前移)”
XY——X: “进来、休息休息吧”
X——XY: “你去上海——你去上海吗”
X——Y: “你去上海——你去不去上海”中“去——去不去”也是一种成分替换。
功能类:
陈述句: 如“今天星期一”。
疑问句: 如“你知道这件事吗”。
祈使句: 如“请把这件事尽快办一下”。
感叹句: 如“It’s great(太棒了)”“多么可爱的孩子们啊”。
简繁类:
单句: 结构和意义比较简单的句子,如“我病了”,“我听说今年大学扩大招生了”。
复句:
由两个或两个以上互不从属的分句组成的。
联合关系复句:并列、选择、递进、连贯
主从关系复句:因果、转折、条件、假设、让步
有的学者倾向于把句子与句子组合这种比较长的语言单位叫做 句组 ,侧重语法层面的研究;有学者主张把这种语言单位叫做 话语 。
多个单句和复句的组合形式,在语用上就统称为 篇章 。
会话 是两个或多个人共同说的一段话,交谈、讨论。