时间:2022-12-17 22:27:54
序论:在您撰写编程语言时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。
关键词 Java技术;编程设计;语言研究
中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2017)188-0068-02
Java编程技术是当前计算机软件设计方面较为常用的方式之一,其具有较强的通用性、高效性和安全性,得到了各大软件公司的青睐。近年来其广泛的运用在各大PC、数据中心中,成为了编程行业不可或缺的重要工具。相比于C+语言来讲,其更易于上手,方便快捷,对于初学者来讲更具熟练使用的可能性。本文简单介绍了Java编程的概念,并对当前Java编程领域存在的问题进行了总结研究,并相对应的提出了笔者的看法,希望其中的拙见能够对相关产业的发展做出一份贡献,从而推动整个计算机软件系统的健康发展。
1 Java编程过程中存在的问题
1.1 Java编程过程中中文字符无法正常显示
Java编程软件本非中国制造,其主要针对的是以英文字符为工具语言的Java编程而设计,因此在文字切换与适应性等领域存在较大的问题。这一问题主要表现在中英外文在同一框架内使用时的兼容性较差、容易出现中文空缺或乱码现象等。在进行中文环境的Java应用的开发当中,由于Java技术本身的缺陷,一旦出现中外文交互使用的情况时,就有可能出现中文字符信息缺失或无法识别的情况。例如:网页制作系统中的中文字符无法正确显示,出现阿拉伯数字乱码、在bios后台系统中出现系统阻碍或漏洞,其文字符号显示为“?”等在不同特殊情况下,其表现也往往不大相同。
1.2 Java编程技术人员技艺不够精湛,编程过程容易出现细节错误
在20世纪末期,我国计算机软件的发展逐步推进,理论界也开始了进一步的讨论与研究,Java语言编程相关技术在此刻进入人们的视野,然而由于技术水平有限,理论基础也并不扎实,使得Java编程相关技术虽然得以出现,但其理论体系发展并不完善。现如今,由于我国经济高速发展,Java编程领域需要大量的技术人才,但由于Java编程技术本身属于舶来品,很多技术人员在学习过程中一知半解,很难在实际工作中施展拳脚,有效运用。在Java编程行业扎根的技术人员一定程度上不再充分吸收最新的技术理念,也封锁了从各大高校刚刚毕业的知识分子进入相关行业工作的途径,这使得Java编程技术的有效传播与发展成为奢望。目前的Java编程人员在学习该软件期间并未能做到充分理解、耐心练习、有效把握。因而在实践工作过程中往往会出现这样或者那样的问题。Java编程技术人员在编程过程中很容易使用错误或类似的代码进行编程操作,这会导致编程结果出现较大偏差,对相关软件使用方产生巨大的经济财产损失,类似的失误林林总总,难以避免,严重制约了相关技术的发展。
1.3 Java编程软件编程原理落后,需要更新版本,及时创新
Java编程软件最初主要以欧美国家为使用方,因此其软件设计、编程习惯均以欧美人员的惯用风格为蓝本。在20世纪末期,Java编程操作系统传入中国,相关研究人员在粗略改动下基本沿用了其基础操作框架,为我国软件编程行业赚得了宝贵的“红利时期”。然而当前我国计算机软件更新迅捷,传统的操作系统、编程方式似乎难以满足日益增长的客观需要。当前科学研究、高校教学所使用的Java编程模板已经难以适应当代科技发展需要,出现了一系列的问题,这些问题表现在文字转换的兼容性、版本差异导致的相互不识别问题等。这些问题促使相关科研机构进一步更新Java主模板,及时创新,使其适应现代化、信息化发展的需要。
2 解决相应问题的措施与方法
2.1 提高Java的中文编码转换能力,设立中文
字库
众所周知,当前编程软件运作均是采用Unicode格式的编码,而本地网络计算机系统默认支持的却极有可能是其他形式的编码。这要求我国Java编程软件制造研究机构要及时更新编码列表,提高系统中文编码的识别转化能力,也要尽可能的设立中文字库,通过中外文字符的一一对应提高Java编程软件的适应性与灵活性。要针对性地改变Java编程软件的源文件系统,有选择性地加入字库检索功能,从而为Java系统的本地化提供基础与条件,保证在“Java源代码―Java字节码―虚拟机 (JVM)―操作系统―显示设备”过程中的每一步都必能够正确地处理中文
编码。
2.2 加强专业技术培训,提高相关技术人员的专业水平
Java编程技术当前已经取得了较大进展,但由于我国相关技术领域开展较晚,对很多基础知识的了解不足,这使得编程人员在未能良好掌握基础的前提下就投入了实际的工作之中。想要解决技术人员专业水平不足的问题,最佳方法便是在工作之余推行广泛的专业技术培训,在学中进行工作,在工作中熟练所学知识。要定期对国际先进编程技术进行展望,定期邀请国际顶尖编程技术管理人员进行亲身指导,要时刻注重优秀人才的引进。相关计算机软件科研机构应当选派本机构内优秀科研人才进入国际顶尖科研机构进行交换学习,也可国内交换,从而增强相应机构间对于Java编程理论的掌握与创新能力。要注重相关学界的理论创新,对有特殊才能的社会人员、青年学生果断录用,从而为Java编程领域的发展储备人才。
2.3 更新Java编程软件技术,及时创新
Java编程软件需要随着时间的发展而自我完善,中国编程技术要想进一步发展就需要行业整体提高对Java编程的理解和应用能力。当前Java编程软件大多以Unicode格式的编码为主要字符,与中文字符进行交互使用时容易出现各种漏洞。相关技术人员的任务便是改变这一格局,创新使用其他编码符号,并且对软件运作机制与框架进行创新研究,一改原有的源代码与操作模式,通过后台操作提高软件运作效率与质量。充分引进归国技术人才,将先进操作模式与技巧引入编程系统,进一步简化软件使用方法,更新使用界面,使得相关软件的使用方式中国化、简单化,符合广大中国编程工作者的使用
习惯。
3 结论
Java编程语言产生于交错复杂的网络环境之中,其要求Java语言编辑能够对多国文字进行有效的处理,当前Java编程技术尚不能做到这一点,这就要求相关技术人员能够有效地进行技术创新,将多国语言识别的合理内核进行总结,从而改善Java编程软件的整体运行机制。Java编程技术对整个计算机软件的发展历史来讲意义重大,对于整个计算机软件市场也产生了极大地变革。有效处理Java编程语言难题能够帮助相关产业朝着良好的方向进行发展。笔者在文中正是基于这样的考虑,抛砖引玉,希望上文内容能够榇蠹曳⒒右患贾长留下助力,在此期盼我国Java技术领域能够有更大的
发展。
参考文献
[1]冯中毅,董海棠,岳建斌.Java Web开发中的乱码问题分析及解决方案研究[J].科技信息,2013(19):92.
关键词:单片机;编程
中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)03-10765-01
1 引言
随着单片机技术日新月益的发展,学习它的人可是越来越多了。对于初学者来说,好多人一开始总会被单片机的各种各样的编程语言搞糊涂了。因为单片机目前的编程语言常见的有四种,即汇编语言、C语言、PL/M和BASIC。究竟要学哪一种编程语言好呢?我们先来做个比较吧。
2 单片机的BASIC编程语言
BASIC是一种高级语言,它的英文含义是“初学者通用符号指令代码”,是在1965年5月,由美国科学家托马斯・库尔兹研制出来的。10多年后,微软公司把它移植到微型机上。几十多年来,BASIC语言一直被认为是初学编程的语言。它已经由QBASIC发展到VB#版本,具备了很多结构化思想和编程方式,如函数、模块、局部变量、全局变量、数据传递等。早期的BASIC语言由于生成的代码不是最终目标机器的代码,而是经过一个RUNTIME程序解释后运行的,所以执行效率低。而单片机的BASIC编译器是直接将程序代码编译成相应芯片的机器码,不需要在单片机的内存中驻留RUNTIME程序,执行效率与其他编译器编译出来的一样。
我们现在以MCS-Electronics公司开发出来的BASCOM-8051开发环境为例,简要介绍一下以BASIC语言为基础的单片机编程系统。
它和一般BASIC语言一样具有如:For、To、Step、If、Else、End 、Select Case等等命令,其用法及功能是没有什么区别的,因此初学者比较容易入门。
另外,它还有针对单片机硬件所设计的命令如:LCD命令可以用一条命令来实现LCD的显示操作。
Cls '清LCD屏
Lcd"Hello world." '向LCD输入字符串
类似于这样的命令主要是提供了直接对单片机及其外部硬件的操作,特别是提供了对单片机端口的直接操作,如:P1、P2、P2.1、P0.3等等,简化了整个开发过程,是开发人员重点学习的部分。
例如有硬件电路如图(1)所示,编程使发光二极管间隔两秒钟闪烁一次的程序如下:
While I = 2
P1.0 = Not P1.0
Wait I
Wend
End
3 单片机的PL/M编程语言
PL/M 语言是Intel公司从8080微处理器开始为其系列产品开发的编程语言,其特点是:
3.1 简单易学
PL/M-51语言只有两类语句:一类是说明语句,用于说明变量和过程;另一类是可执行语句,如赋值语句、条件语句和循环语句等。这些语句的功能和BASIC语言中相应的语句相似,如:
P1=02H;/*赋值语句*/
IF M>2 THEN N=P1;/*条件语句*/
DO I=0 TO 10;/*循环语句 */
3.2 可读性好
PL/M-51是一种结构化语言,其程序是块式结构,可采用缩进式方法书写源程序,使程序层次清楚,便于理解和阅读。一个完整的程序可由多个模块组成,而每个模块又是由多个程序块构成。
3.3 可靠性高
PL/M-51编译软件检查用户程序对单片机的各种资源使用情况,对冲突使用情况或不合理使用情况能提出警告,并能自动为用户程序合理分配内存。
3.4 隔离性好
PL/M-51中,既可有全局的静态变量,也可有局部的动态变量,对于全局性的静态变量,其性质和BASIC中的变量一样,该变量在整个程序中均有效。对于局部的动态变量,它只有在其所说明的程序块中或过程中有效,在该程序块或过程之外则无效。局部动态变量的特点是,当由多个人共同编制一个程序中的不同模块时,而不必担心是否使用了相同的标识符而发生冲突。模块化的程序设计增加了程序设计的灵活性的方便性。
3.5 兼容性好
PL/M-51可同汇编语言或其他语言的目标模块连接起来,生成可执行代码如果用户必须使用汇编语言编制一段程序,或是想利用已调好的汇编语言程序块,那么该段汇编可以很方便地连接到PL/M-51程序目标块中。
3.6 具有良好的算法库和库管理能力
PL/M-51语言具有INTEL公司所提供的算法库和库管理功能用户能利用现成的算法库完成加、减、乘、除等运算,并能建立自己的特定算法库,使得编程一劳永逸,提高软件的开发效率。
由上面几点可见,PL/M语言是类似于Pascal一种语言,是一种结构化语言。PL/M编译器好像汇编器一样可产生紧凑代码,可以说它是一种"高级汇编语言",可详细控制着代码的生成。但对51系列的单片机来说,PL/M不支持复杂的
算术运算、浮点变量而无丰富的库函数支持。学习PL/M无异于学习一种新语言。
4 单片机的汇编语言
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少,程序执行效率高,由于它一条指令就对应一条机器码,每一步的执行动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。但是不同的类型的单片机,其汇编语言可能有点差异,所以不易移植。比如你在PIC12CE518单片机上用汇编语言编了一个程序,到了STC89C51单片机上那可就运行不了,因为他们的指令系统是有区别的。
单片机的汇编语言非常像其他汇编语言。指令系统比第一代微处理器要强一些。但单片机拥有不同存储区域使得其编程变得复杂一些,可是作为一位电子工程师,懂得汇编语言就可帮助你了解影响任何语言效率的特殊规定。例如,懂得汇编语言指令就可以使用在片内RAM作变量的优势,因为片外变量需要几条指令才能设置累加器和数据指针进行存取。同样的,当要求使用浮点数和启用函数时也只有具备汇编编程经验才能避免生成庞大的、效率低的程序,对于这方面的编程,没有汇编语言是做不到的。
5 单片机的C语言
单片机的C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言具有功能丰富的库函数,运算速度快,编译效率高,有良好的可移植性,而且可以实现直接对系统硬件的控制。此外,C语言程序具有完整的程序模块结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。与汇编相比,有如下优点:
(1)对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解,至于寄存器分配、不同存储器的寻址及数据类型等细节均由编译器管理。
(2)程序有规范的结构,可分为不同的函数。这种方式可使程序结构化,将可变的选择与特殊操作组合在一起,改善了程序的可读性。
(3)编程及程序调试时间显著缩短,从而提高效率。 提供的库包含许多标准子程序,具有较强的数据处理能将已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术。
单片机C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机的不同较快地移植过来。
综上所述,单片机的四种编程语言各有各的优缺点,作为单片机初学者,笔者认为还是应该先学习汇编语言,不一定要学得很精很熟悉,但要有一定的了解。因为汇编语言程序除了具有简洁明快、跳跃性强、占ROM资源少等优点以外,还因它和单片机底层硬件紧密联系,可以让初学者更加了解单片机硬件系统各种资源,熟悉各个功能模块的作用,从而为编出更高效率的程序打好扎实的基础。
用单片机汇编语言编写的程序代码效率高,但学习起来相对难度较大,而且对于一个大型项目,如果完全采用汇编语言来编程,就显得很繁琐,尤其是遇到算法方面的问题时,汇编语言根本就应付不了。况且现在单片机的主频在不断的提高,在高频率时钟的作用下,我们完全不需要那么高效率的代码;另外,单片机的ROM和RAM空间也在不断的增加,足够装得下你用C语言写的任何程序代码,单片机C语言相关的资料又多又好找,可移植性非常好,比如只需要改变一个IO口写个温度传感器的程序在任何一个单片机上都能使用。由此可见用单片机C语言进行程序设计,已成为单片机软件开发的一个主流,作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。
当然,有时候用单片机C语言也不能够实现所有要编写程序的功能,比如当想编写一个精确控制的定时程序时,用起汇编语言来还是比较方便的。因此想成为一个优秀的单片机编程技术员,最好就是能懂得单片机C语言和汇编语言的混合编程。
参考文献:
[1]蓝点方舟科技网. . 8051系列单片机BASIC语言开发环境简介[Z].
[2]/. PL/M-51高级语言特点[Z].
[3]王杰洁,耿英杰. 单片机C语言和汇编语言的简单比较[Z].
全书分为18个部分,共50章:第1部分 判定和规则,含第1-3章:1.语法对象;2.感应定义;3.假设与一般性判断。第2部分 静力学和动力学,含第4-7章:4.静态类型变量;5.动态类型变量;6.变量的类型安全;7.动态评估。第3部分 函数类型,含第8-10章:8.函数的定义和值;9.Gdel的T介绍;10.Plotkin的PCF介绍。第4部分 有限数据类型,含第11-14章:11.积类型;12.和类型;13.模式匹配;14.泛型编程。第5部分 无限数据类型,含第15-16章:15.感应及传导类型;16.递归类型变量。第6部分 动力学类型,含第17-19章:17.非类型化λ演算;18.动态类型变量;19.混合类型变量。第7部分 变量类型,含第20-22章:20.Girard的F系统;21.摘要类型;22.构造函数和种类。第8部分 亚型,含第23-24章:23.亚型;24.单种。第9部分 类和方法,含第25-26章:25.动态调度;26.继承。第10部分 例外和延续,含第27-29章:27.堆栈控制;28.例外;29.继续。第11部分 含第30-31章:30.建设性逻辑;31.经典逻辑。第12部分 符号,含第32-34章:32.符号;33.流体绑定;34.动态分级。第13部分 状态,含第35-36章:35.现代化语言;36.分配参考。第14部分 懒惰,含第37-38章:37.懒惰评价;38.极化。第15部分 并行,含第39-40章:39.嵌套并行;40.未来及预测。第16部分 并发式语言,含第41-43章:41.流程积分;42.并发式语言;43.分布式语言。第17部分 模块化,含第44-46章:44.组件;45.抽象类型和类型类;46.层次结构和参数。第18部分 推理方程式,含第47-50章:47.T的推理方程式;48.PCF的推理方程式;49.参数化;50.过程等价。
作者Robert Harper现任职于宾夕法尼亚的卡内基 - 梅隆大学,他的研究兴趣主要集中在类型理论,证明论和范畴论应用到编程语言的语义和实现。发表的论文包括正确编译多态性与动态类型、ACM研究:高效的缓存算法功能、结构和计算机程序的效率等;参与的讲座有美国印第安纳大学计算机科学系特聘讲座、LICS/ MFPS联席会议等。
本书通过类型理论提供了编程语言基本知识的新观点。大多数教科书强调分类,而本书强调遗传学这一新的视角,可扩展的理论框架有直接的实际应用。读者仅需要初等数学的知识便可阅读此书。本书适合编程理论、计算机程序方面的研究人员、研究生阅读参考。
李亚宁,硕士研究生
(中国科学院自动化研究所)
关键词:单片机;编程语言
中图分类号:TP313文献标识码:A文章编号:1007-9599 (2010) 04-0000-01
Comparison on Various Microcontroller Programming Languages
Zhou Hao
(China West Normal University, Physics and Electronic Information College,Nanchong 637002,China)
Abstract:MCU applications now is gradually expanding,meanwhile microcontroller programming language can be used for it is also more and more, the most commonly used languages are C language, PL / M. and the BASIC language, etc. This paper will give a variety of Comparison of these languages and strengths and weaknesses, to provide quick and easy path for beginners.
Keywords:Single chip micyoco(MCU);Programming language
一、引言
随着计算机技术和产业的不断发展,单片机的优点和特性十分突出,其应用领域也非常广泛。下面分别对汇编语言、C语言、PL/M.和BASIC等4种语言做个对比,让大家对这4总语言有一个较为清晰的认识。
二、汇编语言
汇编语言是是最接近机器码的一种语言,它用来表示机器指令的符号语言,一种用文字助记符。占用资源少是其主要优点,程序执行效率高。汇编语言调试起来也比较方便是因为它一条指令就对应一条机器码,每一步的对应都很清楚,并且程序大小和堆栈调用情况都容易掌控。但是因为不同的类型的单片机的指令系统是有区别的,所以其汇编语言也有些差异,不易移植。单片机的汇编语言和其他汇编语言也很相像。指令系统比第一代微处理器要好一些。但单片机编程之所以变得复杂一些是因为其拥有不同存储区域,如果你是一位电子工程师,懂得汇编语言就等于是一个基础,它可以帮助你了解影响任何语言效率的特殊规定。
三、单片机的C语言
单片机的C语言是一种具备汇编语言功能以及多种高级语言的编译型程序设计语言。C语言可以直接控制系统硬件,此外还具有许多其他功能。如库函数功能多样,操作运算速度快,编译效率强,可移植性也较强。值得一提的是在软件开发中如果采用模块化程序设计方法C语言就具有明显的优势,因其具有完整的程序模块结构。它与汇编相比,有如下几大优点:
(一)程序函数可互有差异且组织结构规范,其最大的优点就是使程序的可读性得到很大的提高,程序结构化趋于完善。
(二)模块化编程技术使得其数据处理力较强,它能将已编好的程序轻松的植入新程序且所需要的编程及程序调试周期短,效率高。
(三)C语言程序最大的优点就是它不依赖于机器硬件系统,因此它能较快地移植且不做修改。
(四)它是一种中级语言。他具有承上启下功能,上则具有高级语言的基本结构和语句,下则具备低级语言的实用性,他可以对位、字节和地址进行操作,就像汇编语言,上述三个地址是计算机最基本的工作单元。
(五)它是结构式语言。结构式语言的显著特点是代码及数据的分隔化,有
各种各样的数据类型,这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
(六)C语言功能齐全。具并引入了指针概念,可使程序效率更高。另外C
语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
四、PL/M编程语言
PL/M语言具有以下几大优点:
(一)具有较好的可读性
模块式的程序,结构化的语言以及缩进式的书写方法,这都使得其可读性提高。一个大型的程序是由多个模块组成的,而在每一个模块下面又分布着多个程序块,这样每个程序块负责一部分功能,各司其责,即缩短了编程时间又提高了程序设计的灵活性。
(二)具有较好的可依赖性
如果程序中有冲突使用或不合理使用时其能在提出警告的同时自动为用户程序重新合理分配内存,给使用者带来了方便也有效地节约了空间资源。
(三)具有较好的结合性
局部动态变量是指一个程序中的不同模块由多个人共同编制,但其不会因为使用了相同的标识符而发生冲突,从而减小了工作量.全局的静态变量不像局部动态变量那样在所说明的程序块中有效而在其以外无效,它是在整个程序中都有效,而PL/M正是这两者的结合。
(四)具有较好的兼容性
PL/M程序可以使用户方便地连接某段特定的汇编语言程序并生成可执行代码。
(五)BASIC编程语言
BASIC译成中文是“初学者通用符号指令代码”,它是由美国科学家托马斯库尔兹研制出来的,后由微软公司把它应用到微型机上,BASIC一直被定义为初学者最合适的编程语言,它的最大特点及优点就是容易入门,现在BASIC语言也包括了很多结构化程序及编程方式。例如,局部变量,全局变量,数据传递,函数,模块等。
一、变量与函数的相互调用
c语言可以调用汇编子程序和汇编语言中定义的变量。但要注意由于。编译后的目标文件自动地在函数名和变量名前加一个下划线,所以在汇编语言中调用C语言的函数和变量时,应在函数名和变量名前加一下划线。在汇编语言程序开始部分,应对调用的函数和变量用EXTERN加以说明。
二、调用者与被调用者的参数传递
这种数据传递通过堆栈完成,在执行调用时从调用程序参数表中的最后一个参数开始,即从右到左自动依次压人堆栈;将所有参数压人堆栈后,再自动将被调用程序执行结束后的返回地址(断点)压人堆栈,以使被调程序结束后能返回主调程序的正确位置而继续执行。进人汇编子程序后,为了能正确获取主调程序并存人堆栈中的数据,被调的汇编子程序先后要做如下一些工作:
l、保存sp的副本进人汇编子程序后,子程序中免不了要有压栈和出栈的操作,故sP时刻在变化。为了能用SP访问堆栈中的参数,安全办法是一进人子程序后,先为SP制副本,以后对传递参数的访问都用副本进行。一般可用BP保存SP,如:pushbPmovbP,sp
2、保留数据空间如果汇编子程序中需要一些局部数据,可以简单地减小SP的值,以便在栈空间中保留出一段存贮区,用于存放局部数据,该区域须在子程序结束后恢复。如下语句可以保留一个局部数据区:pushbPmovbP,spsubsp,spaee;设spaee=4如上语句段中,SPACE是局部数据的总字节数。在以后的应用中,由于SP是变化的,而BP是固定的,用负偏移量可以存取局部变量。上例利用BP及偏移量,将两个字的局部数据初始化为0。
3、保留寄存器值如果在被调子程序中用到sI、DI等其它寄存器,则应先把它们压人堆栈,以保留寄存器原值。例如,下例就是将SI和DI寄存器的值压栈:pushbpmoybp,SpsubSp,sPaeePush51Pushdi
4、获取传递参数BP保留了SP在参数传递完并将BP压栈后的一个副本,利用BP可以很方便地访问各参数。现假设调用了名为funcl汇编程序模块的主函数:maln(){……fund(pl,pZ,p3);……}。各参数都是2字节的整数值,返回地址retumaddress,在小模式编译方式共占用2个字节。如果要将传递的参数p卜pZ、p3取出,并分别赋给bx、Cx、dx寄存器,可由下列语句完成这一功能:movbx,[bp+4jmovcx,[bp+6]movdx,[bp+8〕
关键词:编程语言;双语教学;Java程序设计
1编程语言类课程双语教学的建设现状
目前,几乎所有的编程语言都是由欧美国家设计和实现的,它们的帮助文档、语言规范说明全都是英文。虽然常用的程序开发软件已经有汉化版本,也有相应的中文帮助文档,但是汉化或多或少存在不准确的地方;另外,英语和汉语表达思维的不同,使得一些编译和运行错误的提示信息看起来不知所云。因此,在高校推动双语教学势在必行。为了探索有效的教学方法和模式,切实提高大学生的专业英语水平和直接使用英语从事科研的能力,教育部于2007年至2010年启动了“双语教学示范课程建设项目”,支持建设503门双语教学示范课程。在这些示范课程中,计算机专业课程包括操作系统(原理)、数据结构(和算法分析)等约40项课程建设项目,几乎囊括了计算机主要专业课程。其中,纯编程语言类课程有7项,包括计算机网络编程、C语言程序设计、Delphi计算机高级编程技术、面向对象程序设计等。当然,除了这些国家级的双语课程建设项目外,目前我国还存在着各类由省或学校支持的双语教学示范课程项目。整体上看,计算机专业的双语教学课程建设并没有区分不同课程的特性。虽然计算机专业课程相比其他人文社科课程而言,更适合进行双语教学,但是,考虑到双语教学的师资以及学生水平现状,在课程选择上理应有取舍。编程语言类课程的内容大部分在讲述语言特性和示例程序,几乎不涉及自然语言交流的模糊性和复杂性,即减少了英语口头表达能力欠缺所导致的障碍,这种“刻板性”使得编程语言类课程非常适合进行双语教学。
2编程语言类课程双语教学模式探索
在组织双语教学时,考虑到教学目标、学生的基础、师资力量等各方面原因,我们从教材选择、教学手段、授课语言等方面,探讨一种较为实际可行的教学模式。(1) 采取国外优秀原版教材与自编讲义相结合的方式。一方面,我们选择原版优秀教材。原版优秀教材很多,它们服务于不同的授课对象,在选样时,除了要考虑教学目标外,还要考虑学生的接受程度。由于学生的母语是非英语,即使他们通过英语四级或者六级,阅读英文专业知识的能力仍然欠缺,因此,选择具有中文译本的英文教材更好。同时,我们不应该完全依赖这些国外优秀教材,完全按照其编排顺序进行授课。许多国外教材的信息量都非常大,知识点的编排比较分散,我们难以在有限的学时内按照教材的编排次序推进教学进度,这就需要对教材的内容进行分析总结,针对每一节课的授课目标,整理成讲义,标识出相关的章节并在课前发给学生预习。(2)采取英文板书结合英文PPT演示的教学手段。讲解编程语言时,特别是讲述重要语法点和难点时,采取边写程序边给出解释的方式,板书代码的英文注释强化了该知识点在学生大脑中的印象,并能够带领学生进一步沉浸在英文思维的氛围中。同时,利用多媒体技术进行教学,将术语解释、语法形式等采用英文PPT演示的形式放映,可以将教师从一些繁琐的板书中解脱出来,节省教学时间。(3)采取用英文讲授专业知识点的方式。讲授编程语言类课程时,对于专业知识点部分,应该采用英文,但是在非专业知识的表达以及语句的衔接等方面,出于惯性思维,可以使用中文。不过,考虑到学生的接受程度,对于关键知识点,可以再用中文补述一下。
3教学实践
在Java程序设计课程的双语教学活动中,我们选用的教材是HeadFirstJava。该书内容适合初学者,较为全面,语言特点讲解得非常透彻。此外,它的编排有趣,且中文译本质量高。板书采用英文,结合英文PPT。下文以编程语言的两个重要语法点,同时也是教学难点为例,说明Java程序设计双语教学的实施过程。1)引用变量。Java编程语言中变量的类型可以分为简单类型和引用类型,它们对应的英文分别是primitivetypes和referencetypes。解释简单类型时可直接列举8种简单类型,并在PPT上显示。然而对于“引用”这个词,即使解释了引用类型包括类类型、接口类型以及数组类型,学生还是有疑问:引用究竟是什么意思?谁引用了谁?针对这些问题,我们在PPT演示中给出相关的术语解释,并设计引用变量的声明和赋值语句代码,再辅以代码运行时的内存变化情况,如图1所示。学生能够从上述PPT演示中准确地理解“引用”这个词的含义:如果一个变量是引用类型,如String类型,那么这个变量将可以引用到一个String类型的对象,或者称这个变量可以引用或指向一个String类型的对象。2)动态绑定。C++和Java编程语言都会讲到一个重要概念,即方法查找时的“动态绑定”,这也是教学难点,常常和“多态”“虚方法”这些词联系在一起。“动态”这个词在汉语中的意思非常广泛,“绑定”一词的意思过于抽象,事实上,在编程语言中,动态通常指的就是程序的“运行时”(run-time),而绑定表达了“引用变量在运行时实际引用到的对象的类型”这层意思。其实,C++语言关于动态绑定和多态中有这样的描述:Yougetthebehaviorassociatedwiththeobjecttowhichthevariablerefersatruntime.Thebehaviorisnotdeterminedbythecompiletimetypeofthevariable.Thisisanaspectofpolymorphism,andisanimportantfeatureofobject-orientedlanguages.Thisbehaviorisoftenreferredtoasvirtualmethodinvocation.同理,在Java中也有类似描述:Whenweinvokeanoverriddenmethod,Javacallsthemethodfortheobject'sdynamictype,regardlessofthevariable'sstatictype.Javalooksuptherightmethodforagivenobjectatrun-time.如果在授课过程中使用这些英文解释,再辅以实例并展示运行时内存的变化,如图2所示(实际教学中,使用不同的颜色标识图中不同部分,以达到板书的清晰性),可以系统地讲解这个概念。专业清晰的英文描述加上实例,使得讲解更具有说服力,并且直接易懂。以上讲解过程中,考虑到学生的接受程度,在讲解时可以辅以中文。然而,随着双语教学的不断推进,对于专业知识的讲述还是应当使用英语,这样可以进一步让学生更容易与国际接轨。
4问题和建议
实践教学中,我们发现学生面临最直接的问题是:一些学生听说是双语教学,认为自己的英语很差,很快产生了畏难心理。其实这是不必要的,从实践来看,一些具有一定编程基 础,有兴趣但是英语成绩并不突出的学生,课 堂表现和成绩仍然比较好。相反,仅仅英语通 过六级,而编程能力较弱的学生,并没有很好 的表现。事实上,编程语言的英文教材和资料 的语法并不复杂,也不涉及我们所缺失的西方 文化背景知识,并且,编程实践能够帮助学生 准确理解英文描述,增进他们的英语思维能力。 因此,在课堂上教师不要强调学生英语成绩的 好坏背景,而是强调“双语教学的重点仍然是 专业学习”。 双语教学实践中遇到的另外一个突出问题 是教学互动性不高。互动性不高主要有两个方面 的原因,一是专业上没有把握,有些跟不上进 度;二是英语表达能力的欠缺。针对前者,由 于双语教学增加了学生的学习任务,教师需要 更多地与学生进行交流,从学生的反馈中对教 学进度、每堂课的教学内容作适当调整,并教 导学生做到课前先预习、课堂上多记笔记、课 后多咨询;针对后者,应当采取多鼓励的方式, 训练学生用英文进行表达,同时,允许学生用 中文回答问题,并提出希望下次能够以英文回 答,这些可以在一定程度上调动学生参与课堂 教学的积极性。 编程语言类课程的双语教学是高校计算机 专业教学的时代要求,虽然在高校已经实践了 多年,但是仍然存在一些问题,我们需要不断地 摸索,进一步完善编程语言类课程的双语教学工 作,实现将英语变为编程语言类课程学习者的第 二语言的教育目标。
参考文献:
[1]王平,朱艳辉,翁艳彬.论如何使双语教学真正辅助计算机专业教育的发展[J].计算机教育,2010(2):98-101.
[2]ShewchukJ.DatastructuresandJavaprogramming[EB/OL].[2014-05-18].
[3]SierraK,BatesB.HeadFirstJava[M]2nded.Sebastopol:O'ReillyMedia,2005.
[4]黄宏博.C语言程序设计课程双语教学探索与实践[J].计算机教育,2010(16):63-65.
[5]董东,黄文艳.计算机导论与Java程序设计双语教学调查分析[J].计算机教育,2010(16):114-118.
关键词:ASP;网络编程;教学目的;教学方法;教学改革
1ASP网络编程语言课程的教学目的及存在的主要问题
当前各大高校计算机专业的学生都会开设网络编程类的专业课,尤其以ASP为大多数,所以有很多关于ASP方面的教学研究,着重探讨了ASP教学的方法、学习模式以及考核模式等,这些内容给我校教学工作提供了很多成功经验和参考,但是它们往往都忽略了一个根本性问题,作为计算机专业的学生为什么要学习网络编程语言?为什么要选择ASP作为网络编程语言? 只有弄清这些根本性问题,才能更好地指导我们的教学工作。
1.1教学目的
由于Internet的普及,越来越多的软件都与网络有了联系,学习网络编程语言也就成了计算机专业学生的必修课;ASP这种网络编程语言相对简单,主要用于开发小型网站,同时很多学校开设了VB这门语言课程,学生学习ASP就比较容易上手,所以选择ASP作为教学语言是非常合适和科学的。
计算机专业的学生学习任何一门语言的关键是学习程序设计的理念,而不是语言本身,是为了在今后的工作中,通过学校期间的知识积累,具备相应岗位所需要的技能和能力。将来学生从事的工作方向和内容是多样化的,他们必须具备再学习的能力才能更容易地掌握新的语言和工具。
所以,ASP教学的主要目的不是让学生精通ASP这门网络编程语言,较少的课时和实验学时、以及学生个人能力的差别和努力程度,也无法让学生都达到精通。学习ASP是为了让他们了解网络编程相关知识、发展方向和网络编程语言的思路。
1.2当前教学存在的主要问题
1.2.1学生学习兴趣不高
学习兴趣是一门功课能否出成绩的决定性因素,所以,要想让学生把这门功课学好,就必须调动学生的学习热情,只有让学生在平时的课堂或实习机房都能主动的学习相关知识,才能更好地领会学习重点,掌握关键技术。
1.2.2教科书编写水平参差不齐
现在的教科书层出不穷,教科书编写水平差异很大,其中有些教科书语言组织混乱,重点不突出,知识点跳跃大,甚至一本书多处出现编写和印刷错误,而教学用书是学生学习一门技术的起点,所以教科书的选择显得尤为重要。
1.2.3教师的素质问题
教学不但关乎学生学习的兴趣,也对知识点的学习起到了指引作用,很多老师的教学幻灯片内容都是照搬书本上整段的文字,上课时教师就照着幻灯片照本宣科,布置的作业和实验报告在学生提交后也不认真审阅。
2改进课程教学方法的思路
针对目前ASP教学中存在的普遍问题展开分析和研究,有助于我们在今后的教学工作中进行改进,能够有目的性和针对性的制定相应对策,提高教学质量。
2.1学生学习兴趣的培养
学生学习兴趣的高低由三个方面决定的:
1) 学生自身的好学程度。它是学生学习兴趣的决定因素,教师要做的只是在平时的教学中让他们认识到学习的重要性和必要性,其他就只能依靠学生自身了。
2) 老师的正确引导。老师的作用在这里得到了充分的体现,学生想要汲取知识,可是课堂的枯燥无味、晦涩难懂会让学生产生抵触情绪,如何让枯燥的学习趣味化、简单化和具体化是老师们必须做好的工作。
3) 一定的压力。没有压力何来动力,中兴、华为为什么是IT行业的龙头?因为他们的员工有压力,也许压力过大会产生一定的负面影响,但我们应该看到它积极的一面,在中兴、华为工作过的人水平确实得到很大提高,不仅仅是因为他们接触了更多的高新技术,而是那样的工作环境迫使员工不断地汲取知识。同样教师在教学中也需要让学生感到压力――没有一技之长无法在社会上立足,没有技术只能待业,不认真学习只能补考或重修。
所以,在学生兴趣培养上,不但要做好自身的引导责任,而且要通过现实社会让学生从自身提高学习的源动力,只有内外结合,才能真正地把学生的兴趣培养起来。
2.2教科书的选择
选择一本真正适合教学的教科书,是做好教学工作的第一步。教科书的选择应该尊崇以下几个关键点:
1)书本的知识不能过于跳跃,要连贯;
2) 书本的知识应能充分突出ASP网络编程语言的学习重点,应能引导学生掌握ASP的编程思路;
3) 重要知识点的详细性。既然叙述了一个知识点,就应该把该知识点叙述得透彻,不能仅仅提供一般的表述形式,甚至连例子都省略了,这样的课本不利于学生对知识点的掌握。
2.3教师的素质和责任心
首先,教师是学生学习的引路石,如果连教师自己都不能熟练地应用ASP这门语言,那么他就不可能把握这门语言的精髓,也不可能教好这门功课;其次,现在的教学都是声像教学,一般都是教师通过事前做的课件,边操作边给学生讲解,那么课件的质量也十分重要,不能仅仅局限于课本,而是应该突出重点,增加实例,课件的知识容量应远大于课本的内容,并且应以例题为主,不能仅仅是书本的减缩版。最后,要介绍一些新的技术和方法,只有这样才能让学生有机会了解书上没有介绍、但在实际编程中又非常重要的技巧和经验,这样的课堂才是精彩的,这样的授课方式才是学生喜于接受的。
3ASP课程的教学改革方案
根据平时的教学经验,笔者总结出如下的教改方案,并已取得了一定的教学效果。
3.1引导与实战相结合,培养学生学习兴趣
引导和实战是相辅相成的,只有正确地引导,才能让学生在实战中得到真正的锻炼,只有实战的不断演练,才能更好地让引导发挥作用。
引导应分为两个部分:
1) 在学习之初引导他们认识学习ASP的重要性。在ASP课程开始,不能只是简单地介绍ASP 是微软公司推出的一种基于浏览器的网络数据库编程技术,利用它可以实现Internet/Intranet上的数据库编程,是Windows环境下B/S结构应用的主要编程工具[1];而应侧重于当前ASP的应用情况,因为学生毕业离校后,他们中有很大一部分人将会从事与网络相关的开发工作,极有可能使用、PHP或是JSP,并且ASP比这些语言更容易入门,对于今后学习其他语言有极大的帮助,从而让他们能够认识了学习这门知识的重要性。
2) 在学习中多讲解一些学生平时上网时经常接触的动态网页制作,引导他们进一步认识动态网页设计与我们的生活息息相关。如开发聊天室、计数器、BBS论坛等是最能体现ASP这类网络编程语言的特点。
实战是学好一切软件开发技术的最佳途径。有了大量的实际训练才能尽快地掌握开发技巧,融会贯通各主要技术要点,同时,每次需求目标的实现,都是体现了编程人员的自身价值,有利于提高他们的自信心和成就感,这对于学习兴趣的培养十分有利。
在实际操作中,由简到繁的实战训练思路,让他们在学习中得到自我认可;熟练掌握知识点,积累一定的开发思路,使他们觉得原来平时经常接触的动态网页是那么得简单,从而进一步推动他们学习的动力,实现引导目的,为今后工作开辟一条道路。
3.2教学内容的总体规划
时下ASP教科书的内容基本上都是HTML语言、VBScript脚本语言、ASP中的5个重点内置对象、ADO组件使用和数据库操作等几个部分[2]。在教学大纲的制定上,就应该让学生了解学习的各个主要知识点、知识点间的关系和需要掌握的程度等内容。所以在教学上应该有一个明确的指导意见。下面根据教学中的实际经验整理了一个简单的教学思路。
1) 学习HTML语法的重点: TABLE和Form标签的使用。
2) 学习VBScript脚本语言的重点:正常使用。
3) 掌握ASP的5个重点内置对象和常用组件的学习重点:使用方法及应用范围。
4) 掌握SQL Server应用的学习重点:掌握数据库的连接和操作。
从上面的学习重点可以看出,把学习的重点大多定义为使用和认识的层面,而不是要求必须熟练掌握,因为这些教学任务的目的只是让学生知道做一个动态网页必须具备哪些基本知识,这些基本知识和ASP是怎样的关系。至于熟练掌握应用则是实验目的之一,不应该在平时的课堂教学中过多地要求学生死记硬背这些知识点,因为用多了自然就记住了。
3.3立足教科书,拓展知识点
教学目的不是为了考试,而是为了开启一扇门。仅有教学规划是远远不够的,教师作为学生的引路人,还应在ASP的实际教学中引导学生使用工具、掌握最新技术。教师在实际教学中,对于知识点的把握和教学准备还应该具有以下的一些内容:
1) 在HTML语法教学中,除了讲解TABLE和Form标签的使用等书本内容,还应讲解DIV CSS,在网站布局方面,它必然是今后网站制作中最前沿的新技术,也必然是一种新的趋势,有必要让学生了解它的一些最基本的知识[3]。
2) 在HTML语法教学中,还应涉及到Dream- weaver这类网页编辑和网站管理的编辑器,对初涉网页设计的人而言,这类软件确实是非常好用的工具。
3) 在VBScript教学中,还应简单提及JavaScript。当学习ASP时,也应该已经学习或是开始学习Java了,VBScript作为入门是一种不错的选择,但从学习目的而言,JavaScript和Java语言一样,在今后一段时期内必然会得到更广泛地应用,所以在学习完VBScript后,应该让学生了解JavaScript一些基本知识和特点。
4) 在SQL Server的应用内容里面,应着重强调数据库的重要性和数据操作功能。无论学生今后从事哪一类编程工作都应该会接触到数据库,作为计算机专业的学生,数据库应该是他们必须学习和熟练掌握的内容。除了介绍该部分内容的书本知识以外,还应该着重强调数据库的规划,这点在非专业的数据库书籍中一般不会提及或很少提及,之所以要强调,是为了让学生能够认识到ASP有一个主要的特性就是通过对数据库的操作建立功能强大的Web应用程序,没有一个高效的数据库,就没有了ASP所依赖的基础。
5) 教学的准备。作为一个称职的ASP教师,不仅应具备对ASP的熟练应用和把握,在准备教学内容时,应该有三本以上不同作者的ASP 教材,并且在幻灯片的制作上要借鉴不同老师的教学优点,多一些范例,少一些文字,多一些素材,少一些代码的罗列,只有这样的课件,才是合格的。另外,还应该向学生推荐一些课外参考书目和比较好的教学视频,比如,袁理编著机械工业出版社出版的《ASP完全自学手册》,由高振国或刘建明主讲的《动态网页设计》和黑鹰的《ASP教程》视频等,这样有利于学生在课余更好地学习这门功课。
3.4改革考评模式
作为专业课,一般都是由教研组自行命题考试,这样方便授课老师根据学科特点进行考核,对于这种重视操作和应用的学科,应该提高操作比重,降低笔试成绩所占比重,笔者将操作比重提高到60%(其中平时实验占10%),笔试部分占40%。操作内容中不但有既定知识点的实验[4],而且在学期开始,就对学生进行分组,给每个小组指定课题――设计特定内容的网站。 学期结束,对各小组的成果进行考评,按完成情况、功能实现、系统效率、友好界面等部分给定考评成绩,结合期末考试成绩,给出最终学生个人成绩[5]。这样既兼顾了书本知识,又结合了ASP这门学科的特点,有利于提高学生的学习热情和实际应用技能,同时学生通过系统设计对于书本中孤立知识点做到融会贯通。
4结语
针对学科特点,制定合适的教学方案是提高教学
成果的保证。以教师课前的精心准备和课堂的精彩讲解为基础,以引导学生的学习兴趣为着手,以实际应用和考试为手段,从而保证学生对知识点的掌握和融会贯通,认识网络编程语言的思路,以及在学习中提升团队协作的素质。
参考文献:
[1] 顼宇峰,马军. ASP网络编程从入门到精通[M]. 北京:清华大学出版社,2006:20-30.
[2] 张景峰,韩红旗,刘博涛. ASP程序设计及应用[M]. 北京:中国水利水电出版社,2005:39-42.
[3] 尚俊杰. 网络程序设计:ASP[M]. 3版. 北京:清华大学出版社,2009:1-5.
[4] 郑益群. “ASP网页制作”教学方法探索与实践[J]. 电脑知识与技术,2008(22):727-728.
[5] 刘凤玲,王云平. ASP 课程分组教学的探讨与实践[J]. 辽宁高职学报,2009(12):11-12.
Thoughts of the Teaching of ASP Network Programming Language
MIN Zhao-e, XIAO Xin-xin
( Department of Information Sciences, Nanjing College for Population Program Management, Nanjing 210042, China)