编程语言范文(精选12篇)
编程语言 第1篇
价: 79.00 元
只需编程基础
从零开始自制编程语言
支持面向对象、异常处理等高级机制
编程语言的介绍 第2篇
doc1。
编程语言介绍
目录 [隐藏] 1 开放源代码的必要性 2 各种语言的选择 3 各种语言的选择 4
我为什么选择了 Python 5 Ruby 和 Python 的比较 5.1 Python 和 Ruby 的相同点
5.2 和 Python 相比 Ruby 的优点 5.3 和 Python 相比 Ruby 的不足 5.4 Pyth
on 和 Ruby 的语言的选择 6 多脚本语言的大统一及疑问 7 .NET 介绍 7.1 .NET
所实现的 Java 的功能 7.2 .NET 未实现的 Java 功能 7.3 .NET 实现的 Java
不具备的功能 7.4 相对 vs6 的改进 8 XML 各种技术介绍 9 最先进的 XML 格式图
形界面程序开发工具-XUL 10 最接近人类语言的编程语言-REBOL 11 最具有现代感 的 Lisp 解释器 DrScheme 12 eiffel 语言印象 13 mozart oz 语言 14 各种语言的
选择和语言之间的关系 14.1 一般是使用什么软件,就用什么软件的语言 14.2 然
后看处理什么样类型的数据 14.3 从语言特点来说 14.4 C 语言是最普及的语言,但 C 语言有一些缺点,因此,就产生了很多改进 C 的语言 14.5 关于图形用户界面 的选择 14.6 discuss 15 文学编程和 CWEB 介绍 16 贡献 [编辑] 开放源代码的必
要性 在介绍编程语言之前,先说说开放源代码的必要性。现在,在软件生产领域存在
巨大的智力浪费,大 家把大量的精力用在编写别人已经实现的程序代码上。看看,文
本编辑器有多少,看看 ftp 程序有多少,看看字处理程序有多少,这些程序虽然有
差别,但主要的功能都是一样的。要实现个性化的功能,在已有 的软件基础上修改会
节省多少时间呀!而每个程序各编一套,又浪费多少时间?如果,没有这些重复的工
作量,世界上的程序员至少可以节省 80%的工作量。同时,开放源代码也方便了大家 的交流,阅读源代码 应该是最直接最有效的学习途径,尤其是比较专业的领域。要
开放源代码,下面几点比较重要: 语言要流行。语言的函数和类库统一。语言的语
法和编译器要统一。编译器是否开放源代码。API 是否开放源代码。语言的可重用性、功能、友好
性。语言统一:如果大家都用一种编程语言,都用同样的函数,同样的类库,那么,大家的共同语言就会 很多。大家只要学会一种语言,一套函数,一套类库,就可以相
互读懂源代码,这样,学习量是最少的; 但是语言统一根本是不可能的事,因为各种
语言都有其特色,如果取了其中一个优点,通常就会牺牲另一 个优点。可是学习新 的 API 浪费程序员大量的时间和精力,尤其是当这个 API 有大量和其他 API 重复 的功 能的时候。要增加代码的可重用性,要从下面几点着手: 代码的可读性。如格
式、是否接近英语语法和单词。代码的表达能力,也就是简单性,能用最少的语句和
单词实现同样的功能。代码的结构性,如函数、模块、类。语言功能的强大从下面
几点来说: 是否拥有大量的库支持。这是最重要的,要求编写任何功能的程序都有强
大的库支持。语法功能是否强大,比如是否有出错处理。是否有指针。语言的友好
性: 语言包的大小,语言包越小,学习越简单。语言是否有友好的编辑调试环境。
语言的可视化和集成编程环境。
[编辑] 各种语言的选择 如果编写对性能要求苛刻,或和操作系统结合紧密的程序,必然选择 C。
如果编写到处可用的程序,选 Java。
如果编写大程序,可能的话尽量用脚本语言如 Python、Ruby,不行了再用 Java
和 C。因为脚本语 言带来了生产力。
编写文本的处理程序用 Perl 或 Ruby。
编写知识的处理程序用 prolog。编写最灵活,最模糊的程序用 Lisp。编写 office 程
序用 vba。编写服务器端程序,PHP、(采用自己熟悉的语言来写,例如 Perl、Pyt
hon、Ruby)CGI、ASP、(熟悉 Java 就用)JSP 都是选择。编写数据库程序用 vb、PowerBuiler 或 delphi。进行算法研究、设计,用 Pascal。[编辑] 各种语言的
选择 如果要追求性能和程序的能力,要完全发挥操作系统的能力,使用 C/C++语
言是合适的。Windows 在 环境下用 VC,在 Unix-like 环境下用 gcc。如果不是
追求和操作系统完美结合,而只是性能,又要追求跨平台性,那么仍然选择 C,但可
以选择 跨平台的库,如 qt、gtk、fox、wxWidgets。如果要编写游戏也有跨平台选择
:SDL。如果不满意 C 领域标准的不统一,不满意 C 的容易出错,不满意 C 的面向
对象特征不彻底。如果不在 乎跨平台,Windows平台可以选择 C#,mac平台可以选
择 Cocoa(Objective-C)。如果需要跨平台,可以选择 Java。如果需要跨平台,又要广泛的支持的话,选择 Java。在 Unix-like 下,最方便的工具语言是 Per
page 1 l,它有强大的社区和代码库的支持。
如果只作为简单应用的工具语言,Python 和 Ruby 是更好的选择,他们的跨平
台移植性好,应用也 比较广泛。其中 Python 更适合入门和交流,长期使用也不错。
Ruby 是对 Python 不满意的另一个选择,它提供了很多额外的功能。如果要选择一
个程序的嵌入语言,原来有 Lisp、Basic 和 Java,现在还可以选择 Python 和 Rub
y。如果在要求动态解释执行语言,而又不想学其他语言的话,C 程序员的选择是 p
ike,Java 程序员的 选择是 beanshell。在 Java平台,又想用脚本语言的话,可
以用 Python。最正统的基于文档的语言或叫动态页面语言是 JavaScript。最专门 的服务器端语言是 PHP,当然也有很多其他选择。XML 语言以 XUL 为最着名,dtml
也算一个,你自己也可以用 XML 作为自己特殊用途的语言。比如 jedit 就用 XML
作为一种模式定制语言。XML 语言是一种比较先进的趋势,比现有的语言在特殊领域
更高 效。要找容易实现的语言,Lisp 和 Tcl 是选择。Lisp 的数据和程序融为一
体的能力和自由是其他语言都没有的。现在出现了一个 Lisp 的现代化的变 种:REB
OL。如果有基于事实的编程的需要的话,prolog 和 Clips 是必然。[编辑] 我为什
么选择了 Python 首先声明,我编程只编应用程序,就是代替自己工作的小程序。如
果编写系统程序总会用到 C 或 Java 的。我喜欢脚本语言,脚本语言不用编译就可
以运行,非常便于修改,而编程序是一种经常性的活动,程 序编完后总在不断的修改
中,没必要搞的很隆重,还要编译。另外,脚本程序每个使用的人都可以随手拿 来修
改,不会出现还要去找源代码的情况。因此,C/C++和 Java 就被排除了。我喜欢
简单的语言,不喜欢为了编写简单的程序而去学习大量复杂的规定,需要大量的学习
才会的语 言不是好语言,是把人当机器看。C/C++和 Java 都有严格但罗索的语法,有永远学不完的函数、类、库。让人看到就头大。而 Perl 有各种怪里怪气的速记
符号,程序常常让人头晕。简单的含义除了容易学,还要 功能丰富,常用到的东西要
早就准备好,不用每个人都去写同样的数据结构程序等。Python 有丰富的数 据类型,有完备的面向对象的结构,有规则表达式等各种方便编程的模块。这个逻辑就是程
序做的多,人 做的就少,如果程序做的少,就要人做的多。这就是界面友好的问题。
容易上手,功能丰富是程序设计的 很重要的目标,Windows 就是靠这个流行的。P
ython 也很好的体现了这点。Perl 象 Unix 的 emaCs 而 而 之类其它工具一样,功
能强大,但太难学,太难懂。是比较违背人性的。关于性能。现在 Cpu 已经很强大
了。除了很大的程序和系统程序,没必要关心性能。关于功能。如果不是编写系统程
序和贴近系统的程序,没必要使用操作系统特别提供的功能。C 是可 以干任何事情,但它编程效率低,复杂。至于我为什么不用 vb,因为 vb 太庞大了。我没必要实现
一个小功能启动这么庞大的程序。太夸张。另外,vb 没有类继承,虽然是应用编程,但如果要编稍微大的程序,总会用到类继承的。Python 得强大得扩展能力使对 P
ython 得学习不会浪费。Python 经过简单得处理能使用各种得 C 和 C++库,也可
以被 C 和 C++调用。Python 可以直接使用 Java 得类,也可以直接被 Java 调用
。这样,对 Python、Java、C 得学习和使用经验都不会被浪费,还能相互补充。Py
thon 可以提高 Java 和 C 得编 程效率,Java 和 C 可以补充 Python 功能上得不
足。Python 还可以和 Tcl 直接交互,这种功能是内置得。期待 Python 能简单的
调用 Perl 和 PHP 得功能。能使用 Lisp 和 prolog 更好。[编辑] Ruby 和 Pytho
n 的比较 [编辑] Python 和 Ruby 的相同点 都强调语法简单,都具有更一般的表达
方式。Python 是缩进,Ruby 是类 Basic 的表达。都大量减少 了符号。都是动态数据类型。都是有丰富的数据结构。都具有 C 语言扩展能力,都具有
可移植性,比 Perl 的可移植性更好。也都可以作为嵌入语言。都是面向对象的语言,都可以作为大项目的开发工具。都有丰富的库支持。也有最宽松的版权许可,除
了一些工具属于 GNU 世界。都有 Lisp 特色的 eval 函数,也都能把函数作为参数
。也有图形界面的 Ruby 的专门编辑器。都获得了广泛的 C 库的支持。如 qt、gt
k、tk、SDL、FOX 等,Ruby 计划实现 SWIG 接口。都有完善的文档。[编辑] 和 P
ython 相比 Ruby 的优点 具有正则表达式和嵌入 HTML 的功能。Python 也有正则表
达式,但没有 Ruby 的应用方便和广泛。Python 的嵌入 HTML 项目才刚起步。Ruby
还有 apaChe 的 mod 模块。Ruby 本身也实现和很多 Unix 工具,如 raCC,doCtoo
ls。比 Python 更亲近Linux。比 Python 功能更完整的面向对象的语法。Ruby 的
page 2 整个库都是具有类继承的结构。他的基本的数据类型和运算符都是可以重载的。Ru
by 主要的功能都是通过对象的方法调用来实现的,而不是函数。Python 也在向这方
面发展,但没 有 Ruby 做的彻底。Ruby 的类是更规范的单继承,还有接口等概念的
实现。Python 可以实现在列表内的条件语句、循环语句,Ruby 用“块”的方式来
实现这个功能,Python 而 比 的更灵活,更具有通用性。Ruby 具有类似 Lisp 的
彻底的函数方式的条件语句、循环语句等。语句的表达能力更强。附带一些 Unix 工
具,如 raCC 等。[编辑] 和 Python 相比 Ruby 的不足 最大的不足正是因为 Ruby 的强大所引起的。它没有 Python 的简单性好。比较复杂的面向对象语法、“块”
语法的引入、正则表达式的引入、一些简写标记都增加了语言的复杂性。Python 的
缩进表达方式比 Ruby 的 Basic 的表达方式更让人悦目,Ruby 程序的满眼的 end 让
人不 舒服。当然,Ruby 认为 end 的方式比 Python 更先进。Ruby 还没有 Python 的“自省”的能力,没有从程序文件中生成文档的能力。Ruby 支持不及 Python 广
。国际化支持在 Ruby 的计划中。这是因为 Ruby 的历史比 Python 要短 造成的。
[编辑] Python 和 Ruby 的语言的选择 从简单的就是好的来说,Python 是没错的。
选 Python 适合寻找简单语言的人,这很可能造成 Python 更流行,因此也有更多 的支持。但如果要追求更强大的语法功能,对编程语言感兴趣,想了解各种编程概 念 的人,则 Ruby 是好的选择。Ruby 和 Python 都想取代 Perl,解决 Perl 的缺点—
—面向对象不足,但 Python 用是方法是混合面向对象和程序式的程式语言,Ruby
是允许自己这个面向对象语言扮成程序式的 程式语言,[编辑] 多脚本语言的大统一
及疑问 现在各种脚本语言太多了,有必要进行整合,parrot 是一个好的想法。.NE
T 也是好的想法。它为各 种脚本提供了一个统一的虚机,为各种脚本语言提供了基于
“类”的相互调用,为各种脚本提供了统一的类 库。现在各种脚本语言只是提供了
对 C 语言的交互性,这种交互也是费劲的和效果不好的。比如 Python、Perl、Rub
y 等都提供了对 C 的交互功能。脚本语言之间的交流障碍重重。而类似.NET 的东西,提供了 非常容易的各种脚本的相互利用的途径,避免了很多的代码的重复编写。这
种标准平台的力量是很大的,这种标准平台为什么没有在开源领域首先出现呢?众多的脚本正是开源的特点和
优势,为什么这种问题要 微软来解决呢?前面有人提出了类似的问题,在 Linux 中
为什么至今没有好用的类似 ODBC 的东西呢? 可能这种整合只有商业公司有能力实现 吧。我的理解是,如果有创新思想的人都拿他的想法去卖钱了,因此,在开源中只剩
下了模仿的人。kde 是模仿 Windows,koffice 是模仿 office,Linux 是模仿 Unix,gcc、bash 等也全都是模仿,以及 gstep 等,还有 freedos、atheos 等也是模仿,wxWindows、SDL 也是模仿。我想知道开源社区有没有自己 的创新?我所知道的创
新是 zope,但 zope 最初也是商业产品,后来才开源的。Perl 是创新,Python 是
创新,但还有什么呢?是不是开源领域只有 hacker,没有 Creator? [编辑] .
NET
介绍 [编辑] .NET 所实现的 Java 的功能 可控代码 跨平台的虚机和伪码 免费赠
送命令行编译器 纯面向对象语言 对 XML 和 XML web serviCes 的支持 和 jsp 对应 的 asp.NET 网页上的程序 一套统一的中间件环境。asp. NET 跟 jsp 不是同一个
层次上的 web 技术,asp. NET 使用完善的事件响应机制,WinForms 类似的 Web
Form 技术,只有 JSF 跟 Asp.NET 有可比性。[编辑] .NET 未实现的 Java 功能
免费的集成开发环境 多厂家支持,跨平台的成熟度 免费的 IDE,#develop,AS
P.NET 的有 MS 的 WebMatrix 而免费开源的 CLR 实现,有 MS 自己的 XP,FreeBS
D,Mac OS 下的 实现(原理演示不能进行商业应用),Novell 下的 Mono 项目,已经发布了 Beta1 版本,在 2004-6-30 将会发布 Release1; 还有 GNU 的一个.
NET 实现![编辑] .NET 实现的 Java 不具备的功能
多语言支持 强大的集成开
发环境。在 Windows 上媲美本机程序的速度。对 COM 的支持,对 vs 的继承 对
widows form、web form、服务器端程序的图形直观编程。[编辑] 相对 vs6 的改进
统一了集成开发环境,使 C++程序也具有了 vb 的友好性。[编辑] XML 各种技术
介绍 XML: XML 是统一格式的结构化数据的文本文件。基于 XML 的程序,数据结构
是开放的,方便不同程序处理同一种文件,这样,程序之间可以达到高水平的协作。
XML 现在成为了各行各业统一数据格式的基础。XML 发展出了完善的语法,它用 D
TD 或 XMLscheme 来界定 XML 的标记语言。用 uri 来唯一确定 一个 XML 格式。用
page 3 Css 或 XLT 来转换 XML 格式,xlink 和 xpointer 等来建立 XML 的链接,用 xpa
th 来定位 XML 中的数据。xHTML: 是严格符合 XML 格式的 HTML。RDF: 基于 X
ML 的元数据描述语言。方便交换结构化数据。方便交换知识。RDF 是用主语、谓语、宾语来描述知识的。SVG: XML 格式的矢量图形格式。SMILE: XML 格式的各种
多媒体在时间线上的协同。xmath: XML 格式的公式描述语言。
XML-rpC 和 soap: 以 http 协议和 XML 格式来进行网络程序之间的消息通讯
。XUL: netsCape 的 mazilla 使用的程序界面语言,基于 XML 格式,比 HTML 强
大的多的描述图形界面的 XML 语言。它用 Css 来换肤,用 DTD 来实现多语言界面,用 JavasCript 来实现程序逻辑,以此编写跨平台的可方便定制界面的程序,现在这
个程序 API 功能已经很强大了,整个 mazilla 程序就是基于 XUL 的。xaml: MS
在 LongHorn平台的最新编程语言,将统一 Windows 与 Web 编程,直接使用 Lon
gHorn 下的 浏览器进行执行,跟 XUL 有类比性 [编辑] 最先进的 XML 格式图形界
面程序开发工具-XUL 大家知道 netsCape 程序,一个仅次于 ie 得浏览器,也有很
多人知道 Mozilla,netsCape 得开放源 代码版本。但很多人只是使用 Mozilla,不
知道 Mozilla 另一个重要得功能--程序开发。在 netsCape 开放源代码后三年 Mo
zilla 得 1。0 版还没有问世,很多人讥笑他的超慢得开发速度,实际上,Mozilla
酝 酿出了一个超酷得新产品,可以看作是软件开发工具发展得另一个里程碑。现在
基于浏览器得三层开发结构非常流行,微软的.NET 的思路就是基于这个结构得。另
外,不考虑 服务器结构,就是基于网页得 JavaScript 小程序也对人很有吸引力,这
些产品得思路都是以 HTML 为用 户界面,但开发人员常常苦恼于 HTML 太简陋。而
Mozilla 得 XUL 解决了这个问题。XUL 是对 HTML 的扩展,完全兼容于 HTML,X
UL 基于 XML 格式对 HTML 进行了扩展,实现了完整、强大得图形用户界面设计功
能。可以设计出复杂得图形界面程序。实际上 mazilla 整个就是由 XUL 设计的。
XUL 用 Css 来控制界面风格、用 DTD 来替代字符串,方便的实现本地化,用 Java
sCript 来对用户界面 的操作作出反应,提供基本的逻辑编程,JavaScript 通过对象
文档接口 DOM 来动态控制用户界面。同时 JavasCript 通过调用 Mozilla 提供的丰
富的底层 API 来实现强大的功能。Mozilla 提供了功能强大的 API 可以进行文件操
作、网络操作、图形操作等各种操作,并且这种 API 是完全跨平台的。最后,Mozil
la 用 RDF 格式来存储独立于界面的数据。总结:XUL 由于兼容 HTML,提供了最强
大的用户界面的定制,DTD 提供了最方便的本地化。XUL、JavasCript、RDF 提供了
显示、逻辑、数据的分离。Mozilla 的底层 API 提供了跨平台的强大编程能力。希
望大家都来关心 Mozilla。[编辑] 最接近人类语言的编程语言-REBOL REBOL 的详
细资料见 binator
ial Problems 组合问题 Sorting 排序 Searching 查找 Median and Selection 中位
数 Generating Permutations 排列生成 Generating Subsets 子集生成 Generating
Partitions 划分生成 Generating Graphs 图的生成 Calendrical Calculations 日
期 Job Scheduling 工程安排 Satisfiability 可满足性 Graph Problems--polyn
omial 图论-多项式算法 Connected Components 连通分支 Topological Sorting 拓
扑排序
Minimum Spanning Tree 最小生成树 Shortest Path 最短路径 Transitive Cl
osure and Reduction 传递闭包 Matching 匹配 Eulerian Cycle / Chinese Postma
n Euler 回路/中国邮路 Edge and Vertex Connectivity 割边/割点 Network Flow
网络流 Drawing Graphs Nicely 图的描绘 Drawing Trees 树的描绘 Planarity Det
ection and Embedding平面性检测和嵌入 Graph Problems--hard 图论-NP 问题
Clique 最大团 Independent Set 独立集 Vertex Cover 点覆盖 Traveling Salesma n Problem 旅行商问题 Hamiltonian Cycle Hamilton 回路 Graph Partition 图的划
分 Vertex Coloring 点染色 Edge Coloring 边染色 Graph Isomorphism 同构 Stei
ner Tree Steiner 树 Feedback Edge/Vertex Set 最大无环子图 Computational Ge
ometry 计算几何 Convex Hull 凸包 Triangulation 三角剖分 Voronoi Diagrams V
oronoi 图 Nearest Neighbor Search 最近点对查询 Range Search 范围查询 Point
Location 位置查询 Intersection Detection 碰撞测试 Bin Packing 装箱问题 Me
page 6 dial-Axis Transformation 中轴变换 Polygon Partitioning 多边形分割 Simplify
ing Polygons 多边形化简 Shape Similarity 相似多边形 Motion Planning 运动规
划 Maintaining Line Arrangements平面分割 Minkowski Sum Minkowski 和 Set a
nd String Problems 集合与串的问题 Set Cover 集合覆盖 Set Packing 集合配置
String Matching 模式匹配 Approximate String Matching 模糊匹配 Text Compres
sion 压缩
Cryptography 密码 Finite State Machine Minimization 有穷自动机简化 Lo
ngest Common Substring 最长公共子串 Shortest Common Superstring 最短公共父
串 DP——Dynamic Programming——动态规划 recursion —— 递归 编程词汇 A2A
integration A2A 整合 abstract 抽象的 abstract base class(ABC)抽象基类 abs
tract class 抽象类 abstraction 抽象、抽象物、抽象性 access 存取、访问 acce
ss level 访问级别 access function 访问函数 account 账户 action active 动作
活动的 activate 激活 actual parameter 实参 adapter 适配器 add-in 插件 add
ress 地址 address space 地址空间 address-of operator 取地址操作符 ADL(arg
ument-dependent lookup)ADO(ActiveX Data Object)ActiveX 数据对象 advanced
高级的 aggregation 聚合、聚集 algorithm 算法 alias 别名 align 排列、对齐 a llocate 分配、配置 allocator 分配器、配置器 angle bracket 尖括号 annotatio
n 注解、评注 API(Application Programming Interface)应用(程序)编程接口 ap
p domain(application domain)应用域 application 应用、应用程序 application
framework 应用程序框架 appearance 外观 append 附加 architecture 架构、体系
结构
archive file 归档文件、存档文件 argument 引数(传给函式的值)。参见 par
ameter array 数组 arrow operator 箭头操作符 ASP(Active Server Page)活动服务
器页面 ASP.NET worker process ASP.NET 工作者进程 assembly 装配件、配件 汇编
语言 装配件清单 assembly language assembly manifest assert(ion)断言 assig
n 赋值 assignment 赋值、分配 assignment operator 赋值操作符 associated 相关 的、相关联的 associative container 关联式容器(对应 sequential container)a
synchronous 异步的 atomic attribute 原子的 原子操作 特性、属性 atomic oper
ation authentication service 验证服务 authorization 授权 audio A.I.音频 人
工智能 背景、后台(进程)向后兼容、向下兼容
B2B integration B2B 整合、B2B 集成(business-to-business integration)
background backup 备份 backward compatible backup device 备份设备 backup f
ile 备份文件 bandwidth 带宽 base class 基类 base type 基类型 batch 批处理
BCL(base class library)基类库 binary 二进制 binary search 二分查找 binary
tree 二叉树 binary function 双参函数 binary large object 二进制大对象 bin
ary operator 二元操作符 binding 绑定 bit 位 bitmap 位图 bitwise 按位⋯.bitwise copy 为单元进行复制;位元逐一复制,按位拷
bitwise operation 按位运算 block 块、区块、语句块 bookkeeping 簿记 bo
olean 布林值(真假值,true 或 false)border 边框 bounds checking 边界检查 b oxing 装箱、装箱转换 brace(curly brace)大括号、花括号 bracket(square br
akcet)中括号、方括号 breakpoint 断点 browser applications 浏览器应用(程序)browser-accessible application 可经由浏览器访问的应用程序 build 编连(专指
编译和连接 built-in 内建、内置 bus 总线 business 业务、商务(看场合)busine
ss Logic 业务逻辑 business rules 业务规则 buttons 按钮 bug 臭虫 by/through
通过 byte 位元组(由 8 bits 组成)cache 高速缓存 calendar 日历 call 调用 c
allback 回调 call-level interface(CLI)调用级接口(CLI)call operator 调用操
作符 candidate key 候选键(for database)cascading delete 级联删除(for da
tabase)cascading update 级联更新(for database)casting catalog chain 转型、造型转换 目录 链(function calls)character 字符 character format 字符格式 character set 字符集 CHECK c
page 7 onstraints CHECK 约束(for database)checkpoint 检查点(for database)chec
k box 复选框 check button 复选按钮 child class 子类 CIL(common intermedia
te language)通用中间语言、通用中介语言
class 类 类定义 类厂 类库 类装载器 类模板 类模板特化
class declaration 类声明 class definition class factory class library
class loader class template class derivation list 类继承列表 class hierar
chy 类层次结构
class template partial specializations 类模板部分特化 class template
specializations classification 分类 clause 子句 client application 客户端应
用程序 client cursor 客户端游标(for database)code page 代码页 cleanup 清
理、清除 通用语言基础设施 CLI(Common Language Infrastructure)client 客户、客户端 client area 客户区 client-server 客户机/服务器、客户端/服务器 cli pboard 剪贴板 clone 克隆 CLS(common language specification)通用语言规范
code access security 代码访问安全 COFF(Common Object File Format)collect
ion 集合 COM(Component Object Model)组件对象模型 combo box 组合框 comman
d line 命令行 comment 注释 commit 提交(for database)communication 通讯 c
ompatible 兼容 compile time 编译期、编译时 compiler 编译器 component 组件
composite index 复合索引、组合索引(for database)composite key 复合键、组
合键(for database)composition concept 概念 concrete 具体的 concrete clas
s 具体类 concurrency 并发、并发机制 复合、组合 通用对象文件格式 constraint 约束(for database)configuration 配置、组态 connection co
nsole constant 连接(for database)connection pooling 连接池 控制台 常量 construct 构件、成分、概念、构造(for language)constructor(ctor)构
造函数、构造器 container 容器 containment 包容 context 环境、上下文 contro
l 控件 cookie(不译)copy CORBA cover 拷贝 通用对象请求中介架构(Common Obj
ect Request Broker Architecture)覆盖、涵盖 创建、生成 交叉表查询(for dat
abase)create/creation crosstab query CRTP(curiously recurring template pattern)CTS(common type system)通
用类型系统 cube 多维数据集(for database)cursor 光标 cursor 游标(for dat
abase)custom 定制、自定义 data 数据 数据连接(for database)data connecti
on Data Control Language(DCL)数据控制语言(DCL)(for database)Data Def
inition Language(DDL)数据定义语言(DDL)(for database)data dictionary 数
据字典(for database)data dictionary view 数据字典视图(for database)dat
a file 数据文件(for database)data integrity 数据完整性(for database)da
ta manipulation language(DML)数据操作语言(DML)(for database)data mart 数
据集市(for database)data pump 数据抽取(for database)data scrubbing 数据
清理(for database)data source 数据源(for database)数据仓库(for databa
se)Data source name(DSN)数据源名称(DSN)(for database)data warehouse d
ataset 数据集(for database)database 数据库(for database)database catalog 数据库目录(for datab
ase)database diagram 数据关系图(for database)database file 数据库文件(for database)database object database owner database role 数据库对象(for database)数据库所有者(for database)数据库角色(for
database)database project 数据库工程(for database)database schema 数据库模式、数据库架构(for database)database script 数据库脚本(for database)data
-bound data member dataset data source data table datagram 数据绑定(for d
atabase)数据成员、成员变量 数据源(for database)数据表(for database)数
page 8 据报文 data-aware control 数据感知控件(for database)数据集(for database)data structure 数据结构
DBMS(database management system)数据库管理系统(for database)DCOM(distributed COM)分布式 COM dead lock 死锁(for database)deallocate 归还 d
ebug debugger decay 调试 调试器 退化
decision support 决策支持 declaration 声明 declarative referential in
tegrity(DRI)声明引用完整性(DRI)(for database)deduction 推导 DEFAULT con
straint 默认约束(for database)default database 默认数据库(for database)
default instance 默认实例(for database)default result set 默认结果集(f
or database)default defer delegate 缺省、默认值 推迟 委托 definition 定义 delegation 委托 dependent name deploy 部署 dereferenc
e 解引用 dereference operator(提领)运算子 derived class 派生类 design by
contract 契约式设计 design pattern 设计模式 destroy device 销毁 设备 destr
uctor(dtor)析构函数、析构器
DHTML(dynamic HyperText Markup Language)动态超文本标记语言 dialog di
gest 对话框 摘要
digital 数字的 DIME(Direct Internet Message Encapsulation)直接 Inter
net 消息封装 directive(编译)指示符 directory 目录 dirty pages 脏页(for d
atabase)dirty read 脏读(for database)disassembler 反汇编器 DISCO(Disco
very of Web Services)Web Services 的查找 disk 盘 dispatch 调度、分派、派发
(我喜欢“调度”)DISPID(Dispatch Identifier)分派标识符 distributed comp
uting 分布式计算 distributed query document 文档 DOM(Document Object Mode
l)文档对象模型dot operator(圆)点操作符 driver 驱动(程序)DTD(document ty
pe definition)文档类型定义 double-byte character set(DBCS)双字节字符集(D
BCS)dump 转储 动态游标(for database)动态筛选(for database)动态锁定(f
or database)dump file 转储文件 dynamic cursor dynamic filter dynamic lock
ing 分布式查询(for database)DNA(Distributed interNet Application)分布式
网间应用程序
dynamic recovery 动态恢复(for database)dynamic snapshot 动态快照(f
or database)dynamic SQL statements 动态 SQL 语句(for database)dynamic a
ssembly 动态装配件、动态配件 dynamic binding 动态绑定 EAI(enterprise appl
ication integration)企业应用程序集成(整合)EBCO(empty base class optimiza
tion)e-business 电子商务 空基类优化(机制)
EDI(Dlectronic Data Interchange)电子数据交换 efficiency 效率 efficie nt 高效 end-to-end authentication 端对端身份验证 end user 最终用户 engine
引擎 封装 entity 实体 encapsulation enclosing class 外围类别(与巢状类别 nested class 有关)enum(enumerat
ion)枚举 enumerators 枚举成员、枚举器 equal equality error log 相等 相等性
错误日志(for database)equality operator 等号操作符 escape code 转义码 escape character 转义
符、转义字符 exclusive lock evaluate 评估 event 事件 event driven 事件驱动 的 event handler 事件处理器 evidence 证据 exception 异常 exception declara
tion 异常声明 exception handling 异常处理、异常处理机制 exception-safe 异常
安全的 exception specification 异常规范 exit 退出 explicit 显式 explicit s
pecialization 显式特化 export facility feature fetch 提取 field 字段(java)
field 字段(for database)field length 字段长度(for database)file 文件
filter 筛选(for database)finalization 终结 firewall 防火墙 finalizer 终结
器 firmware 固件 flag 标记 flash memory 闪存 flush 刷新 font 字体 foreign
key(FK)外键(FK)(for database)导出 设施、设备 特性、特征 expression 表达
式 fat client 胖客户端 排它锁(for database)explicit transaction 显式事务
(for database)page 9 form 窗体
formal parameter 形参 forward declaration 前置声明 forward-only 只向前 的 forward-only cursor 只向前游标(for database)fragmentation 碎片(for d
atabase)framework 框架 full specialization 完全特化 function 函数 functio
n call operator(即 operator())函数调用操作符 function object 函数对象 f
unction overloaded resolution 函数重载决议 functionality functor 仿函数 GA C(global assembly cache)全局装配件缓存、全局配件缓存 GC(Garbage collect
ion)game 游戏 generate 生成 generic 泛化的、一般化的、通用的 generic algo
rithm 通用算法 genericity 泛型 getter(相对于 setter)取值函数 global 全局的
global object 全局对象 global scope resolution operator 全局范围解析操作符
grant group group box GUI 授权(for database)组、群 分组框 图形界面 握手
granularity 粒度 垃圾回收(机制)、垃圾收集(机制)功能 function template 函
数模板
GUID(Globally Unique Identifier)全球唯一标识符 hand shaking handle
handler 句柄 处理器
hard-coded 硬编码的 hard-copy 截屏图 hard disk 硬盘 hardware 硬件 has
h table 散列表、哈希表 header file 头文件 heap 堆 help file 帮助文件 hiera
rchy 层次结构、继承体系
hierarchical data 阶层式数据、层次式数据 hook 钩子 热键 Host(applica
tion)宿主(应用程序)hot key hyperlink 超链接 HTML(HyperText Markup Langua
ge)超文本标记语言 HTTP pipeline HTTP 管道 HTTP(HyperText Transfer Protoc
ol)超文本传输协议 icon 图标 接口定义语言 IDE(Integrated Development Envi
ronment)集成开发环境 IDL(Interface Definition Language)identifier 标识符
idle time 空闲时间 if and only if 当且仅当 IL(Intermediate Language)中间
语言、中介语言 image 图象 IME 输入法 直接基类 直接派生类 immediate base im
mediate derived immediate updating 即时更新(for database)implicit transaction 隐式事
务(for database)incremental update 增量更新(for database)index impleme
nt implicit import infinite loop information infrastructure inheritance in
line initialization initialize inner join instance instantiated instantiat ion integrate 索引(for database)实现 隐式 导入 无限循环 信息 基础设施 继
承、继承机制 内联 初始化 初始化 内联接(for database)实例 具现化、实体化(常应用于 template)具现体、具现化实体(常应用于 template)集成、整合 implementation 实现、实现品
increment operator 增加操作符 infinite recursive 无限递归
inline expansion 内联展开 initialization list 初始化列表、初始值列表 in-place active 现场激活 integrity 完整性、一致性
integrity constraint 完整性约束(for database)interprocess communica
tion(IPC)进程间通讯(IPC)interacts 交互 interface 接口 for GUI 界面 inter
operability 互操作性、互操作能力 interpreter invariants invoke iterate 解释
器 不变性 调用 迭代 introspection 自省
isolation level 隔离级别(for database)iterative 反复的、迭代的 iter
ator 迭代器 iteration 迭代(回圈每次轮回称为一个 iteration)item key laser
项、条款、项目 键(for database)键列(for database)激光 JIT compilation
JIT 编译 即时编译 key column late binding 迟绑定 left outer join 左向外联接(for database)level l
ibrary lifetime link linkage linker list 阶、层例 库 生命期、寿命 连接、链
接 连接、链接 连接器、链接器 high level 高阶、高层
literal constant 字面常数 列表、表、链表 list box 列表框 livelock 活锁
page 10(for database)load 装载、加载 load balancing 负载平衡 loader 装载器、载入
器 local 局部的 local object lock 锁 log 日志 login 登录 login security mo
de 登录安全模式(for database)lookup table 查找表(for database)局部对象
loop lvalue macro maintain 循环 左值 机器码、机器代码 宏 维护
loose coupling 松散耦合 machine code managed code 受控代码、托管代码 Managed Extensions 受控扩充件、托管扩 展 managed object 受控对象、托管对象 mangled name manifest 清单 manipulato
r 操纵器(iostream 预先定义的一种东西)many-to-many relationship 多对多关系
(for database)many-to-one relationship 多对一关系(for database)marshal
列集 member 成员 成员取用运算子(有 dot 和 arrow 两种)成员函数 member acc
ess operator member function member initialization list 成员初始值列表 memberwise 以 member 为单元
⋯、members 逐一⋯memberwise copy memory menu 内存 菜单 memory leak 内存泄
漏 message 消息 message based 基于消息的 message loop 消息环 message queui
ng 消息队列 metadata 元数据 metaprogramming 元编程 method 方法 micro 微 mi
ddleware 中间件 middle tier 中间层 modeling 建模 modeling language 建模语言
modifier 修饰字、修饰符 modem module mouse mutex 调制解调器 模块 鼠标 互斥
元、互斥体 多维 OLAP(MOLAP)(for database)most derived class 最底层的派生类 mutable 可变的 multidimensional OLA
P(MOLAP)multithreaded server application 多线程服务器应用程序 multiuser multi
-tasking multi-thread 多用户 多任务 多线程 命名参数
multicast delegate 组播委托、多点委托 named parameter namespace nativ
e named pipe 命名管道 名字空间、命名空间 原生的、本地的
native code 本地码、本机码 Native Image Generator(NGEN)本地映像生成器
nested class 嵌套类 nested query 嵌套查询(for database)nested table 嵌套
表(for database)network 网络 network card 网卡 nondependent name object
object file 对象 目标文件 object based 基于对象的 object model 对象模型 ob
ject oriented 面向对象的 object pooling 对象池化 ODBC data source ODBC 数据
源(for database)ODBC driver ODBC 驱动程序(for database)OLE 自动化对象
(for database)OLE 自动化服务器(for database)ODR(one-definition rule)OLE Automation objects OLE Automation serve r OLE DB consumer OLE DB 使用者(for database)OLE DB for OLAP 用于 OLA
P 的 OLE DB(for database)OLE DB provider OLE DB 提供者(for database)on
e-to-many relationship 一对多关系(for database)one-to-one relationship 一
对一关系(for database)online analytical processing(OLAP)online redo lo
g online transaction processing(OLTP)Open Data Services(ODS)operand 操
作数 联机分析处理(OLAP)(for database)联机事务处理(OLTP)(for database)联
机重做日志(for database)开放式数据服务(ODS)(for database)Open Database Connectivity(ODBC)开放式数据库连接(ODBC)(for databas
e)operating system(OS)操作系统 operation 操作 operator option 操作符、运
算符 选项
optimizer 优化器
outer join 外联接(for database)overflow overhead overload 上限溢位(相对于 underflow)额外开销 重载 重载决议 重载的函数 overload resolution overloaded function override package palette para
llel overloaded operator 被重载的操作符 覆写、重载、重新定义 包 调色板 并行
page 11 packaging 打包
parameter 参数、形式参数、形参 parameter list 参数列表 parameterize p
arent class parentheses parse parser part 解析 解析器 零件、部件 传址(函式
引数的传递方式)(非正式用语)参数化 父类 圆括弧、圆括号
partial specialization 局部特化 pass by address pass by reference 传地
址、按引用传递 pass by value 按值传递 pattern 模式 可移植可执行文件 PDA(p
ersonal digital assistant)个人数字助理 PE(Portable Executable)file perfo
rmance persistence pixel 像素 placement delete placement new placeholder 占
位符 platform平台 性能 持久性
PInvoke(platform invoke service)平台调用服务
POD(plain old data(type))POI(point of instantiation)pointer 指针
poll 轮询 pooling 池化 polymorphism 多态 pop up port postfix 弹出式 端口
后缀
precedence 优先序(通常用于运算子的优先执行次序)prefix 前缀 预处理器
主表(for database)preprocessor primary table primary key(PK)主键(PK)(for database)primary template 原始模板 pri
mitive type 原始类型 print printer 打印 打印机
procedure 过程 procedural 过程式的、过程化的 process profile profiler
program 进程 评测 效能(性能)评测器 程序
programmer 程序员 programming 编程、程序设计 progress bar 进度指示器
project property protocol 项目、工程 属性 协议
pseudo code 伪码 qualified 经过资格修饰(例如加上 scope 运算子)qualif
ied name qualifier 修饰符 quality queue radian radio button raise range ra
nk raw 质量 队列 弧度 单选按钮 引发(常用来表示发出一个 exception)范围、区
间 等级 未经处理的
race condition 竞争条件(多线程环境常用语)random number 随机数
readOnly 只读 record 记录(for database)recordset 记录集(for databa
se recursive 递归 re-direction 重定向 refactoring refer 重构 引用、参考 reference 引用、参考 reference counting 引用计数
referential integrity(RI)引用完整性(RI)(for database)register refl
ection 寄存器 反射
refresh data 刷新数据(for database)regular expression 正则表达式 re
lational database 关系数据库 remote represent resolve resolution result se
t return return type return value revoke robust robustness roll back routi
ne row row lock rowset 远程 表述,表现 解析、决议 解析过程 结果集(for dat abase)返回 返回类型 返回值 remote request 远程请求
retrieve data 检索数据
right outer join 右向外联接(for database)撤销 健壮 健壮性 回滚(for
database)例程 行(for database)行锁(for database)行集(for database)roll forward 前滚(for database)RPC(remote procedure call)RPC(远程过程调用)runtime 执行期、运行期、执行时、运行时 rvalue 右值 save 保存 savepoint 保存点(for database)SAX(Simple API for XML)scalable 可伸缩的、可扩展的 schedule 调度 scheduler 调
度程序 schema scope 模式、纲目结构 作用域、生存空间 scroll bar 滚动条 scop
e operator 生存空间操作符 scope resolution operator 生存空间解析操作符 scr
een 屏幕 SDK(Software Development Kit)软件开发包 sealed class 密封类 sear
ch 查找
semantics 语义 semaphore 信号量 sequential container 序列式容器 serve
r serial 服务器、服务端 串行
serialization/serialize 序列化 server cursor 服务端游标、服务器游标(for database)session setter sibling signature slider 滑块 slot 槽 smart p
page 12 ointer 智能指针 SMTP(Simple Mail Transfer Protocol)snapshot snapshot 截屏
图 快照(for database)简单邮件传输协议 会话(for database)设值函数 同级
签名
shared lock 共享锁(for database)side effect 副作用 single-threaded
单线程
specialization 特化 specification 规范、规格 splitter software source
code 切分窗口 简单对象访问协议 软件 源码、源代码 SOAP(simple object acce
ss protocol)SQL(Structured Query Language)结构化查询语言(for database)stack 栈、堆栈 stack unwinding 叠辗转开解(此词用于 exception 主题)standard librar y 标准库 standard template library 标准模板库 stateless 无状态的 statement
语句、声明 static cursor 静态游标(for database)static SQL statements 静
态 SQL 语句(for database)stored procedure 存储过程(for database)status
bar 状态条 stream string stub 流 字符串 存根
subobject 子对象 subquery 子查询(for database)subroutine 子例程 sub
script operator 下标操作符 subset 子集
subtype 子类型 support 支持 suspend 挂起 symbol syntax 记号 语法 系统
数据库(for database)系统表(for database)system databases system tables table 表(for database)table lock 表锁(for database)table-level constraint 表级约束(for d
atabase)tape backup 磁带备份(for database)target 标的,目标 task switch
工作切换 TCP(Transport Control Protocol)template template-id template ar
gument deduction template parameter 模板参数 模板参数推导 template explici
t specialization 模板显式特化 模板 传输控制协议
template template parameter temporary object 临时对象 temporary table
临时表(for database)text 文本 text file 文本文件 thin client 瘦客户端 t
hird-party 第三方 thread 线程 thread-safe 线程安全的 throw 抛出、引发(常指
发出一个 exception)token 符号、标记、令牌(看场合)trace 跟踪 transactio
n 事务(for database)transaction log 事务日志(for database)transaction
rollback 事务回滚(for database)transactional replication 事务复制(for d
atabase)translation unit 翻译单元 traverse 遍历 trigger 触发器(for datab
ase)two-phase commit 两阶段提交(for database)tuple two-phase lookup 两阶
段查找 type 类型 UDDI(Universary Description, Discovery and Integration)统 一描述、查询与集成
UML(unified modeling language)统一建模语言 unary function 单参函数 u
nary operator 一元操作符 unboxing underflow Union query unique index unmar
shal unqualified 拆箱、拆箱转换 下限溢位(相对于 overflow)联合查询(for da
tabase)唯一索引(for database)散集 未经限定的、未经修饰的 统一资源定位器
UNIQUE constraints UNIQUE 约束(for database)unmanaged code 非受控代
码、非托管代码
URI(Uniform Resource identifier)统一资源标识符 URL(Uniform Resourc
e Locator)user 用户 user interface 用户界面 value types 值类型 variable 变
量 vector viable video view 向量(一种容器,有点类似 array)可行的 视频 视图
VEE(Virtual Execution Engine)虚拟执行引擎 vendor 厂商 view 视图(for
database)虚拟机 虚拟内存 web 服务 WHERE 子句(for database)通配符搜索(for database)窗口 窗口函数 窗口过程 virtual function 虚函数 virtual machi
ne virtual memory vowel Web Services WHERE clause wildcard search window w
page 13 indow function window procedure wizard 向导 word 单词 包装、包装器 word pr
ocessor 字处理器 wrapper write enable 写启用(for database)write-ahead lo
g 预写日志(for database)write-only 只写 WSDL(Web Service Description La
nguage)Web Service 描述语言
元音字母
wildcard characters 通配符字符(for database)Windows authentication Windows 身份验证
XML Message Interface(XMI)XSD(XML Schema Definition)XML 消息接口 XML 模式定义语言
XML(eXtensible Markup Language)可扩展标记语言 XSL(eXtensible Style
sheet Language)可扩展样式表语言 XSLT(eXtensible Stylesheet Language Tran
sformation)可扩展样式表语言转换 xxx based 基于 xxx 的 xxx oriented 面向 xx
鉴赏语言·悟觉语言·内化语言 第3篇
经过习得和小学初中的语文训练,高中学生已经具备了一定的语言审美能力。根据青少年生理、心理、思维发展规律以及语言、语文学习规律,高中语文教学的重要任务之一就是在学生已经形成和具备的语言审美能力的基础上迅速提高其语言鉴别、欣赏能力。
“立鹄的易,而所以中鹄的难。”确立一个目标是相对简单的,而要达到目标却是相对较难的。既然我们已经确立了提高学生的语言鉴赏能力为高中语文教学的一大目标,那么,怎样有效提高学生鉴赏语言的能力及水平?俗话说得好,不怕不识货,就怕货比货。只有对比,才会有鉴别;只有鉴别,才会有欣赏。不言而喻,“对比”是良方。怎样对比?现成有个好例子。钱钟书先生曾对比王世贞的《归有光赞》的两种版本,最终考证出《归有光赞》曾受钱谦益篡改(见《谈艺录》)。王《赞》原为“风行水上,涣为文章。当其风止,与水相忘。剪缀帖括,藻粉铺张。江左以还,极于陈梁。千载有公,继韩欧阳。余岂异趋,久而始伤”。钱谦益将《赞》中末句“久而始伤”之“始”篡改为“自”。钱钟书先生以为:“一字之差,词气迥异。‘始伤’者,方知震川(归有光)之不易得,九原不作,赏音恨晚也。‘自伤’者,深悔己之迷途狂走,闻道已迟,嗟怅何及也。”用现代文来说,“始伤”是说王“能识归有光的异量之美,认为归有光的学习韩愈、欧阳修,与自己学问门径不同,但同以学习《史记》《汉书》为归宿,这点起初不认识,这时开始认识,因而伤悼他”,其意“不过表示赏识他而已”;“自伤”“是伤自己迷途狂走,开道已迟”,其意在于自贬。这一字篡改,关系重大:它涉及王世贞对自己的评论,涉及王世贞对归有光的评价,也涉及后人对钱谦益文品、人品的评判。从上例中,我们可以见出钱钟书先生的“求思之深”和出乎其类拔乎其萃的语感,也可以悟到鉴赏语言的重要性和些须门径。这种对比研读称之为校勘对比。校勘对比的材料并非可遇不可求。佳例所在皆是:白居易《琵琶行》“间关莺语花底滑,幽咽泉流冰下难”句“冰下难”一作“水下滩”,苏轼《念奴娇·赤壁怀古》“谈笑间,樯橹灰飞烟灭”句“樯橹”一作“强虏”,杜甫《阁夜》“野哭千家闻战伐,夷歌数处起渔樵”句“千家”一作“几家”。以上材料都可用来对比研读,以提高学生语言鉴赏能力。
个别文字的校勘之上是文本版本的鉴别。名著多有名译,并且往往有多种名译。譬如,培根的《论读书》,国内就有水天同、王佐良、高健、何新、东旭、王义国、张毅等多种译本;英国布莱克的名诗《虎》,国内有徐志摩、郭沫若、卞之琳、陆永庭、宋雪亭、施颖洲、张炽恒等多种译本;奥地利里尔克的名诗《豹》,国内也有冯至、绿原、陈敬容等多种译本;恩格斯《在马克思墓前的讲话》则有中央编译所1972年与1995年两种译本。将同一文章的不同版本加以对比阅读,如前人所说,就像讼师听讼,是能迅速提高自己的鉴别判断能力的。有外语基础的学生,将外语原文同译文对比阅读欣赏,可能会收到更加妙不可言的效果。同理,将文言文与现代汉语译文对比阅读欣赏,也有相同的作用。
用各种对比方法提高鉴赏语言能力,就如老僧的面壁参禅苦修,目的是为了一朝顿悟成佛——悟觉语言。用王国维的人生三境界说,鉴赏语言只是处在“衣带渐宽终不悔,为伊消得人憔悴”的初级阶段,悟觉语言则是处在“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处”的中级阶段。确实,悟觉语言就是“明月出海底,一朝开光耀”的豁然。语言魅力突如其来,我们无须反复斟酌,再三思量。《红楼梦》中贾雨村“偶至郭外”,“至一山环水旋、茂林深竹之处,隐隐的有座庙宇,门巷倾颓,墙垣朽败”,“门旁又有一副旧破的对联,曰:‘身后有余忘缩手,眼前无路想回头。’”贾雨村顿时悟觉:“这两句话,文虽浅近,其意则深。我也曾游过些名山大刹,倒不曾见过这话头,其中想必有个翻过筋斗来的亦未可知,何不进去试试。”对语言的敏感,加上自己的阅历,使得贾雨村能准确解读这一对联。同样“牡丹亭艳曲警芳心”中林黛玉对曲词“原来姹紫嫣红开遍,似这般都付与断井颓垣。良辰美景奈何天,赏心乐事谁家院。则为你如花美眷,似水流年,你在幽闺自怜”“如醉如痴”,几乎不能自持“站立不住”,也是对语言的高度悟觉。这种例子现实社会中所在皆有。商友敬先生述及,他曾经为上海老年大学学员讲解苏轼《江城子》(十年生死两茫茫),朗读甫毕,就见一老人泪珠滚滚而下。原来,苏轼的《江城子》让他想起了过世的老伴。看到或听到某些文辞,往事、感情蓦然涌上心头,不须反复咀嚼品味,就能体悟文辞的感情、思想、意境,这就是悟觉语言。对语言的悟觉,往往需要生活阅历作为底子,高中生生活阅历较浅,很难达到这种境界,但直接经验的缺乏可以用间接经验弥补。高中生多读文学作品,用心琢磨,是可以形成较好的语感,从而达到悟觉语言的地步的。
对语言的悟觉有时可以以另一种形式出现,那就是将自己的某种感触借他人语言表达出来,以他人之文发抒我之心情。谢冕在《诗歌欣赏的准备》中讲到,他年轻时登镇江的金山,“长江浩浩从眼底流逝,我心中激动,却苦于无以形容。这时,眼前赫然跃出一副对联——江流天地外,山色有无中。它带给我以极大的愉悦。它完成了眼前景与心中情的最忠实、精彩的表达”。语言的悟觉能力,可以给我们在欣赏名胜古迹以及其他艺术方面带来极大的方便。“借他人酒杯浇自己胸中块垒”正是古人对此的说明。
能够鉴赏、悟觉语言,不是我们高中语文学习的终极目标。我们的终极目标是能够将优美的语言内化为自己的修养、气质乃至生命。我们不能仅仅遥望前人的遗产,赞美、欣赏前人的遗产,我们应该自己创造出自己的美丽来。这里涉及到语言的应用问题。事实上,我们的考试正在逐步将语言的内化列入考查的重点。怎样使我们的语言表达(包括口头表达和书面表达)得更精美,是我们每一个语文学习者要经常思考的问题。语文成绩不一定能反映语文素质,但语文素质却能反映人文素质。我们现在的考试努力将三者形成正关联。学习的目标应是我们考核的目标。当然,优美语言的内化并不仅仅是做几道语言应用题。文雅的谈吐,流畅的阐述,逻辑严密的书写,都是我们要努力做到的。我们记忆许多名篇,背诵许多名句,本身就是希望用此改变自己的用语模式,提升自己的表述能力,升华自己的表达水平。王尚文先生自述儿时听祖父与客人谈话,得知客人的亲人曾一度得病甚重,急欲了解病人结局,便贸然问道:“人死了吗?”客人走后,祖父郑重告诉,问话不能这样问,“如果你问——病人最后好了吧?你也会得到你想要知道的情况。但这样得体多了,客人就不会心里生气难过了”。儿时的王尚文先生没有将语言运用内化,而祖父的郑重教诲,正是督促王先生将语言内化为自己的生活。将优美语言内化,有助于提升我们的言语交际、交流质量。
高中阶段,正是青少年走向成人的重要时期。高中学生除了要有生理、心理、智识的“入世”准备,还应该有“语言”的“入世”准备。一个社会的人,听人讲话、看人为文,应该闻弦歌而知雅意;一个社会的人,对人说话、为人作文,应该曲其笔而直其意。高中生,应该在语言运用上,与社会接轨。我们提倡高中语文教学应以提高学生鉴赏语言能力、悟觉语言能力、内化语言能力为重点目标,正是基于对学生“语言入世”的重视。而上述三种能力,又是语文学习中听说读写能力的综合体现。
程序的性能与编程语言 第4篇
软件的质量可以站在不同的角度来考虑:从用户的角度主要体现为软件的功能性、可靠性、易使用性等;从开发人员的角度主要体现为软件的可维护性、可移植性和可复用性。对于大型应用系统而言, 系统的性能显得极为重要。这里的性能主要指稳定性和效率。功能再强, 而性能很差, 频繁宕机, 系统便失去了可用性。因此性能设计是软件中必不可少的组成部分, 检验性能设计效果的过程需要测试或试运行。
设计程序性能首先必须了解性能目标, 例如数据的存储及并发访问量和网络状况等。如果系统需要在不同的环境下运行, 那么还必须注意环境之间的差异。分析用户的性能目标就是要明确可靠性、可用性、效率、可维护性、可移植性等不同的质量属性的重要级别, 按照重要程度从高到低排序, 优先解决那些重要程度较高的问题, 并运用各种技术管理手段进行实现。软件的质量性能指标, 目前国家标准和国际标准仅有框架性要求, 而未提出具体指标。因此软件性能的检验, 即测试过程, 还需依据行业长时间的技术沉淀确定的行业通用指标进行。
1 编程语言对程序性能的影响因素
提高软件质量性能的因素包括管理因素、技术因素和辅助开发工具。技术因素包括软件分析、设计、实现的技术方法, 如软件的编程实现语言。
编程语言对程序的影响首先可以反映在复杂数据结构的表达及数据处理上。以散列表为例, 某一马尔可夫链问题, 由前缀pref和多个由前缀决定的后缀suf组成的状态state集合, statetab[]用散列表表示, 如果用c语言定义此数据结构如下:
可见数据结构的定义是十分复杂的, 若想对散列表进行建立及查询操作等, 还需要自己定义繁琐的操作。如此复杂的操作会影响到程序的可靠性。
如果用Java来实现这个数据结构并进行数据的处理就容易多了。由于Java提供比c语言丰富的类库, 对于以上问题用容器类Vector和Hashtable类就可解决数据定义和处理的问题。容器类Vector提供一种动态增长的数组, 可以存储任何Object类型的东西;Hashtable类允许以任何类型的对象作为关键码, 存储或提取某种类型的值。散列表数组直接可以用Hashtable类进行定义Hashtable statetab=new Hashtable () ;, 前缀只需定义类Prefix, 并在其中说明为Vector容器类:public Vector pref;。对前缀取后缀的操作直接用Hashtable类提供的get方法和put方法实现。
如果用C++处理这个问题, 则可以用双端队列deque容器实现前缀, 用map容器存储关键码-值对的作用实现散列表, 而不必写任何处理的代码。有关问题的前缀和散列表的定义分别如下:
由以上几种语言的对比可以看出, 应用Java和C++提供的组件, 相关的代码可以很流畅地写出来, 提高了编程的效率。相比于c语言, 面向对象的Java和C++使用的类也提高了程序的可维护性。具体的可维护性效果还要根据类加权方法数, 继承树深度, 子类数, 对象类间耦合数、类的响应以及方法的内聚缺乏度等进行度量。
程序性能的另一个重要性能是程序的时间性能, 虽然Java和C++程序的编程效率高, 但执行的时间效能反而不如c语言。对程序时间性能的改善首先要找到程序可能的性能瓶颈, 这些瓶颈是性能设计的关键部位。应着重找出那些被频繁访问或运行复杂数据处理的部分, 改进这些部分设计可以达到事半功倍的效果。在unix类系统中, 可以将一个程序指定为time命令的参数, 以获取该程序执行完所需的用户时间、系统时间及实际时间。在windows系统中, taskmgr任务管理器命令可以列出进程的CPU时间。
程序的移植性问题很多是由编程语言的麻烦特征引起的。其中之一是对基本数据类型的定义。在c和C++里, 基本的数据类型的大小并没有明确的定义, 只规定char至少8位, short和in至少16位, long至少应该是32位, 并满足如下的规则:
标准里有意遗留下的定义, 通常是给写编译系统的人留下更大的自由度, 但程序在不同的编译系统运行就会产生不同的结果, 带来可移植性的问题。相比较任意一个JAVA程序, 不论它运行在何种CPU、操作系统或JAVA编译器上, 都将产生同样的结果。Java对所有的基本数据类型都明确的定义了大小, byte是8位, char和short是16位等。Java作为编程语言实现了源代码的可移植性。
程序的可靠性有些由程序与外界交换数据的接口问题造成, 如没有正确地检测函数的返回值, 比如因为malloc函数的缺陷, 会造成申请空间失败而程序没有进行相应处理的错误。因此使用emalloc函数代替是明智的。其他的问题如在求值顺序上, c和C++也没有Java定义的明确, 也会产生副作用。因此使用运算符的表达式都应该加上括号, 明确优先级。其他的有关可靠性的容错及并发与时序等问题, Java语言提供的异常处理机制及线程编程模式的排他性同步exclusion synchronization和使用wait和notify方法的条件同步condition synchronization对程序的可靠性也提供了很好的解决方法。
程序的安全性方面, 在检查c/C++代码时, 最常见的安全漏洞就是缓冲区溢出 (buffer overflow) 。对已经被利用的安全漏洞所做的分析表明, 多达50%的漏洞源于缓冲区溢出。缓冲区溢出产生的原因是粗心的代码在特定数据结构的范围之外进行写入操作。这种安全漏洞可以使程序运行时产生不可重现的错误, 这种非确定性的错误行为是最难对付的, 会给排错工作带来困惑。
不管使用何种语言, 不小心的话都会出现这种问题。在c C++程序中这个问题尤为严重, 因为当前大多数c/C++编译器与运行时环境的设计, 允许使用指针和数组下标对应用的数据做不受限制的访问, 并且还允许执行位于应用数据区与栈区的代码。因此在c/C++程序中, 一个指向数组范围之外的数组下标将会存取对应内存位置外的数据。同样的情况如果是Java程序的话, 会导致ArrayIndexOutOfBoundsException异常。Java对程序行为的定义比c严格, 它提供了内存自动回收功能 (Garbage Collection) , 使程序不能访问越界内存。
程序中的缓冲区溢出可被攻击者利用造成安全性问题。在执行该程序的计算机上执行任意代码的方法有很多种。最简单的办法是直接将一个位于栈上的 (函数局部的) 缓冲区末端的函数返回地址覆盖, 让它指向该缓冲区中特别编制的代码, 其他的攻击方法包括利用存储在堆中或静态存储中的缓冲区。
另一个程序安全性漏洞是由问题API引起的。很多函数使用调用者提供的缓冲区来返回变长的结果, 但是他们的接口没有提供制定缓冲区长度的手段。如c库的字符串函数strcpy、strcat;I/O函数gets、sprintf、scanf、fscanf。此外还有一些操作系统的特定函数, 如Unix函数getwd以及Windows函数OemToChar等。使用这些函数要格外小心, 所以应使用更加安全的替代函数, 如对gets改用fgets (buf, sizeof (buf) , stdin) , 对不加限制的scan ("%s", buf) 改用带有长度限制的scanf ("%20s", buf) 。或者是保证传递给函数的缓冲区足够大。
2 结束语
以上就编程语言对程序的性能影响做了一下分析, 程序的性能需要系统开发团队的所有人的关注:开发者个人的性能质量控制;项目负责人的质量管理和以专业性能测试人员通过不同的测试进行的软件质量检验。对于开发信息系统, 提高程序的性能, 除了对编程语言的研究, 还需要进一步了解所使用平台或者中间件的特性。
摘要:软件质量的重要性是不言而喻的, 软件的功能性、可靠性、可用性、效率、可维护性、可移植性等质量属性从各个方面反映了软件的质量。就编程语言对程序性能的影响因素, 从内存管理及语言的麻烦特性对程序可靠性、移植性和安全性的影响进行了分析。
关键词:软件性能,编程语言,可靠性,移植性,安全性
参考文献
[1][希腊]Diomidis Spinellis.高质量程序设计艺术 (第1版) [M].韩东海, 译.北京:人民邮电出版社, 2008.
[2][美]Brian W.kernighan.程序设计实践 (第1版) [M].裘宗燕, 译.北京:机械工业出版社, 2005.
[3]李宽.软件测试VS质量管理[J].金融电子化, 2007 (10) .
[4]崔晓东.软件的性能设计[J].信息技术与信息化, 2008 (1) .
[5]赵丽莉.软件性能测试面面观[J].软件工程师, 2006 (11) .
Java编程语言基础总结 第5篇
2.Java包括编程语言和相关的技术。
3.Java主要用于开发,桌面应用程序和Internet应用程序。4.开发一个Java应用程序的基本步骤:编写源程序,编译程序和运行程序。源程序以.java为扩展名,编译后生成的文件以.class为扩展名。使用javac命令可以编译.java文件,使用java命令可以运行编译后生成的.class文件。
5.编写Java程序要符合Java编码规范,为程序编写注释可大大增加程序的阅读性。
6.MyEcplise是一个功能强大的集成开发环境(IDE)。它的各种窗口便于Java程序的开发,调试和管理。
第二章变量、数据类型和运算符
1.变量是一个数据存储空间的表示,它是存储数据的基本单元。变量的命名规则:
(1)必须以字母,“_”,“$”开头。(2)可以包括数字,但不能以数字开头(3)不能包括除“_”,“$”以外的特殊符号(4)不能使用Java语言关键字或者保留字(goto)
2.Java中数据类型分为基本数据类型和引用数据类型,基本数据类型有整型(int),双精度浮点型(double),字符型(char)和字符串(String)。3.变量要先声明并赋值,才能使用。4.Java提供各种类型的运算符,具体如下。
(1)赋值运算(=)(2)算术运算符(+,-,*,/,%)(3)关系运算符(>,>=,<,<=,==,!=)(4)条件运算符(条件?表达式1:表达式2)(5)逻辑运算符(, || ,!, & , |)&&(短路与)与&的区别:&&进行判断时,当第一个条件为假,则不需要判断第二个条件,结果为假。&进行判断时,即使第一个条件为假时,也需要判断完第二个条件才能给出结果为假。||(短路或)与|的区别:与上同理(5)位运算符(&, | , << , >> , >>>)5.数据类型转换是为了方便不同类型的数据之间进行运算
6.数据类型转换包括了自动类型转换和强制类型转换,自动类型转换需要满足类型兼容且目标类型大于源类型的条件
7.Java中使用boolean类型表示真假,boolean类型的两个值为true和false。
8.Java中的关系运算符可以用于来比较大小,高低,多少等,比较厚的结果是boolean类型。
9.Java提供Scanner类,可以实现从控制台获取键盘上输入的信息
第三章选择结构(一)Java中的if选择结构,包括以下形式
(1)基本的if选择结构:可以处理单一或组合条件的情况(2)if-else选择结构:可以处理简单的条件分支情况(3)多重if选择结构:可以处理连续区间的条件分支情况(4)嵌套if选择结构:可以处理复杂的条件分支情况
第四章选择结构(二)1.switch选择结构适用于进行等值判断
2.switch关键字后面小括号里表达式的值可以是int , short , byte , char , 枚举 , String(JDK1.7开始支持)
第五章循环结构(一)1.循环结构由循环结构和循环操作构成,只要满足循环条件,循环操作就会反复执行
2.使用循环结构解决问题问题的步骤:分析循环条件和循环操作,套用循环结构的语法写出代码,检查循环能否退出
3.while循环结构是先判断后执行,do-while是先执行,后判断。Do-while至少执行一次。
4.debug调试:设置断点,单步运行,观察变量
第六章循环结构(二)1.for循环结构的语法结构如下
for(表达式1:表达式2:表达式3){
} //循环体
表达式1:循环结构的初始部分,为循环变量赋初值 表达式2:循环结构的循环条件
表达式3:循环条件的迭代部分,通常用来修改循环变量的值 2.用break和continue语句控制流程
(1)break语句用于终止某个循环,程序跳转到循环体外的下一条语句。Break也可以在switch语句中使用
(2)continue语句用于跳出本次循环,进入下一次循环
(3)return可以结束当前方法的执行并退出,返回调用该方法的语句处
第七章数组
1.数组是可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型
2.数组中的元素通过数组的下标进行访问,数组的下标从0开始 3数组可用一个循环为元素赋值,或用一个循环输出数组中的元素信息
4.通过数组名.length可获得数组长度
5.利用Arrays.提供的sort()方法可以方便的对数组中的元素进行排序 6.二维数组实际上就是一个一维数组,他的每个元素又是一个一维数组。
第八章循环结构进阶
1.数组的输入排序,选择排序,冒泡排序
2.在二重循环中可以使用break、continue语句控制程序的执行 选择排序:
思路:每次循环得到最小值的下标,然后交换数据。如果交换的位置等于原来的位置,则不交换。插入排序:
Java编程语言程序的认识误区 第6篇
软件的生命性
软件是有生命的,这可能是老调重弹了,但是因为它事关分层架构,反复强调都不过分。
一个有生命的软件首先必须有一个灵活可扩展的基础架构,其次才是完整的功能。
目前,很多人对软件的思想焦点还是落在后者:完整的功能,觉得一个软件功能越完整越好,其实关键还是架构的灵活性,就是前者,基础架构好,功能添加只是时间和工作量问题,但是如果架构不好,功能再完整,也不可能包括未来所有功能,软件是有生命的,在未来成长时,更多功能需要加入,但是因为基础架构不灵活不能方便加入,死路一条。
正因为普通人对软件存在短视误区,对功能追求高于基础架构,很多吃了亏的老程序员就此离开软件行业,带走宝贵的失败经验,新的盲目的年轻程序员还是使用老的思维往前冲。其实很多国外免费开源框架如ofbiz compiere和slide也存在这方面陷阱,貌似非常符合胃口,其实类似国内那些几百元的盗版软件,扩展性以及持续发展性严重不足。
那么选择现在一些流行的框架如Hibernate、Spring/Jdonframework是否就表示基础架构打好了呢?其实还不尽然,关键还是取决于你如何使用这些框架来搭建你的业务系统。
存储过程和复杂SQL语句的陷阱
首先谈谈存储过程使用的误区,使用存储过程架构的人以为可以解决性能问题,其实它正是导致性能问题的罪魁祸首之一,打个比喻:如果一个人频临死亡,打一针可以让其延长半年,但是打了这针,其他所有医疗方案就全部失效,请问你会使用这种短视方案吗?
为什么这样说呢?如果存储过程都封装了业务过程,那么运行负载都集中在数据库端,要中间J2EE应用服务器干什么?要中间服务器的分布式计算和集群能力做什么?只能回到过去集中式数据库主机时代。现在软件都是面向互联网的,不象过去那样局限在一个小局域网,多用户并发访问量都是无法确定和衡量,依靠一台数据库主机显然是不能够承受这样恶劣的用户访问环境的。
从分层角度来看,现在三层架构:表现层、业务层和持久层,三个层次应该分割明显,职责分明,持久层职责持久化保存业务模型对象,业务层对持久层的调用只是帮助我们激活曾经委托其保管的对象。所以,不能因为持久层是保管者,我们就以其为核心围绕其编程,除了要求其归还模型对象外,还要求其做其复杂的业务组合。打个比喻:你在火车站将水果和盘子两个对象委托保管处保管,过了两天来取时,你还要求保管处将水果去皮切成块,放在盘子里,做成水果盘给你,合理吗?
上面是谈过分依赖持久层的一个现象,还有一个正好相反现象,持久层散发出来,开始挤占业务层,腐蚀业务层,整个业务层到处看见的是数据表的影子(包括数据表的字段),而不是业务对象。
当然适量使用存储过程,使用数据库优点也是允许的。按照Evans DDD理论,可以将SQL语句和存储过程作为规则Specification一部分。
Hibernate等ORM问题
现在使用Hibernate人也不少,但是他们发现Hibernate性能缓慢,所以寻求解决方案,其实并不是 Hibernate性能缓慢,而是我们使用方式发生错误:
“最近本人正搞一个项目,项目中我们用到了struts1.2+hibernate3,由于关系复杂表和表之间的关系很多,在很多地方把lazy都设置false,所以导致数据一加载很慢,而且查询一条数据更是非常的慢。”
Hibernate是一个基于对象模型持久化的技术,因此,关键是我们需要设计出高质量的对象模型,遵循DDD领域建模原则,减少降低关联,通过分层等有效办法处理关联。如果采取围绕数据表进行设计编程,加上表之间关系复杂(没有科学方法处理、侦察或减少这些关系),必然导致系统运行缓慢,其实同样问题也适用于当初对EJB的实体Bean的CMP抱怨上,实体Bean是Domain Model持久化,如果不首先设计Domain Model,而是设计数据表,和持久化工具设计目标背道而驰,能不出问题吗?关于这个问题N多年前就争论过。
这里同样延伸出另外一个问题:数据库设计问题,数据库是否需要在项目开始设计?
如果我们进行数据库设计,那么就产生了一系列问题:当我们使用Hibernate实现持久保存时,必须考虑事先设计好的数据库表结构以及他们的关系如何和业务对象实现映射,这实际上是非常难实现的,这也是很多人觉得使用ORM框架棘手根本原因所在。
当然,也有脑力相当发达的人可以实现,但是这种围绕数据库实现映射的结果必然扭曲业务对象,这类似于两个板块(数据表和业务对象)相撞,必然产生地震,地震的结果是两败俱伤,软的一方吃亏,业务对象是代码,相当于数据表结构,属于软的一方,最后导致业务对象变成数据传输对象DTO,DTO满天飞,性能和维护问题随之而来。
领域建模解决了上述众多不协调问题,特别是ORM痛苦使用问题,关于 ORM/Hibernate使用还是那句老话:如果你不掌握领域建模方法,那么就不要用Hibernate,对于这个层次的你:也许No ORM 更是一个简单之道。
Spring分层矛盾问题
Spring是以挑战EJB面貌出现,其本身拥有的强大组件定制功能是优点,但是存在实战的一些问题,Spring作为业务层框架,不支持业务层Session 功能。
具体举例如下:当我们实现购物车之类业务功能时,需要将购物场合保存到 Session中,由于业务层没有方便的Session支持,我们只得将购物车保存到 HttpSession,而HttpSession只有通过HttpRequest才能获得,再因为在Spring业务层容器中是无法访问到 HttpRequest这个对象的,所以,最后我们只能将“购物车保存到HttpSession”这个功能放在表现层中实现,而这个功能明显应该属于业务层功能,这就导致我们的Java项目层次混乱,维护性差。 违背了使用Spring和分层架构最初目的。
领域驱动设计DDD
现在回到我们讨论的重点上来,分层架构是我们使用Java的根本原因之一,域建模专家Eric Evans在他的“Domain Model Design”一书中开篇首先强调的是分层架构,整个DDD理论实际是告诉我们如何使用模型对象oo技术和分层架构来设计实现一个Java项目。
我们现在很多人知道Java项目基本有三层:表现层、业务层和持久层,当我们执着于讨论各层框架如何选择之时,实际上我们真正的项目开发工作还没有开始,就是我们选定了某种框架的组合(如Struts+Spring+Hibernate或Struts+EJB或Struts+ JdonFramework),我们还没有意识到业务层工作还需要大量工作,DDD提供了在业务层中再划分新的层次思想,如领域层和服务层,甚至再细分为作业层、能力层、策略层等等。通过层次细化方式达到复杂软件的松耦合。DDD提供了如何细分层次的方式
当我们将精力花费在架构技术层面的讨论和研究上时,我们可能忘记以何种依据选择这些架构技术?选择标准是什么?领域驱动设计DDD 回答了这样的问题,DDD会告诉你如果一个框架不能协助你实现分层架构,那就抛弃它,同时,DDD也指出选择框架的考虑目的,使得你不会人云亦云,陷入复杂的技术细节迷雾中,迷失了架构选择的根本方向。
现在也有些人误以为DDD是一种新的理论,其实DDD和设计模式一样,不是一种新的理论,而是实战经验的总结,它将前人使用面向模型设计的方法经验提炼出来,供后来者学习,以便迅速找到驾驭我们软件项目的根本之道。
C语言与汇编语言混合编程 第7篇
关键词:C语言,汇编语言,混合编程
汇编语言是一种面向机器的语言,其特点是运行速度快,占用存储空间小,可直接对硬件进行控制,在一些实时控制的场合,有着不可替代的作用。然而汇编语言也有它的不足,如编写及调试程序相对高级语言程序要困难、复杂,尤其在进行数据处理、数值混合运算时更是如此。
作为一种高级语言,C语言毫无疑问是杰出的,其功能丰富,表达能力强,使用灵活,开发效率高,因而比汇编语言使用更为广泛。通常在软件开发过程中,大部分程序采用高级语言编写,以提高程序的开发效率;但在要求执行速度快、占用空间少、或要求直接控制硬件的场合,则利用汇编语言编写,以提高程序的运行效率。因此在实际开发和软件编制过程中,常常需要使用多种语言混合编程,充分利用各种语言的优势,使开发和编程工作达到事半功倍的效果。
汇编语言和C语言混合编程,需要解决两个主要问题:
一是汇编与C程序模块的连接,二是函数调用过程中参数的传递。
1 C模块调用汇编模块
C模块调用汇编模块示例:
2汇编模块调用C模块
进行混合编程时,一个任务往往被分为若干功能模块,每个模块以函数的形式存在,根据每一模块的特点选用适合的语言独立编程,然后使用相应的语言编译系统对其进行编译形成目标文件,最后将多个目标文件连接在一起形成一个完整的可执行文件。
参考文献
[1]潭浩强.程序设计(第二版)[M].北京:清华大学出版社,2004.
[2]钱晓捷.汇编语言程序设计(第二版)[M].北京:电子工业出版社,2003.
[3]李伯成.微机原理及应用[M].西安:西安电子科技大学出版社,2002.
面向就业的编程语言教学研究 第8篇
关键词:编程语言,就业,教学理念
从1978年开始到现在,计算机专业的知识体系有了全新的变化,外延不断扩展,专业边界逐渐模糊,由于网络的迅速成熟,对计算机的专业人才提出了越来越高的要求。
20042014年统计增长最多的职位中,计算机应用软件工程师第五位。20082018年,预测增长最多的职业中,计算机应用软件工程师第十五位,比例增长约34%。高校为了适应市场需求,应持有的基本理念是面向就业市场培养人才,并且在各学科最新的本科教学培养方案的制定也体现出有越来越多的计划偏重于为学生就业而考虑的实用化。
计算机专业毕业生在正规就业中所面临的第一步即专业知识的笔试。经过对就业市场进行调研,软件开发职位大多数在第一轮笔试中考察应届毕业生的专业基础知识,其中绝大多数包括编程题,普遍重视基础知识以及编程思想,而编程语言的能力并不可能在笔试之前进行简单复习就能有大幅度的提高。
为使学生在平时学习中就能提前为就业做准备,在教学过程中教师应重视就业在专业课中的重要指导作用。目前编排在教学中的编程语言主要有C/C++、Java、JSP等,其中,Java就业前景广阔,易上手,可作为参考的优秀代码众多,并且非常适合企业网络和Internet环境,现已成为最有影响力的编程语言之一。探讨面向就业的Java语言教学过程显得尤为必要。
1 Java基本教学方法探索
1.1 语法及编程规范
对于一门编程语言来说,程序的规范性是第一步最重要的环节。从教学过程来看,虽然反复强调规范的重要性,仍然有学生写出的程序随意性极大。其中主要原因是没有得到足够重视。另一个原因是各高校在开设Java课程之前往往已经开设过C/C++,其编程风格、规范性上略有不同,也使学生受一定影响。此时可以针对两种语言在风格上的不同做出比较和示范,让学生记忆更加深刻。良好的编程习惯使代码具有很强的可读性,是团队合作的基本要求。同时,要培养良好的编写文档习惯,有助于代码的复用性以及软件的维护性[1]。
语法的学习则是一门语言起始阶段必经之路,虽然现在有很多成熟的集成开发环境(IDE)让编写程序的工作事半功倍,但在初始学习阶段就使用开发工具会使学生过度依赖IDE的提示而忽略了原理的掌握,因此应该采用较原始的工具,有助于学生在反复输入关键字时辅助记忆。在教学过程中,由于同时注重程序的规范性,因此采用Ultra Edit、Edit Plus这类小型编辑软件,它具有标识关键字、自动缩进的功能,可以协助学生规范地编写程序。当基础语法知识部分授课结束,学生在语法上已经达到一定熟悉程度时,在图形用户界面GUI、多线程、数据库以及网络编程讲授部分,由于对类库中的方法调用较多,可以采用IDE演示,一方面可以节省手写代码的时间,另一方面可以让学生了解IDE的开发、编译和调试过程。
1.2 Java类库与帮助文档
当基本语法知识掌握之后,对于Java语言来说,API帮助文档是在编程过程中不可或缺的辅助工具,而传统教学中对帮助文档的重视程度不够,多数的教材因篇幅需要,也只是对某些重要方法进行列举,所配的例程也枯燥无味。在教学过程中,学生对帮助文档的理解并不透彻,应在整个教学中贯穿对文档使用的演示,包括包的概念、包中类的作用以及典型方法的参数、返回值以及是否是静态方法、是否有异常抛出、在使用这些方法时的具体写法等,目的是提高学生自学能力。在真正开发软件项目时,不可能只应用课堂中学习到的类,课堂教学过程中给出一些典型使用过程,可以引导学生在使用其他类时能进行正确查询。
另外,由于API文档中提供的类库及方法都是Oracle(Sun)公司提供的公用接口,方法的定义和实现本身值得学习,可为学生提供思路,在自定义类中设计方法时,可以参考文档中方法的结构。
1.3 教学设备与教学手段
近年来,多媒体教学设备早已普及到各大高校,对编程语言课程来说,由于较强的操作性和程序执行结果演示的重要性,采用多媒体教学是必要的。
在授课过程中,传统的教学方式是将写好的程序直接显示在屏幕中,然后将每条语句解释给学生。这种方法的弊端是学生虽然看懂了程序的语法和功能,但在实际动手练习过程中并不知道应该如何开始、从哪里开始。教学理念应是教师当场编写短小并有代表性的程序,在该过程中,可以将一个程序按题目要求由简单设计到复杂,出现错误之后应该怎样根据错误提示进行改正。这种方式直观有效,同时也兼顾了规范性程序的写法,学生接受效果好。
在教学条件允许情况下,可以考虑在实验室讲授该类型的课程,将理论学时和实践学时相结合,保证学生每人一台计算机,可以在讲授过程中将教师屏幕发送到学生机终端,提高学生的参与度,在必要时,可自己动手编写并演示程序,教师也可以利用课余时间对学生编程过程中出现的问题进行直接指导。如果不能提供这样的教学条件,则需要允许学生自带机器上课,争取做到即时问题即时解决。
另外,对于某些知识点的讲解,如程序运行过程中内存分配的动态过程,最好利用黑板,采用图形的方式按步骤向学生讲解,因此,建议采用黑板与多媒体结合的教学方式。
2 教辅方法的使用
2.1 课堂留疑
目前的编程语言相关教材具有很强的理论性,并不能很好体现出某些知识点在真正应用时的具体用法,并且由于JDK版本一直在更新,某些教材的相关内容已经过时。而学生看教材的过程也很死板,尤其是一些较懒惰、不善于动手实践的学生,在看书时很可能停滞在知识点并不重要、但有歧义的文字叙述上。在动手实践时,最开始往往也会因为基本的语法问题,在编译过程中由于编译器提示的错误而手忙脚乱,这就要求教师在课堂上善于引导重点,有针对性地引入教材中没有的程序,有意识地写入一些错误,让学生认识错误,按编译器给出的错误提示找出错误,并演示解决错误的过程(调试),经验的积累一部分因素是遇到错误解决错误。
在讲授各个重要知识点后要抛出相应疑问并留少量时间给学生思考,必要时可增加课堂讨论,让学生主动寻求解决问题办法,并给出各种方案的优缺点,让学生在学习到他人的思想同时发现自己的问题,改进自己的方法,增加团队协作能力的培养和提高[2]。
2.2 作业与辅导
(1)作业的必要性。留作业并多留作业是必要的。由于相当数量的学生因为懒惰、不愿动手、习惯纸上谈兵等原因导致对课堂所学知识仅仅进行"听",不能及时课后巩固,还有一部分学生课后不知道应该如何练习,过度练习教材中的例子程序(往往是照着编写)效果不明显,而编程能力必须在实践过程中才能得到有效而迅速提高。作业是促进学生动手练习的外因,教师可根据每堂课的知识点选择有代表性的题目留给学生。在批改作业过程中发现某些学生解决问题的思想奇特新颖,教师也可以间接扩展思路。
(2)选做作业的设计。另外,计算机行业分支较广,不主张学生对各科都透彻了解,学生可以根据自己的兴趣爱好选择性地进行发展,在教学实践中采用的方法是对于热爱Java编程的学生,在留作业的时候也可以有针对性地对待,作业的设计主要分为2种类型,一种类型的题目是课堂基础知识的巩固,针对全体学生,几次课布置一次作业;另一种类型则是略有难度的选做题目,针对有意识提高该项技能的学生,适合每次课都布置,使学生在作业过程中加强锻炼,提高动手能力。实践过程中发现,这种教学方法效果明显,选做题目的出现可以使学生有目的性地练习和巩固,并且也不会因为作业过多成为所有学生的负担。但对教师而言,由于作业的增多,课后工作量有所加大甚至成倍增加,这就要求任课教师具有高度责任心。
(3)作业的处理。某些编程语言仍然沿用传统的以纸质方式交付作业的方法,但实际由于本门科目的特殊性,传统书写作业方式存在一定的弊端性。一方面,鼓励学生动手能力是期望他们在编译环境中动手编写程序,而在纸上完成这个过程则不能培养写程序的感觉。另一方面,纸质作业对于程序的规范性也表述不清。因此要求学生必须以电子版形式上交作业,这样也可以促进徘徊在选择和不选择该门技能这部分学生的兴趣。至于作业的批改和课后的答疑,则可利用邮件等即时通讯软件随时答疑解惑。这种一对一解答方式要求教师要付出大量的精力和时间,优势在于让每个学生觉得受到重视,积极探讨作业中存在的问题而不断进步,形成一种良性循环。实践证明,在这种师生交互过程中,教师针对学生个体的详细评语具有鼓励和推动作用,比起泛泛地在课堂中对全体学生作业的评语效果更好。
3 就业技能在教学中的融合
3.1 重视教师的引导作用
高校教师要重视培养学生的自学能力和独立解决问题的能力。在学生遇到问题,尤其是学习初期容易遇到的编译、运行错误时,对教师来说,直接指出错误原因是简单的,但更重要的是引导学生理解为什么出现这种问题,什么时候出现这种问题,以及出现这种问题应该如何调试和解决,在学生自己通过这种思路掌握解决问题的办法时,才不会因为练习过程中常见的编译器各种提示而失去信心。前文中所提到的编程演示过程由易到难的思想,也是遵循这个理念,教会学生编程方法而不单纯是语法或完成某种功能,从而提高学生的思维能力、创新能力以及就业和创业能力。
3.2 团队合作精神的培养
基础知识学习过程完成之后,课后开设兴趣小组,设计每一学习阶段的模拟项目。该项目完全开放,将全部权限发到小组,小组成员轮流进行系统分析、系统设计、工作分配以及模块开发和整合,让学生提前掌握程序开发工作的项目流程,在模拟环境中体验程序开发工作,有助于学生进一步了解个人能力及发展方向,在面向就业时有明确定位和选择[3]。
4 结语
与前期的教学方式和学生的情况比较,采用新的教学理念开展教学工作后,选择该方向继续学习的学生人数明显增多,在授课过程中也表现出明显兴趣,有利于后续课程的开展和学生个人就业技能的提高,教学效果明显。
教师在教学过程中要树立新的教学观、教育观,立足于培养学生素质的角度,使学生在探索问题过程中,创新意识和实践能力得到培养,强调学习态度、敬业精神、表达能力以及团队精神,为学生创造富有探索性的学习环境,有效地激发学生的学习兴趣,使学生在学习过程中发挥主动性和积极性。
教学过程中应根据就业需求,有针对性地调整教学目标,重视教学实践环节过程,适当适度地调整好学生应用能力的教学策略,对培养创新、创业型计算机应用专业人才具有重要意义。
参考文献
[1]张剑飞.Java教学中提高学生应用能力的策略研究[J].高师理科学刊,2009,29(6):98-100.
[2]卢晨.行为引导教学方法在Java教学中的应用[J].中国西部科技,2010,9(36):90,83.
编程语言 第9篇
一、内容简介
本书首先介绍了西方翻译研究的发展史和当代翻译研究的方法,然后概述了始终贯穿本书的意义理论和语言学应用到翻译研究中的基本模式,最后详细具体地从语言学角度解释了语言中的音、词、语篇等各个层面对翻译的影响。由此该书共可分为四部分,即,第一部分,关于翻译学的一些简介概述;第二部分,翻译与语言;第三部分,翻译中语言的语言学分析;第四部分,总结、参考文献和索引。
第一部分,翻译学的简介,包括第一章“从翻译著作到翻译研究”和第二章“翻译研究的描绘和研究方法”。作者首先在第一章简要地介绍了翻译研究在西方发展的几个重要步骤:从罗马人的翻译到《圣经》的翻译再到各个派别的重要理论家的翻译理论最后到二十世纪末理论中的重要的“目标文本转向”(the target text turn)理论。然后在第二章中,作者先介绍了Holmes对Toury绘制的翻译学学科图(map of translation studies)的解释。他的划分出来的许多翻译学门类及其理念是现在翻译学家们学习研究的基础。作者接着讨论了自二十世纪中叶以来学者们进行翻译研究的主要四种方法,即,语言的方法、描述的方法、功能的方法和文化的方法。
第二部分即第三章“翻译与语言”是该书的关键部分。在这部分,作者主要关注两个影响理论家关于翻译本质的更详细了解的因素:一个是语言、文化、本体相对论。另一个就是语言学理论与翻译理论的关系。相对论认为在不同文化背景、不同语言环境中长大的人多多少少世界观都会不同。而与之相对应的普遍论则觉得差异总是建议在共性的基础上的。作者在讲述相对论时,把文化相对论、语言相对论、本体相对论分开来,并将它们分别与它们各自的相对应的普遍论结合起来进行对比分析来说明问题。接着作者从韩礼德(Halliday)的语言功能说及语域概念来说明文化普遍论。这样的安排有助于读者在学习过程中比较理解。在语言理论与翻译理论的关系方面,作者先总结了过去大家所公认的两种关系:1翻译研究是语言学的数据源;2.语言学是翻译研究的数据源。然后通过语言学分析了翻译过程中的发生的对等、错误、篡改。最后作者简要地介绍了如何把语言学作为翻译研究的一种信息资源。作者认为用语言学理论研究翻译是完全可能,而把语言学作为分析文本中语言现象类型的信息资源是很有帮助的;在翻译研究中注重翻译语言是对翻译采取审美态度的一种方法,我们应该采用语言学的见解来分析译本与源本之间关系的本质。
本书第三部分“翻译中语言的语言学分析”包括五个相比前面三个章节更具应用性的五个章节,即第四章到第八章。第四章“翻译中的声音与节奏”从语音学和音系学的角度来分析声音模式对翻译的影响。本章分两个方面来讨论:声音和节奏。第五章“翻译中的词和意义”中作者解释了什么是词,以及在传统翻译理论中是如何处理词的,然后介绍了词的几种分类,并通过分析Lewis Carroll的一首诗中不同词类的特点及它的译本来说明语言学的词类的划分对翻译的帮助,并结合翻译介绍了词的语义方面,包括词与述词(predecates)之间的意义关系和词汇的灵活性。第六章“词公司”主要向我们介绍了几种翻译时需要的词库资源,包括字典、语料库和搭配,通过例证分析了它们的概念及特点。然后作者提出了我们在使用语料库时要注意的几点问题。第七章“从词到语篇”表明要开始从语篇的层面来分析语言和翻译。在这章中,作者结合结合格莱斯(Grice)提出的“会话合作原则”对文本性(texture)、含义(implicature)、语篇体裁等进行了详尽的解释,并结合实例进行了深入的分析。总的来说,介绍了作为行动的语言概念。第八章“翻译中关于短句和语篇的观点和思考”主要是用功能方法来研究短句。韩礼德认为是英语中的短句使得三个语言系统(语气系统、主位和述位系统、及物性系统)能让三种功能(交流获得信息、解构信息、表达)得以在短句水平上都实现。最后,作者简要地、总结性地介绍了语言、思想与翻译的关系。语言可以用来帮助达到意识形态的目的,而由于两种文化中的“不对称的权力关系”不同,所以翻译显然会产生不同于原文本的意识形态。意义理论是始终贯穿着这部分的。该部分就是通过从语言学角度分析由小到大的各个语言单位是如何影响语言的意义从而分析它们是如何影响翻译的。
二、简要评述
本书具有以下鲜明特点:
(一)角度新颖
随着翻译学的兴起,对翻译的研究也越来越多。这些研究有从各个角度解释翻译、分析翻译的,其中从语言学角度出发的则大多都是把某个语言学分支与翻译结合起来,虽然这些研究成果都给学习翻译的人提供了理论实践的指导,但像《语言学与翻译语言》这样把翻译与语言学系统地结合起来,为学习翻译理论的学生们打开深入研究之门的作品则很少。本书既可看作是从语言学角度研究翻译的著作,也可看作是从翻译角度研究语言学的佳品。正如来自格拉斯哥大学(University of Glasgow)的温蒂安德森(Wendy Anderson)教授所言:“这本书很好地论述了两个学科之间的相互影响,相互作用”
(二)内容全面
本书的全面系统可以从纵横两方面来看。从纵向来看,本书系统全面地从语言学角度详细对翻译语言的各个层面进行了分析。比如在该书的四、五、六、七、八章中,作者分别从音、词、意、语篇、短句的层面对翻译语言进行了分析,而分析过程中则涉及语言学中的音位学、音系学、词汇学、语义学,以及各个像格莱斯和韩礼德这样的语言学家的语言学理论。同时,在翻译简介的部分本书也做到了全面。从罗马人的翻译到《圣经》的翻译再到各个派别的重要理论家的翻译理论最后到二十世纪末理论中的重要的“目标文本转向”理论,本书都作了简要的介绍。从横向方面来看,本书不是只对翻译学或语言学作了研究,还涉及了很多其他学科。比如在第二、三章对翻译学研究的介绍中就涉及了文化、哲学、心理学等多个领域。
(三)结构合理
本书作者很好地考虑了读者,合理地安排了全书的结构。从整体看,作者先用一、二章对翻译学作了简要的介绍,在第三章中则开始把翻译和语言学联系起来,接着则开始一步步从语言的各个方面对翻译语言进行分析。全书章节环环相扣,步步深入,从整体到细节,从介绍到研究,把读者慢慢引入翻译语言的语言学研究中。从部分看,作者不仅在每个章节的开头都有简介,对本章的主要观点和难点作了简要说明,使读者在学习每个章节前都有一个清晰的框架,而且在每一章节中都安排了供学生们自己思考提高的质量较高的练习和讨论。这种种安排都能引导读者的学习研究,很好地体现了本书作为教科书的一面。
(四)语言简朴,文体活泼
作为一本全英的外文学习书籍,语言的难易、文体的沉轻对大部分中国的读者而言是很重要的。而本书不同一般的理论书籍,正如文迪安德森所言:“它用生动活泼的文体,从一个新颖的角度对语言学和翻译研究中的关键概念和争论点进行了清晰的讨论,并使之与书中那些令人耳目一新的例子和理论及其实际应用的恰到好处的结合一起为本书添色。”本书用通俗易懂的文字、轻松活泼的像小说一样的文体及大量的实例来说明理论问题,所以正像作者自己所说,该书既可以作为研究生的学习教材,又可以作为学习翻译的本科生的教材。
(五)不足之处
当然,本书也不是十全十美的。比如:对翻译学的各个理论虽都作了介绍,但不够深入详细。特别是关于后殖民翻译理论、女性主义翻译理论、生态翻译理论等新近翻译理论涉及得很少。这无疑对翻译学习读者来说是一大缺陷。其次,本书中的实例多为西方国家素材,少有中国语言素材,导致中国读者在理解时稍有生疏感。
三、结语
不管怎样,从整体看来,无论是从内容还是从它所采用的方法来看,《语言学与翻译语言》都是一本学习翻译理论的好教材。该书无疑会传授给我们专业的基础理论知识并给我们有益的启发,正如作者在结言里面所说,本书的作用就是“为学生和老师进行更深入的翻译研究提供一个基础”。
摘要:《语言学与翻译语言》一书通过理论的阐述说明, 问题的详尽讨论和实际例子的练习很好地解释了语言学与翻译的关系, 加强了读者对语言学是如何用来帮助翻译创作, 实现翻译语言描写, 进行建设性的翻译批评的理解。总体来说, 本书主要有四个特色:①研究角度新颖;②内容全面;③结构合理;④语言简朴。此书为学生和老师进行更深入的翻译研究提供了一个基础。
关键词:翻译语言,语言学系统,《语言学与翻译语言》书评
参考文献
网络语言的语言价值和语言学价值 第10篇
根据学界通行的认识,网络语言有广狭不同的理解。广义的理解指在网络交际领域中使用的各种语言形式,主要包括两大类:一是与互联网有关的专业术语和特别用语(如“宽带、域名、鼠标、病毒、浏览器”和“网民、网吧、黑客、虚拟空间、信息高速公路”),二是网民在聊天室和网络论坛上的交际用语。狭义的理解主要指后者。与互联网有关的专业术语和特别用语,虽然所占比例很大,但这部分表达不会引起一般网络交际中的争议,即便有争议也主要限于技术领域或学术领域;而对于一般网民之间交际情景的表达形式和内容则有很大的争议,民间广泛参与其中。(1)基于此,本文的网络语言取狭义的理解。
网络语言的出现和使用一直伴随着各种争议。赞成者有之,反对者有之。有内容方面的,有形式方面的。有语言学方面的,主要是结合语言规范及其对语言生活、语言教学的影响来谈;也有非语言学方面的,主要是结合精神文明及其对文化传统、社会生活的影响来谈。总的来看,网络语言在兴起之初曾引起广泛的争议,尤其因于根元主编的《中国网络语言词典》而引起的争议最为激烈。经过十多年的发展,大的争议已经告一段落。虽然最近三四年关于火星文的争议又持续了一段时间,但影响的层面不大,新的认识不多。网络语言已初步形成了自己的交际规则,网络语言的社会方言特征渐趋鲜明。因此有必要对这种争议进行总结和反思。这里,我们先对争议双方的观点做出较为系统的归纳整理:
赞成的理由主要有:特定交际群体的表达需要,有着现实的背景,是时代精神的体现;新媒体的需要,网络媒体发展的必然,体现为互联网文化;是草根文化的一种存在方式,适应了草根阶层的表达需求;某些表达形式有新意和特色,体现出鲜活新奇、方便时尚、生动幽默、个性化色彩强等特点,体现了语言创新能力;属于一种新的社会方言,在某种意义上发展了汉语,为汉语的交际和发展提供了养分;语言是活的,是动态的,是发展的;倡导了多样化的语言实践,丰富了人们的语言生活;针对有人认为网络语言是一种语言污染、语言垃圾因而主张纯洁汉语这种情况,认为世界上根本就没有一个抽象的叫“纯洁汉语”的东西,“语言污染、语言垃圾”的提法要慎之又慎。因此主张对新生的事物要宽容;要面对现实,并做好整理、研究工作;要有效参与,积极引导。有人认为网络语言根本不需要规范。有人甚至认为网络语言是“语言史上的一场革命”(王德亮、仲梅,2008),“代表着汉语发展的方向”,“将带动汉字体系逐步实现符号化、拼音化的改革”(牟玉华、谢旭慧,2008)。
反对的理由主要有:网络语言的流行将对汉语和中文造成负面影响,造成了母语的危机;颠覆传统,冲击了传统交际;汉字、外文、数字、字母、符号等杂糅在一起,显得不伦不类;采用英文等外文拼写,崇洋媚外,殖民心态,有损于民族尊严;追求时髦,品位低下,庸俗、低级;网络语言不文明现象严重,影响了中小学生的语言文化水平和文明道德教育;网络语言是黑话,是语言污染、语言垃圾;生造乱用、怪词别字、破坏汉语结构规律、语义混乱等违背语言规范的现象非常严重,影响了汉语的纯洁性;对涉网不深的人,往往看不懂,带来交际的困难;网络语言纯粹是一种文字游戏,不值得也不应该当一回事。因此需要展开一场汉语保卫战;加强网络语言监管,至少要让网络语言留在网络;要通过立法的手段来规范、限制网络语言的使用。
当然这种二分法的归纳有时也不完全到位,这里面有交叉的地方。如赞成网络语言的人也看到了网络语言交际中不文明现象所带来的消极影响,反对网络语言的人也看到了网络表达中某些有价值的表达方式。我们这里并不试图对各种看法作出评论。但网络语言在各种争议中经过十多年的发展,带来了一些值得反思的地方。总的来看,往昔强烈批评的声音似乎没有发挥多少作用,而对网络语言的考察和整理(如编词典、出版专书等)倒使更多的人了解了某些网络语言的内涵和用法,加快了网络语言从网上走到网下的进程。现在很多网络语言表达形式已经逐渐被人们所认同,甚至成为推动语言交际的一个动力。而且,网络语言的出现和发展使我们能够清楚地看到一种社会方言的形成过程,仅此而言,就特别具有学术研究的价值。本文主要讨论网络语言给我们提供的积极方面,而对网络语言中存在的消极方面暂不涉及。(2)其实,有的消极方面实际上也不是简单的语言问题,而是人的问题、社会的问题,由于反映在语言上,有时我们便将它们看成了语言问题,并认为通过语言使用管理就能够解决这样的问题。
我们觉得,如果从积极的方面来考虑,对网络语言的价值应该从它的交际性质和学术意义两个方面来认识,即网络语言的语言价值和语言学价值。
二网络语言的语言价值
所谓语言价值,就是为作为交际系统的语言提供特定的语言成分,形成特定的结构关系,实现特定的功能。功能的实现是以成分及其关系为前提的。因此,我们主要从语言成分及其关系这两个方面来认识网络语言为交际系统贡献了什么。
在说明网络语言的价值时,首先要明确的是,能否适应网络表达的需要和能否进入日常语言交际是两个问题,两者都是为语言交际服务的,只不过处于不同层次的交际系统之中。也就是说,网络语言的语言价值实际上可以区分为两个层次:为网络交际提供了什么,为日常语言交际提供了什么。可是,有不少批评并没有认识到其中的区别,常常将两者混同了,甚至以为后者应该是网络语言的主要价值,这是不妥当的。网络语言首先要满足网络交际的需要,至于是否向日常语言交际扩散,是否适应日常语言交际,这是第二性的问题。
因此,探讨网络语言的语言价值也需要从适应网络表达的需要和对日常语言交际的影响这两个方面来认识。也就是说,当一种新现象出现时,我们首先要从它对交际有何贡献这一语言价值来认识,这样才使自己的评价有所依傍。从大的方面来说,对交际的贡献主要体现在三个方面:提供新的语言成分和语言规则;调整某些既有的成分和规则;推动某些表达的广泛使用。下面我们分类具体说明,所举用例以网络词语为主。
(一)词汇方面,逐步为网络交际提供了基本词汇。
这是网络语言系统呈现得最为鲜明的地方。与此同时,随着网络交际与日常交际互动的加深,有不少词语已经渗入(甚至深入)或正在渗入日常交际中。
网络词语并非全是新造的,有很多实际上说新不新,说旧又新。争议比较大的是那些日常交际中已经有了某个词语,而在网络上又另造新词,而且造词方式往往在日常语言中并不常用,如用“斑竹、版猪”指版主,用“菌男”指俊男,用“酱紫”指这样子等。这形成了网络构词中有特色的表达方式。很多新词新义新表达与网络语言构造的心态和呈现的方式有关。我们这里暂时撇开纯粹的利用数字、符号、字母所构造的网络表达形式,仅就与汉字有关的词形对网络词语的构词方式做一个粗略的归纳(大部分词的具体释义从略),其中属于旧词新义的,我们放到语义中说明。这里的归纳注重于构词机制的说明。
谐音词。如“斑竹、大虾、美眉、菌男(俊男)、霉女(美女)、驴友、葱白(崇拜)、瘟都死、木油(没有)、灰常(非常)、偶(我)、屁兔”等。主要构造方式是将错就错的谐音,以及有意识地选择一种能造成逆谐效果的表达。(3)这常常是试图造成一种美丽的错误。网络新词中最有网络特色、最具能产性且极易引起争议的就是这种逆谐式谐音词,所谐之音有普通话的,有方言的,还有外语的。
复合词。如“网虫、刷屏、打铁、造砖、盖楼、见光死、剩女、没女(没漂亮脸蛋、没苗条身材的女子)”等。复合词中仿拟的情况比较普遍,而且常常带有谐音等方式,如“校草(仿校花)、每周一哥(仿每周一歌)、与郎共舞(仿与狼共舞)”。很多系列词语也来自仿拟,如仿自“博客、黑客/骇客”的“红客、极客/奇客、闪客、朋客、维客”等。这些词语很容易由网上向网下渗透,而且网上和网下理解、使用时差别往往不是太大。有的词(如“剩女”之类)并不容易分别网上网下由谁先用,两者常常是交互的、同步的。
变音词。如“酱紫、酿紫、粉(‘很’的音变)、表(不要)”等。“酱紫、酿紫”分别是“这样子、那样子”的速读连音。这样的词不是太多,但利用语音变化的方式来构词则是常见的手段,上面讨论的新造词中就常常如此。
析字词。如“马叉虫(骚)、两座山(出)、丁页(顶)、弓虽(强)、走召弓虽(超强)、言身寸言身寸(谢谢)、口恩(嗯)、女子(好)、黑犬(默)、口黑口黑(嘿嘿)”。特殊的如“监介(尴尬)”。有的拆字后还有调整,如“竹本一郎”指笨蛋一个。这类数量不多,但用法普遍。
析词别解词。将汉语日常交际系统中已经存在的双音节或多音节词拆分开来逐字重新理解。如“白骨精(白领+骨干+精英)、蛋白质(笨蛋+白痴+神经质)、偶像(呕吐的对象)、情痴(情感之中你最白痴)、人类(人渣+败类)、神童(神经病儿童)、天才(天生蠢材)、校花(校门口卖豆花)、泼妇(活泼的妇女)、爱心(爱钱又没良心)、可爱(可怜没人爱)”。这些词,大多是借助褒义词的词形来表达贬义、谐义的效果。这是网络语言试图取得逆谐效果的极致表达。像“白骨精、蛋白质”等已经渗透到日常交际中了。
重叠词。采取重叠语素或音节的方式来构词,如“东东、虫虫、车车、饭饭、狗狗(Google,古狗、哥狗、姑狗)、呼呼、猪猪(指猪或睡觉)、觉觉、片片(照片)、笨笨、帅帅、怕怕、坏坏、屁屁、好漂漂、一下下、一般般”。这是成人语境的儿童化表达,可以看作“拟童语词”,是装嫩和真嫩两种心态的结合。新的发展则有ABB式如“范跑跑、躲猫猫、楼歪歪、楼脆脆”。
外来词。有音译词,如“伊妹儿、烘陪鸡、晒、当/宕”,常常采取谐译的方式,追求生动有趣的效果;有半音译半意译词,如“博客、黑客、骇客”等;有借形词,如“米国(美国)、大丈夫(没问题)”来自日语。其实,像“IT业、PC机”以及“@时代、e时代、I时代、.com时代”,都可以看作外来词的汉语化、汉字化及部分汉字化。至于意译词,如“信息高速公路、带宽、拨号、连接、域名、免费软件、线上、离线”,无论我们是不是将它们看作外来词,都不影响理解。
方言词。如“菜鸟(台湾闽南语,即菜鸟仔,指生手)、粉(台湾闽南话,指很)、衰(粤语,指倒霉)、哩抖(粤方言,指这里)、母代(南京方言,指没得、没有)、银(东北方言,指人)、贼(东北方言,指非常)”。很多词同时利用了方言谐音。其中来自台湾闽南语的词语比较多。网络交际的发展为方言词的扩散起到了一定的推动作用。这类词数量比较少。
缩略词。如“妹(伊妹儿)、短(短信)、寒(寒心)、鼠(鼠标)、狗(狗狗,Google)”。最为常见的是英语缩略形式和汉语拼音缩略形式,一般文献常有比较详细的介绍,这里从略。
还有其他一些形式。如“囧、槑”,是靠网络而恢复的据“形”构义使用的两个古字古词,其使用过程体现了网络表达的一个很重要的特征:避熟求异。又如“陈水”指“欠扁”,则是将“陈水扁”断取后利用语境复合而成。如此等等,不一而足。
除了与汉字有关的外,还有纯粹的字母词(如“PK、DIY,GG、TMD”)、数字词(如“286、88”)、符号词(如“<@__@>”表醉、“@/”表蜗牛)等。符号词大多象形,而且基本上留在网上。有很多词还采取混合的形式,如“+U(加油)、Y2K(Year 2 kilo,千年虫问题、千年问题)、3 X(thanks)、H2↑(氢气符号,谐音亲启)”。这些构词造句方式实际上是网络表达极为普遍的形式,与网络语言以“目治”为主有关,使网络表达呈现出拼盘效应。
(二)语义方面,既有日常词语网络化后赋予新义,也有网络词语语义的引申。
网络词语语义表达的一个很重要的方面就是旧词赋新义。有的直接从日常语言中借过形义再通过隐喻、转喻的扩展方式而运用于网络交际中,如“帖子、灌水、潜水、口水、冒泡、冲浪、圈地、防火墙、流口水、工分、水手、山寨、汗、倒、寒、顶、涮、踢、拍、掐、闪、衰、晕”等。
有的借用后,根据旧词形义提供的联想而重构语义关系。如“恐龙、青蛙、牛蛙,沙发、椅子、板凳、地板,水车、水桶、水鬼、水母,水蒸气、白开水”。这种类型形成的网络词语比较多,而且很多跟日常语义有或多或少的关联。如“恐龙”指丑女,概因“龙”代表男性,使龙恐者,女而丑者也;“水母”特指女性灌水狂人。当然,有的借用只是对字面义作出解构式别解,如“水仙”指灌水大仙、灌水狂人。这跟上面提到的析词别解相关。这种由于语素多义重新组合后造成的语义重构现象实际上也是汉语词义发展的一种途径。
很多语义的发展是系列性的,与网络的表达方式有关。如“沙发、椅子、板凳”依次指第一、二、三个回帖的人,如果连“板凳”都抢不到,就只好坐到“地板”上,再不济,只好到“地下室”了。“网虫”指网民,“飞虫”和“爬虫”则分别指高级网民和初级网民(分别跟“飞鸟/老鸟”和“菜鸟”同义)。
网络词义发展中,有很多网络用语对日常用语的语义引申是通过凸显日常用语语义结构中的某方面描述性特征而获得的。如“潜水艇”指没(méi)水准,就是来自对潜水艇常常没(mò)于水面之下这一特征的凸显;“孔雀”指自作多情者。
有的语义引申过程比较隐微,需要利用特定的习惯性表达、特殊语境才能够理解。如用“包子”指长得难看或太笨的人,想是来自对“狗不理包子”断取后的特征重构。
(三)词法和句法方面,一些新的网络词法形式凸显、变用了某些既有的词法形式。
网络语言的语言单位仍然是日常语言的结构方式,即便是最具网络风格的火星文也是如此,基本上是在词语层面上用各种非汉字形式来代替汉字形式,词语之间的组合关系没有多少改变。因此,网络语言基本上都可以逐词逐句转译成日常表达。这是网络语言“说新不新”的鲜明体现。作为新的表达形式,它必然采取了一些新的表达手段。上面在介绍各种网络新词的构造类型时,已经明显地见出它们不同于日常构词之处,如果加上字母形式、数字形式、符号形式的构词方式,就远非日常构词方式所能说明的了。下面再看看语法上面的变化特征。
网络语言在基本语法结构关系上虽一依传统汉语的表达方式,但也有一些新表达形式。有的属于“例”上的拓展,有的则属于“型”上的新创。
用例上的拓展主要体现在句法搭配关系和搭配对象的变化上。搭配关系的变化如“把照片伊妹儿给我”,将名词“伊妹儿”用作动词。搭配对象的变化如“严重同意”,它仿自“严重关注”,扩大了“严重”的适用范围。还有方言规则的使用,如“给我一个理由先、吃饭在食堂”。这些现象背后的规则并非网络语言所特有的现象,但网络语言放大了它们的交际面。
类型上的新创中,很多跟外语表达方式的移用和改造有关,这也是网络表达拼盘效应的体现。如in在英语中一般用作介词和副词,在非正式场合可以用作形容词,但只做修饰成分(相当于区别词),指“入时,目前流行的,紧跟或追赶潮流的”。引入汉语网络交际的语义是“入时,时尚”,因而出现了“很in、真in”的表达。out与in相反,指“过时,落伍,土”,可以表达为“很out”。拼盘现象在网络词汇中非常普遍。
网络语言中还出现了不少词缀性质的语法形式。最为常见的是“ing”,它本是英语动词进行时的一种表达,移用到汉语网络交际中也表示正在进行,如“哭ing、抓狂ing、杀人ing、无限郁闷ing”。它已成为使用极为广泛的一种形式,平面媒体都已出现了这种用法,使用最多的是心理动词和言行动词。偶有英文的其他屈折形式,如“看ed”(看过了)、“兄弟s”(兄弟们,很多时候用“亲们”)等。还有类似的其他形式。如“di/滴”,即结构助词“的”,但专门用于句子最末,表示强调,如“不是这样di”。又如来自日文语法的“的说”,表示认为、觉得,可以粘在任何句子后面。
网络用语中有一些特殊的句末语气词,有直接来自口语的,也有谐音的。如“今天又有人病了哈、表忘记噢、粉好滴捏(很好的呢)、雷人压”等。这与网络交际中喜欢采取拟态的形式有关,或拟音,或拟形,或拟情。这跟下面提到的网络修辞有关。
这种网络词缀形式和网络语气表达形式实际上形成了一种网络口语形式,它跟网络视觉形式(如网络视觉词、网络视觉句法)一起是网络构造规则特殊性的重要体现。无论是网络口语形式还是网络视觉形式,都有显著的拼盘特征。
很多具有网络特色的结构方式目前仍在形成的过程中,不能以是否渗透到日常语言交际中作为评判是非的标准。
(四)修辞手法方面,网络修辞既有对传统修辞手法的创新性使用,也有对新的修辞手法或表达方式的尝试或强化。
像仿拟、飞白、比喻、借代、谐音、婉曲、反语、拟人、拆词、通感、夸张等手法,网络语言中都有普遍的使用,有的还有所突破。例如用“很S”形容说话拐弯抹角,取其与S在形体上的形似;用“挖地洞”指设陷阱,用“286”形容反映慢、跟不上潮流的人,用“蜘蛛”指整天挂在网上的人,用“起床失败”指睡觉过头。修辞手法是分层次的,有的使用起来比较方便,有的则要求艺术性高一些。像谐音,使用起来甚为简便,网络表达中的数字词,大多利用谐音来实现,如“7456”指气死我了。网络中“飞白”现象比较普遍,上面的谐音词常由飞白构成;又如“水饺(睡觉)、幽香(邮箱)、果酱(过奖)、酵母(教母)、台毒(台独)、沉水蝙(陈水扁)、人参公鸡(人身攻击)”等,皆是有意为之。这与网络输入常采用拼音输入的方式有关。
对新表达手段的创新性使用最典型的就是上面提到的析词别解后的重构赋义,像“白骨精、蛋白质、偶像、天才、神童”都已成了网络通用语,日常交际中也偶有涉及了。
颇具特色的是综合运用多种修辞手法。如用“13579”指奇怪,其构造过程是:
这种数字、英语形义、汉语语义的转换,曲折而隐微。又如用“0001000”指我非常孤独,其中的“1”像一个人,也像英语中的“I”(我),旁边的“0”表示空无一人,许多“0”的铺排强化了空的状态,收取拟态之效。转喻(借代)的手法是运用得比较充分的,当然,这必然给有效读解带来难度。多种修辞手法的综合运用为我们分析修辞手法之间的互动机制、合力机制提供了新的思路。
显然,这样的表达方式在网络语言出现之前是很少见到的,是网络推动了它们的发展。很多修辞方式是在汉语/汉字、英语/英文字母、数字、符号的综合运用中体现出来的。这种混合多种形式、方式来构造新的表达形式,实际上反映了特殊的语言接触方式和形式。
在各种修饰手段运用的过程中,达到特定修辞效果最常采用的手段是“逆谐”,即:“要想描写高尚的、美好的、庄严的东西,却通过低俗的、粗陋的、谐噱的表达来显示;或者在表达高尚的、美好的、庄严的内涵时却附之以低俗的、粗陋的、谐噱的内容。反之亦然。这是惯常语言表达中的另类表达。目前,反向表达似乎成了时髦,尤其是网络语言、校园语言中。这便使逆谐的手法大行其道。”(施春宏,2003)毫无疑问,有的修辞手法尚未被我们整理出来,尚处于“意会”甚至根本未意会到的阶段。(4)
(五)新的表达形式和新的色彩创造了一种新的语体形式和社会方言。
由于表达媒体的不同,网络语言“成为一种独特的语篇类型”,“有其独特的话语范围、话语方式和话语基调”(秦秀白,2003),展示出一种新的文本形式。从这个角度来看,说“媒体创造语言”是不过分的。报刊不同于口语,因此报刊语言自然不同于口语交际;广播、电视不同于报刊,因此广播电视语言自然不同于报刊语言。同样,网络不同于以往任何传播媒体,网络语言这种新兴的媒体语言自然有不同于以往任何媒体语言的地方。它是一般所言的口语、书面语以及有声语言之外的另一种表达形式。它的很多特性来自娱乐和游戏的性质,其中又有新奇兼随意的地方。而这种特性得以充分显示,是与其指头输入、目治方式、网络语言的游戏心态和方式有很大关系。
由此可见,这种新型的人际交际空间所形成的新型语体形式体现的是一种新的社会方言。近些年来,学界都将网络语言这种功能变体形式看作一种新的社会方言(如秦秀白,2003;张薇、王红旗,2009)。在网络语言使用者的社会特征中,职业、身份、年龄、性别、文化程度、阶级或阶层等实际上都处于一种屏蔽状态,但在表达方式上仍有所体现,如掌握网络话语权的以学生和“小资”为主、中等以上文化程度为主等。这种交际形成了一个虽不稳定但也有很大交集的言语社团。这自然在语言交际方式上呈现出独特的特征,通过网络这一特殊的语言环境而得以充分展示。网络语言表达,在内容和形式上都有鲜明的后现代特征:非理性,去中心化,多元化,游戏,随意性,为解构而解构等。(夏历,2005;刘绪义、钱宗武,2005;陈光明,2008)这是宏大叙事、主流话语之外带有鲜明的草根语文特色的交际效应。
需要说明的是,由于承载媒体和交流方式的不同,这种社会方言跟行业语、隐语等一般社会方言有很大的不同。承认它的社会方言的性质是一回事,如何看待这种性质的特殊之处则是另一回事。在跟其他社会方言乃至普通交际语言比较时,网络语言这种新语体和新社会方言的最显著特征就是其游戏性质,其他很多特征都来自语言的游戏功能,体现的是一种娱乐色彩。网络语言当然也需要传递信息,但在传递信息的过程中往往采取夹杂游戏的方式。交际不只是为了传递信息,还有其他功能,而且有时某种别的功能会更加凸显一些。网络语言正是凸显了语言传递信息之外的游戏功能,折射了特定时期的某些社会情趣和心理时尚。
三网络语言的语言学价值
所谓语言学价值,按现代语言学观念来理解,就是指特定语言现象的形成和发展、形式和功能以及由此而引起的语言学与非语言学争议,为语言学研究在观点、方法、内容、事实等方面启发了新的思考,产生了新的认识,得出了新的结论,预测出了新的趋势。作为一种方兴未艾的语言现象,从大的方面着眼,网络语言的语言学价值至少体现在以下几个方面。
(一)促进语言观和语言学观念的调整。
网络语言所引发的最直接的思考就是:网络语言算不算一种语言交际形式?如果算,其性质是什么?如果不算,其性质又是什么?有人曾将网络语言视为黑话、语言垃圾,并没有得到绝大多数人的认同,尤其是遭到网络语言使用主体的反对。
如果我们回归到语言观的根本性质上,也许更能接近问题的本质。语言在交际中形成、存在、发展,因此语言的根本属性就是交际性。基于此,最根本的语言观就是交际观。交际之外无语言。而交际本身是动态的,分层次的,没有静态的交际,没有平面齐一的交际。这样看来,网络语言是为实现特定群体的交际需要而出现的特定交际方式,对它的认识应该立足于网络语言是否有效地满足了这种交际需求,从根本上说它不是为了适应非网络使用群体的认同和理解。也就是说,网络语言的非网络化只是它的派生属性,这是网络交际的进一步扩展。可以这样说,网络语言的出现,强化了我们对语言交际观的认识。
语言交际观引发了我们语言学观念的调整,这主要体现在我们对语言的交际本质、对语言结构的层次性和动态性、对语言交际的层次性和人文性、对语言用变和演变的关系、对语言的创新机制等有了新的认识。语言学研究,要反映和适应这种观念的调整。尤其是多样化和主体化之间的关系(于根元、施春宏,1998),过去我们过多地注重于主体化,在面对多样化的交际时,往往理论准备不充分,解决策略也比较单一,甚至将主体化理解成一体化、单一化。只有在多样化的语言生活中发展和检验语言学理论、发展和检验语言观和语言学观念,才能使理论和观念更加切合实际,更加接近语言和语言交际的本质。
(二)新的语体形式对语言学研究视角和方法的影响。
作为一种新的语体形式,网络语言跟以往任何语体形式都有明显的不同,无论是表达手段还是结构形式。从功能主义语言学来看,“不同的语体有不同的语法”(张伯江,2005)。网络语言更是如此,它既不是口语,也不是一般的书面语,也不能简单地看作两者的融合。它是非口耳传播的,有鲜明的视觉化特征。这种新的语体形式是跟承载它的媒体相互关联的。语言载体和传播方式影响了语言交际的方式和过程,进而影响了语言交际的性质。新媒体就有适应新媒体的表达方式,纸质的、平面的媒体和有声媒体的表达方式无法完全适应网络交际的需要。这就促使我们对媒体跟语言的关系进行新的思考。我们不能将考察平面媒体的视角简单地移植到网络语言中来。这种研究视角的调整,最为突出的是我们对语言交际色彩和风格的重视。这种色彩和风格不只是修辞意义上的,而是交际属性的重要组成部分。网络语言的游戏特征和指头输入方式决定了网络语言的基本色彩和风格:在虚拟空间中,通过网络拼盘方式以实现求新求异的效果。对文字、数字、符号、图片的“随”意拼接、改造,对怪字、别字、特殊谐音、词义别解的尽兴使用,都是这种色彩和风格的体现。网络上的谐音别字等带有游戏性质的词语层出不穷,并产生了特殊的色彩。像“斑竹、板斧(版副)、大虾、大刀(打倒)”这样的键盘输入性词语是不容易在网下首先出现的。
同样,由于网络承载和传播方式的特殊性,使得基于互联网的研究方法跟传统研究方法有所不同,无论是定性的还是定量的。最显著的表现就是研究者与网民之间可以实时互动。这种“以计算机为媒介的交际”,是无法按照研究任何传统媒体中语言现象时所框定的研究内容和研究方式来分析的。新媒体形成了新风格,新风格制约和启发了分析的新思路,新思路必然引起新的分析观念和方法,并由此带来新的分析结果。可以这样说,目前人们对网络语言的研究方法还不完全适应网络语言。我们不但要运用传统的语言分析方法,还要借鉴和吸收心理学、社会学、符号学、文化学、传播学、统计学等的分析方法,还要探索新的分析方法。
(三)促进语言学相关学科的发展,尤其是引发对语言调节和语言变异关系的新思考。
显而易见,作为一个新的语言交际现象,作为一种新的社会方言形式,网络语言的出现和发展对语言学相关学科,尤其是社会语言学、应用语言学、文化语言学、语言伦理学、语言教学等交叉学科的观念和方法是有深刻的影响的。这些都在如何认识语言调节和语言变异关系方面有集中体现,这是跟语言观和语言学观念的调整紧密联系的。
语言调节和语言变异是语言形式出现、存在和发展的基本方式。语言作为交际、认知、思维的工具和信息、文化的载体,其调节和变异的动因和机制必然伴随着并强化了人们对语言性质的认识的变化,必然会引起人们对语言与社会、语言与人的关系的重新思考,同时“加深了人们对语言现象和语言结构及其要素的功能适应性的认识”(施春宏,1999)。
毫无疑问,语言调节和语言变异是一个过程,是在过程中调节语言交际和语言形式与功能。网络语言在这十多年的发展过程中,很好地展示了这种调节和变异的过程与方式,而且目前它还处于成长时期。因此对它形式和功能、历史和现状的精细考察极具学术价值。
网络语言的一个显著特征就是语言现象的流行性。网络语言的传播对大众语言时尚的形成起着举足轻重的作用。网语符号化过程虽然大多具有临时性,但适应了当时的交际需求;负载于符号之上的社会、文化背景由此而能激活。这就促使我们重新思考流行用语的流行过程及其在语言交际中的作用。有先生曾说“语言发展不能靠流行语推动”,这种认识有一定的普遍性,但却是值得商榷的。流行的未必就是一定要沉淀到未来的语言交际之中才有语言价值。“粉丝”已经广为使用了,而相关的“凉粉(张靓颖迷)、粉笔(周笔畅迷)、盒饭(何洁迷,‘饭’是fans的另一种音译形式“饭丝”的缩略)、玉米(李宇春迷)、荔枝(黄雅莉迷)、钢丝(郭德纲迷)、乙醚(易中天迷)”毫无疑问只能流行一时,但它们都各有自己的交际价值,而且“凉粉”等等的出现,既使“粉”这个潜词素成了一个新的构词词素(惠天罡,2006),又提供了一种非常有效的构词模式。可以想见,还会有更多类似的词语相继粉墨登场。这从一个侧面展示了“网络时尚与网络语言的互动”关系(贺又宁,2002)。就语言调节和语言变异而言,我们最需要处理好语言用变和语言演变之间的关系,这是语言交际观的基本要求。
对新的表达形式而言,对正在出现的语言现象而言,对已经淡出语言交际的现象而言,我们关心的应该是效度和品位,而不是能否达到全民交际的程度。调节和变异是个过程,且永远处于过程中;规则、格式是暂时的现象,规则化、格式化永远是个过程。任何语言现象都是一个由潜到显、由显到隐的过程,不同现象显隐过程并不相同,时间长短也不一致,因此不能只看到“显”的一面而无视其他。
(四)网络语言对语言规范化工作的启示。
由网络语言现象引发的语言学思考与争议,往往在语言规范化方面有集中展示。这主要体现在以下几个方面。
首先是对语言规范观的调整。很长时间里,我们都试图采取约定俗成的习性规范观念来对待语言现象。约定俗成作为对某些语言现象的发展过程的描述是基本到位的,但作为规范原则则有问题。规范不是简单的描述,也不是只对经过长期俗成的东西的描述,而是有所评价,有所选择,有所推荐,有所引导。对网络语言这种新兴现象而言,在其形成初期,在其发展过程中不断出现的现象,除非我们无视它的存在,否则约定俗成的规范化显然难以发挥作用。约定俗成的规范观主要体现在两个方面:新出现的现象因用的时间短、用的人少而总是不规范的,规范的语言现象都是用的时间长、用的人多的;对新的现象我们可以不急于评价,等用的时间长了、用的人多了,即经过“约定俗成”,我们就认为它们是规范现象了。其实,这两点用来规范网络语言现象都不合适。这种规范观的最大问题来自于规范的手段和目标:对被认为不规范的现象(即那些刚出现的、用的时间短的、用的人少的现象)怎么办?封杀?不可操作;听之任之,耐心等待?这就带来一个根本问题:规范化,不要也罢。实践的局限来自于理论的悖论。它无法解决这样的问题:如何面对新现象,如何评价新现象,如何整理新现象。规范实际主要不是去规范已经约定俗成的东西,也不是说没有长期约定俗成的都是不规范的,关键在于确定特定现象的交际值。语言规范化要体现大的追求:规范化知识的增长和语言生活的和谐。(施春宏,2009)
其次是语言学工作者的作用问题。通过我们的规范研究,我们发现,除语音、文字和基本词汇等方面外,专家学者在语言规范化过程中的作用是有相当限度的,关键是“因势利导,做促进工作”,做引导工作。如及时地整理、阐释、引介,这样才能争得有限的“话语权”。而约定俗成要么放大了自己的话语权,要么放弃了自己的话语权。有的专家指出,网络上的某些现象,连自己这种文化程度的人都不懂、不了解,可见其混乱、污染到何种程度。其实,这种论证是有问题的,这将不在同一交际场的人之间的语言交际看作同一个集合了。另外,在网络语言评价中,专家学者的声音跟一般网民的声音是杂然相处的,如何使自己的声音更有说服力,这需要做进一步的研究。而且更重要的是展开讨论,讨论的目的是逐步靠近事实的真相。就语言规范而言,光是做语言学的批评是不够的。
另外,网络语言使我们对语言(包括文字)的游戏性质和游戏功能有了新的认识。上文已经指出,网络语言对语言游戏功能的激发和推动作用是前所未有的,有不少语言现象主要来自于语言游戏的需要和结果。我们以前不怎么重视语言的游戏功能,至少在理论上如此。而网络语言的出现,则凸显了语言游戏性质的一面,使语言游戏功能得到充分的发挥。网络语言中的很多表达形式就是来自于网络的游戏心态和游戏创造。火星文的出现,就是将语言的游戏功能发挥到极致。这从根本上说明:语言交际是一种生活方式。网络语言对某些表达手法的钟情(如逆谐),主要还是为了实现语言的游戏功能。这是一个话语狂欢的世界,人人都可以参与创造,但也不是没有规则可言。游戏有游戏的规则。网络表达虽然表面上追求个性,但实际上跟风现象非常普遍。跟风未必是坏事,跟风往往意味着某些规则为人所认同。跟风现象的层次和类型、广度和深度反映了语言交际的本质,正如风向、风速等指标反映天气的变化一样。不研究风,无法了解天气。如何有效地描写和解释网络语言现象,这对语言学观念和方法都是一种新的挑战。
视觉效果也罢,拼盘效应也罢,游戏功能也罢,折射出的正是一种新的美学趣味,形成一种新的美学特征,具有鲜明的美学价值。我们对此的认识和分析都很不充分。
四余论:重视考察语言交际的每一个窗口
语言交际不是一种状态,而是一种实践,是一种运动过程,语言本质和语言交际的本质在这种实践和运动过程中充分展示出来。而且这种运动是一种语言、社会、人之间的互动过程,是这种语域的交际和那种领域的交际的互动过程。网络语言的形成过程只有短短的十多年,这给我们考察一种新的语言交际方式从出现到形成和发展的过程提供了绝佳的样品。网络语言最大的问题是不像平面媒体那样存在着“守门员”,然而这并不意味着网络语言就必然是混乱的、充满污染的,“有话不好好说”。毫无疑问,网络语言在形成和发展过程中存在着一些负面现象,但是我们不能只看到负面的东西,要看有没有可以替代的东西,替代后是否失去了什么,有时还涉及交际的基本权利的问题。因此我们需要从这两重价值来进一步审视网络语言的本质、功能。如果说存在或需要一门网络语言学(Weblinguistics)的话,需要从网络语言的语言(学)价值和非语言(学)价值这两个方面来研究。当然,网络语言除了有作为主导方面的积极因素外,确实存在着某些消极的方面(如网络语言中粗俗的成分相对多一些),影响了交际。但我们还要分析,这里面有的问题并不是网络语言本身必然带来的,而是“人”的问题、社会的问题。其实,很多语言问题,都是“人”的问题,而我们又常常以为是语言的问题,以致否定了某种语言现象或某种语言交际方式的价值。当然,我们肯定网络语言的语言价值和语言学价值,并不意味着网络语言就是一场“语言革命”,就是“21世纪语言的发展方向”。同样,我们更不认为网络语言就是垃圾、污染;我们也不主张“让网络语言留在网络”,因为它既不可能也不现实,且无理论基础。
语言学价值的核心就是引发思考,重在建设,从而带来语言学知识的增长,推动语言生活和谐发展。而只有重视任何考察语言交际的窗口,才能得到丰富而充分的认识。
摘要:本文讨论网络语言的交际性质和学术意义。文章在归纳网络语言的语言学和非语言学方面的争议的基础上,讨论了网络语言的语言价值和语言学价值,并进而指出,只有重视考察语言交际的每一个窗口,才能更有利于促进语言学知识的增长,推动语言生活健康和谐地发展。
感悟语言 收获语言 第11篇
学习活动一:品茗赏文,迁移写作。
诵读课文最后一个自然段。
师沏上一杯碧螺春茶,让学生观察它的色香味形,特别是沏的过程中茶的情形。
师:“如果说看制作碧螺春有一种新奇的感觉的话,那么品尝碧螺春就更有一种陶醉的感觉了。”你们因何而陶醉,请认真读读第六自然段。
生:我陶醉在观察碧螺春入水的过程中:茶叶如青螺入水,旋转着飞速下沉。这时叶芽伸展,茸毛轻舒,一旗一枪,嫩绿透亮,姿态极其动人。
生:我陶醉于碧螺春的清香中,整个玻璃杯中,汤色碧绿清晰,清香扑鼻而来。
生:我陶醉于碧螺春令人回味无穷的味道中,轻轻抿上一口,清新爽人。茶水入肚,口中感到甜津津的,让人回味无穷。
生:我陶醉于品茶的气氛中,朋友相聚,品茶谈心,那份真诚的情谊随着浓郁的茶香飞溢四周……
师:你们陶醉了,老师也陶醉了,陶醉在碧螺春的色香味形中;陶醉在朋友之间的深情厚谊中;陶醉在作者优美的语言文字中。让我们再读一读这一段文字。
师:老师更陶醉在你们的感情朗读中。请试着从色香味形这几个方面介绍一下你最喜欢的一种蔬菜、水果或特色小吃。
学习活动二:图文共赏,启发想象。
师:“绿树映衬着俊美的身影,构成了一幅美丽动人的图画。”这是一个什么句子?
生:这是一个比喻句,把绿树映衬着俊美的身影比作图画。
师:(映示图片投影)这是课文描绘的情景,谁能给它起个合适的题目?
生:我给它起的题目是《采茶》。
生:我给它起的题目是《江南采茶图》。
生:我给它起的题目是《茶园春晓》。
师:这些题目起得行吗?
生:这些题目起得都很好。
师:这是一幅怎样的画面?
生:随着几声嘹亮的鸡叫……茶园也被染上了一层金色。
生:茶树翠绿欲滴,采茶姑娘神采飞扬。
师:与“神采飞扬”意思相近的成语有哪些?
生:神采奕奕、眉飞色舞、兴高采烈……
师:“整个湖山醒来了”一句中,“湖”指什么湖?“山”指什么山?“醒来了”用得是什么修辞手法?
生:太湖,东山和西山,拟人。
师:“醒来了”的湖是美丽的、繁忙的。请你展开想象,再写几句话。
学习活动三:
师:“在清香的碧螺春茶汤里,我看到了江南明媚的春光。”这是一个外国诗人在品茶之余写下的诗句。作为碧螺春的家乡人,你一定会写出更多、更美的诗句。(一边品茗,一边放音乐,练习说话,自由交流)
生:在清香的碧螺春茶汤里,我看到了勤劳美丽的采茶姑娘。
生:在清香的碧螺春茶汤里,我看到了山清水秀、小桥流水的江南风光。
生:在清香的碧螺春茶汤里,我看到了技艺高超的焙茶手。
生:在清香的碧螺春茶汤里,我看到了江南好,日出江花红胜火,春来江水绿如蓝,人人忆得好江南。
生:积雪独封蒙顶树,惊雷未发碧螺春。华夏地暖萌芽早,入贡宜先百物新。
生;碧螺春茶,岁贡御茶。色翠香郁,汤浓形美,与君共尝,友情难忘。
生:野泉烟火白云间,坐饮碧螺爱东山。
反思:
这三个片断旨在让学生品味语言、感悟语言,吸收和运用语言,读写结合,从而拓展学生的语言,提高学生的语言能力。
学习活动一中,教者通过亲自沏茶,让学生观察、读文,再紧扣“陶醉”一词,让学生自由采撷“语言之花”——自己喜爱的课文中的优美语言,最后,通过反复的感情朗读,深入理解碧螺春的色香味形,然后引导学生紧扣“色香味形”仿作,介绍一种所爱的蔬菜、水果或风味小吃,水到渠成。
学习活动二中,教者图文结合,展开教学,通过析词赏句,感悟语言,如引导说“神采飞扬”的近义词,重在积累词语。“整个湖山醒来了”一句中“醒来了”一词是教者选择的写话突破口。学生披情入境,读文赏图,图文共赏,写得多姿多彩。
学习活动三是上两次活动基础上的一种升华。学生学作诗句肯定有一定难度,但学生有了前两次的语言积累,前两次的情感铺垫,于是从心底流露出了对碧螺春的赞美,对中国茶文化的赞美,对江南风光的赞美,对中国人民的赞美。
在这篇课文的学习中,学生收获了知识,收获了形象,收获了情感,更收获了语言;教者读写结合,课内外结合,充分体现了“大语文”的教学观。
试析C#编程语言的特点及功能 第12篇
关键词:C#,编程语言,特点,功能
0 引言
C#专业人士通常读成“C sharp”,而更多的非专业人士通常读成“C井”,其是一种安全、稳定、简单、优雅,在C及C++编程语言基础上衍生发展而来的面向对象的新的编程语言。C#不仅继承了C及C++的强大的编程功能,并且有效解决了存在的复杂特性问题(如缺少宏及模版,无法实现多重继承等),其可以说集中了VB编程语言简单可视化操作以及C++编程语言高运行效率的特点,具有易于操作、风格优雅、特性突出及面向组件编程便捷等优势,已发展成为ECMA与ISO标准规范。虽然表面上看C#是在C++基础上写成的,然而实质上其是Java、Pascal、VB等各类语言的综合。
1 C#编程语言的特点分析
C#是其是一种安全、稳定、简单、优雅,在C及C++编程语言基础上衍生发展而来的面向对象的新的编程语言。、程序员通过C#可以在Microsoft的NET平台上方便地建立各种应用程序,其与Java编程语言类似。
1.1 继承发展了C++功能
C#不仅继承了C++类型安全检测及重载等强大功能,同时还提供了取代C++的ANSI和C预处理程序等功能的新功能,使类型安全性进一步提高。
1.2 应用开发(RAD)迅速
C#具备的支持快速开发(RAD)功能使其成为重要的开发语言。该功能能够极大地增加开发效率,让开发人员不必再进行无意义的重复性劳动,该功能可以从垃圾收集和指代等特性上表现出来。通过垃圾收集机制可以使开发人员在内存管理上变得相对容易,而通过指代功能则可以使开发人员直接调用函数。C#编程语言还解决了C++易产生程序错误的缺点,通过C#可以让开发人员使用较少代码编写出功能强大的应用程序,防止发生错误,有效缩短系统开发周期等。
1.3 语言使用自由
C#编程可以充分享有使用自由,其能够与所有支持.NET的编程语言实现信息互换,并可随意继承与使用其他编程语言,节省了大量时间,提高了工作效率,无需改变语言各类即可实现.NET下相互交流。
1.4 Web服务端组件强大
采用C#进行Web编程时,Web服务端组件十分强大,其既有传统组件,同时还有可编程组件,能够实现自动连接服务功能,通过C#能够进行服务器端的组件编写,开展数据绑定等服务更加便捷简单。
1.5 实现跨平台操作
如今,各种互联网应用程序各类繁多,因此要求开发设计出来的应用程序要能够实现跨平台操作功能。通过C#编程即可实现此功能,其可以实现客户端在在PDA、手机等非PC装置客户端能够运行。
1.6 融合XML技术
XML技术实现了与.NET的结合以后,C#编程也成为真正的网络编程,换而言之,C#与.NET可以说是专门为了XML进行设计的,C#程序员很容易通过C#内含的类应用XML技术。可以说C#使程序员编程更加自由,并使XML技术应用变得更加简单。
2 C#编程语言的功能分析
C#作为一种新的编程语言,其实现了行业语言与研究语言功能于一身,并且Microsoft还给C#编程语言注入了一些新的功能,从而使开发人员的语言构造效率变得更高。具体而言,C#语言功能的创建大都基于下面几种设计目标:
(1)统一的类型系统,创建C#语言中引用类型的使用方法。
(2)基于组件的设计,创建XML注释、属性、特性、事件、委托等功能。
(3)实用控制功能,创建在C#语言特殊功能(如安全指针操作和溢出检查等)基础上实现。
(4)实用语言构造,创建如foreach、using语句类似的实用语言构造,从而有效促进开发效率的提高。
Microsoft给C#语言以后的版本中会增加的新功能主要有以下四种。,
2.1 泛型
当项目日益复杂化的情况下,程序员就急需通过某种方法来对基于组件的软件实现重复使用及自定义功能。要想达到高级代码在各种语言中可以重复使用的目的,就需要通过泛型功能加以实现。C#提供了安全而高效的泛型功能,其与C++的模板及Java的泛型语法上略有不同,然而实现方式上却大相径庭。
2.1.1 生成
程序员通过C#即可在位于基本对象类型实例中进行数据存储,从而创建出有限形式的泛型。因C#所有对象均由基本对象类型发展而来,加之.NET类型系统具有装箱与取消装箱的功能,程序员可在对象类型的变量里存储引用类型与值类型。.然而,其在实现引用类型、值类型、基本对象类型的相互转换时性能存在不足之处。
2.1.2 创建使用
通过C#的泛型能够创建出高效数据结构,以供编译器使用之用。参数化类型创建时的内部算法是相同的,然而其内部数据类型会随最终用户的设置而发生变化。
2.1.3 优势
程序员应用泛型时,只要进行一次代码的编写、测试和部署,就能实现对该代码在不同数据类型中的重复使用,并且编译过程中还要检查泛型。泛型C#使代码膨胀速度得以有效降低。泛型能够创建具有类型的集合,既能保证良好的操作性能,同时又可防止创建各个类的特定变体。
2.2 迭代程序
主要指在研究语言功能基础上构造出来的语言(如CLU、Sather、icon等)。换句话说,类型可以利用迭代程序说明foreach语句如何实现对元素的迭代。
2.2.1 定义
因为迭代程序属于foreach循环结构的逻辑对应物,故其与函数定义类似,通常使用f oreach关键字,其后使用一对圆括号。程序会给List类型进行迭代程序的声明,用户决定了其返回类型。
2.2.2 工作原理
迭代程序主要表明程序处理是如何进行枚举器模式操作的。通过C#编译器可以实现迭代程序代码与枚举器模式相应类及代码的转换,不必进行类与状态机的创建。该方式能够有效提高工作效率。
2.3 匿名方法
主指某种实用语言结构,程序员通过该方法可以创建可装箱处于委托当中,且今后能够执行的代码块。与LISP及Python里的对应语言概念大体相同。
2.3.1 委托代码的创建
委托是引用方法的对象。委托的调用即引用方法的调用。如某简单窗体包括列表框、文本框及按钮三个控件。按钮初始化时程序会指示其Click委托引用该对象中其它位置存储的AddClick方法,该方法里文本框的值要在列表框里进行存储。
2.3.2 使用方法
匿名方法使用时程序可直接引用委托里的可执行步骤,而不必创建新方法。其声明方法是在实例化委托基础上,加一对花括号以代表执行范围,再加一个分号终止语句。
2,3.3工作原理
C#编译器在“匿名”委托时会自动把执行代码转换成惟一命名类里的惟一命名函数。再对存储代码块的委托进行设置,从而引用编译器生成的对象与方法。委托调用通过编译器生成方法执行“匿名”方法块。,
2.4 局部类型
虽然单个文件里维护类型的全部源代码是面向对象编程的好方法,然而性能约束也可能变大类型。并且有时类型分割开销巨大。此外,程序员还会通过创建使用应用程序对源代码及修改结果代码进行发布。而局部类型可以实现把含有大量源代码的类型分割成为多个不同的源文件,从而为开发维护提供便利条件。并且其还可实现计算机生成类型与用户编写类型的分离,使补充或修改工具生成的代码变得简单化。
3 结论
C#是源自C及C++的,简单、现代、面向对象及类型安全的程序设计语言。C#具备Web应用程序开发的强大功能。C#相比C++而言更具应用价值,是未来.NET平台应用的主流,如今已有大量开发人员使用C#编程语言进行软件的构建。
参考文献
[1]刘甫迎等.C#程序设计数程(第2版).北京:电子工业出版社,2008
[2]孙永强等.Visual C#.NET入门与提高.北京:清华大学出版社.2002
[3]郭胜等.C#.NET程序设计教程.北京:清华大学出版社. 2002
[4]王吴亮,李刚等.Visual C#程序设计教程.北京:清华大学出版社,2003