时间:2022-05-03 20:00:28
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇编程语言,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
编程语言俗称“计算机语言”,种类非常的多,总的来说可以分成机器语言、汇编语言、高级语言三大类。电脑每做的一次动作,一个步骤,都是按照计算机语言编好的程序来执行的。程序是计算机执行的指令集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机,一定要通过计算机语言向计算机发出命令。类型是编程语言理论的核心组织原则,本书中,作者通过使用类型理论为这些语言提供了一个全新的视角。
全书分为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联席会议等。
本书通过类型理论提供了编程语言基本知识的新观点。大多数教科书强调分类,而本书强调遗传学这一新的视角,可扩展的理论框架有直接的实际应用。读者仅需要初等数学的知识便可阅读此书。本书适合编程理论、计算机程序方面的研究人员、研究生阅读参考。
李亚宁,硕士研究生
(中国科学院自动化研究所)
Li Yaning, Master
(Institute of Automation,CAS)
关键词:编程语言 软件 应用
中图分类号:TP311.175 文献标识码:A 文章编号:1674-098X(2016)12(b)-0085-02
1 什么是编程语言
编程语言是用来定义计算机程序的形式语言,用来向计算机发出指令。计算机语言数量很多,每年都会产生大量新的编程语言。按层次来分,编程语言可分为3类:机器语言、汇编语言和高级语言。机器语言由机器指令集构成,能够直接被机器执行。机器语言写的程序存在不便于阅读、难以记忆的问题。汇编语言本质上也是直接对硬件操作,由于采用了助记符,相比机器语言更加方便书写与阅读。在高级语言中,将多条汇编程序语句合并成更简洁的编程语句,同时自动完成一些如堆栈、寄存器分配管理等工作,更加方便程序员开发程序。
编程语言的出现可以说给人类社会快速发展提供了一个契机。目前编程已经渗透于我们日常生活的每个方面,我们所使用的电子设备、软件服务中都运行着大量的程序。近年来,不仅是高科技产业,传统行业也在积极投入互联网时代,网站、软件等编程需求巨大。研究编程语言具有重要意义。分析各个编程语言的特点,能够指导编程者选择更适合任务的编程语言,提高开发效率。同时能够对编程初学者起到指导作用,以便选择合适的学习路径。相对于机器语言与汇编语言,日常编程任务更多x择高级语言,该文主要讨论高级语言的发展与特点。
2 高级语言发展简史
目前已经有数千种编程语言被发明,每年仍有大量新的编程语言诞生。我们一般认为1957年由John W.Backu研发的Fortran是世界上第一门高级编程语言。1957―1959年这段时间,是编程语言刚开始新兴的时候,这个时候Fortran、Lisp、Cobol也就是编程语言的雏形出现。1972年,Dennis Ritchie在B语言的基础上改良和发展,最终将其命名为C语言[1]。C语言作为一种经典的编程语言,至今仍被广泛使用。而之后贝尔实验室又在C语言的基础上推出了更强大的面向对象语言C++。1991年和1993年,Python和Ruby语言也相继被发明。1996年Sun公司了Java的第一个开发工具包,标志着Java[2]成为一种独立的开发工具,此后Java一直是一种非常流行的编程语言。
据TIOBE编程语言社区的编程语言流行趋势排行榜统计显示(前部分节选如表1所示),2016年仅有两种语言的增长率超过了1%,分别是Groovy和GO语言,可以发现谷歌的GO语言将成为发展最快的语言。从此榜单可以看出,目前Java、C、C++使用量排名前三,而Java语言也是以9%的差距大大领先于排名第二的C语言。
如图1所示,在2003―2005年间,Java语言使用指数有明显的下降,2006年有所回升,而在后来的几年(2015年前)里依旧呈逐渐下降的趋势。2015年以前C语言使用量较为稳定(15%~20%),近两年迅速下降至10%左右。C++语言在过去的10年中呈动态下降趋势,2016年使用量占主流编程语言的6%左右。图1中未统计MATLAB使用量,因为MATLAB并非软件开发语言(图片来源于TIOBE编程语言社区)。
3 常用编程语言特点分析
3.1 C
C语言是一门标准化高的编程语言,适用于不同的计算机系统,因为它具有较好的可移植性,所以成为了应用非常广泛的语言。C语言方便灵活,语言简洁,它只有32个关键字,9种控制语句,运算符包含的范围广。所以,相较于其他的高级语言,C语言容易上手。但语法限制不严格,设计时比较自由的同时也使C语言被滥用。图2展示了一个C语言编程的常见错误,在if语句后误加了一个分号,此时不管是否'a>b',程序运行输出都是'a>b'。C语言可以进行系统程序的编写,比如UNIX就是由其编写的。C语言不仅是高级语言,而且还可以像汇编语言一样对物理内存、硬件直接进行访问与操作,有时因为操作不当也会造成严重的错误。
3.2 C++
1983年,贝尔实验室将改良后的C语言命名为C++,这门语言在保留C语言大部分设定的基础上增加了面向对象[3]。面向对象核心概念是类与对象,类就是一个由属性相同的对象组成的抽象集合,而对象是类的具体实例。C++语言可以直接以类为模板定义出若干个对象,所以面向对象技术使重用数据、代码变得更加便捷。相比C语言,C++语言更适合开发大型软件,许多系统支撑软件和应用程序都是由C++编写的。C++运行速度比C慢,和C一样都存在语法的滥用。
3.3 Java
Java语言的前身是由Sun公司在C++基础上改造出的Oak语言。Oak语言在经过许多年的修改后最终成为了现在的Java语言。与C++一样,Java同样是个面向对象的编程语言,它的数据库操作强大于前者,并且C++中不常用的特征都被删掉,使得Java更容易上手。Java的一项优点是它具有很好的安全性,因为它没有指针,所以不会被程序员得到一些隐藏的信息,也令Java更加可靠。Java语言适合于大型项目的开发,方便一些企业编写程序,但它在较底层的开发项目中显得不足。如今,由于Android系统的普及,作为其基本开发语言Java为更多人所知。
3.4 MATLAB
MATLAB也称作矩阵实验室[4],它包含了600多种数学计算所需的函数,在矩阵运算、数值运算和数据处理等方面的功能很强大,是一个专业的数学软件。它的语言简单,语法也相对不严格。MATLAB语言编写与我们日常书写的方式是很像的,易于上手。MATLAB的图形功能也十分强大,它可以根据数据方便地做出各种图形。MATLAB读取文件功能也十分强大,能够快捷、智能地读取各种数值文件。总之,在数学和科研领域上,MATLAB的便捷性和高效性是远远强于介绍的前3种语言的。
4 常用编程语言应用场景分析
在学习编程或进行软件开发时,编程者应当根据自己的任务需要选择合适的编程语言。C语言多运用于操作系统以及底层软件的编写,比如Unix、Linux和大家熟知的Windows系列等。与C语言相比,C++语言常运用于更上层的软件编写,比如QQ和迅雷等常见Windows桌面软件,另一个很重要的应用是大型游戏的开发。Java语言则更多运用在商业应用软件以及网站的开发,使用J2EE(企业级Java开发框架)能够快速、高效地完成大型商业网站开发任务。在目前流行的Android操作系统上,应用软件都是基于Java语言编写的。相比于其他3种语言,MATLAB广泛运用于科学计算编程,而不适合软件开发。
参考文献
[1] 倪瑞晓.C语言编程技术的分析研究[J].计算机技术与发展,2009,19(12):251-254.
[2] 贾俊奇.软件开发下的JAVA语言[J].中国科技信息,2014 (13):133-134.
关键词:编程语言;教学;教学模式
中图分类号:G64 文献标识码:B
文章编号:1672-5913(2007)02-0051-02
1引言
在计算机专业本、专科和非计算机专业的计算机教学中,学校几乎都设置了高级语言程序设计或数据库管理语言的程序设计课程。与一些应用软件或工具软件相比,编程课程的教学具有较大的灵活性,这使得学生掌握起来有一定困难,教师教学也有一定的难度。采用何种教学模式进行教学就成为编程语言教学的一个关键。笔者经过多年的教学实践,总结出了编程语言教学的感性认识、算法分析、代码讲授、功能变化的教学模式,这些在实际教学中收到了很好的效果。
2编程语言教学模式探讨
在下面的讨论中,以Java语言编写查询记录的程序为例进行说明。
2.1 感性认识
这里的感性认识是指先让学生对要讲授的程序有一个感性的认识。即先运行程序,显示程序的运行结果,让学生了解程序的运行界面、控件的布局、操作顺序及整个程序的功能。使学生对要讲授的程序有一个感性的认识,这对于理解算法及编程代码都是非常有利的。
通过运行界面,学生可以了解整个界面的布局,即各个控件的摆放位置及相互关系,之后在文本框输入查询条件(书名)并单击“确定”按钮后,即显示出查询结果,这让学生了解操作顺序并看到运行的结果,同时也知道了整个程序的功能。
2.2 算法分析
根据上面演示的界面、操作顺序及运行结果,详细分析程序的功能,在此基础上,我们分别从界面设计、事件代码两个方面进行算法分析,找出程序实现的算法并画出程序流程图。
例如,对于查询记录程序,其界面设计的算法分析如下:由于是在窗口内显示界面,所以应先创建一个窗口类Frame类的子类。在子类的构造方法中创建标签、文本框、按钮等对象;设计相应的布局,通过面板等容器将这些对象添加到窗口中;添加诸如按钮等对象事件的监听。
对于在文本框中输入书名,并单击“确定”按钮,处理按钮事件的算法分析如下:到数据库中查找满足条件的记录,如果没找到就显示相应的信息,并重新输入查找条件;如果找到了就将找到的记录放在相应的面板等容器中并显示。
其他如“打印”和“退出”等按钮事件处理算法按相应的要求给出。
根据上面的算法分析,画出程序的流程图如图1所示。
图1程序流程
对上面的流程图教师要进行详尽的讲解,使学生真正了解程序的算法,这对后面书写程序代码非常重要。因为代码的编写就是将算法变成能运行的程序。
因为许多程序可以有多种算法,在教师讲授自己的算法之前,可先让学生写出自己对这个问题的算法分析(这就要求学生要事先预习教学内容)并画出流程图,再对学生的算法进行简单评价。
2.3 代码讲授
根据上面的算法分析,教师可采用下面两种方式讲授程序代码:一种是逐条给出并在讲解过程中启发学生如何写代码,这时可以启发学生思考要想完成算法的某一功能应如何给出代码。教师可以先让学生给出代码,然后按学生给出的代码演示运行结果,看是否达到了算法的要求,如果达到要求应给予积极的评价;没有则应和学生一起分析问题出现在哪里,找出正确的思路,直至给出正确的代码。学生给出的代码可能会有多种,可选择有代表性的几个进行演示及分析,不要只讲正确的代码方案,不正确的代码方案也可作为反例提醒同学们注意,这样对于鼓励学生参与互动教学有积极的作用。另一种是代码全部给出,之后按算法要求讲解每一条语句的作用,再讲解每一段的作用并解释它实现了算法的哪一个功能。前者占用课堂时间较长,但对启发学生的编程思维有好处;后者占用课堂时间短,提高了课堂效率,但学生掌握程序代码效果不如前者。教师在教学中可根据学生情况、教学内容的复杂程度及课时数进行选择。在讲解过程中教师一定要结合算法,注意讲清每条语句或每一段代码能完成算法中的哪一步。在此过程中,为了说明某条语句或某段代码的作用,可边讲解边演示其运行的结果,这样效果会更好。
2.4 功能变化
在讲解清楚上面的程序之后,可对程序的语句或程序段进行修改,例如删除某些语句、修改某些语句,并演示删除或修改变化后的运行效果,使学生加深对某些语句或程序段功能的理解,以拓展本程序的知识点。同时教师要注意鼓励学生大胆探索新的算法,对于虽不完美,但经过指导也能实现程序功能的算法要给予积极的表扬和肯定,推崇学生自己动脑、动手进行程序设计与修改是非常必要的。
3结束语
以上只是作者在教学中总结出的一点体会,在以往的教学中应用这种模式进行实践并收到了较好的效果。学生不但学会了编程语言,同时也学会了编程思想及编程方法。在毕业设计中,学生做出了较好的管理信息系统,并在“大学生科研训练计划”的信息系统开发中取得了较好的成绩。当然,编程语言教学模式多种多样,许多同行都有自己的优秀的教学模式,笔者会在今后进一步学习和吸取这些经验,不断提高自己的教学效果和水平。
参考文献:
[1]印F.Java语言与面向对象的程序设计[M].北京:清华大学出版社,2000.
[2]耿祥义.Java2实用教程[M].北京:清华大学出版社,2004.
[3]Bruce Eckel .Thinking in Java(Third Edition)[M].北京:机械工业出版社,2004.
[4]Harvey M.Deitel,Paul J.Deitel .Java大学教程[M].北京:电子工业出版社,2004.
关键词:高校;德尔菲;编程语言;课程安排;计算机专业
1概述
据了解,2005年后,所有综合类和理工类的高校都开设了计算机类专业,因此造成了该专业毕业生人数急剧增多,就业市场严重饱和。同时,由于高校的人才培养计划赶不上计算机技术日新月异的变化,造成了毕业生走向职场后,专业能力难以达到用人单位的要求,因此造成部分学生就业难的局面。根据四川省教育厅的2014届就业质量报告,用人单位选聘应届毕业生时最为看重的是专业知识(63.98%),其中大多数单位表示愿为符合要求的毕业生开出可观的薪资,但从实际的就业率和就业质量来看,情况并不乐观。为了着手解决此问题,应该从源头来考虑,反观高校对于专业课程安排的合理性,同时应该不断地对人才培养方案进行修改,以提高毕业生的就业质量。就计算机类专业所开发的编程语言为研究对象,综合考虑编程语言的就业情况、高校编程语言的开设情况、编程社区编程语言排名情况,并应用德尔菲方法(Delphi),建立编程语言的综合评价模型,从而为高校开设编程语言课程提供参考意见。
2编程语言的评价
2.1高校开设编程语言的影响因素
(1)编程语言的就业情况收集了北京与广州两地各个编程语言的专业人员的实际薪资(数据来源于各大线上招聘平台)。从薪资情况可以宏观地看出市场的供给关系,从而得出现阶段对不同编程语言的专业人员的需求程度。根据图1,不难看出北京地区的薪资水平大体大于广州地区。同时,Swift、Python、SQL、C++相关岗位的平均薪资水平位列前4。而较为冷门的统计方面的R语言则位居倒数。(2)代表性高校编程语言开设情况收集了全国顶尖的高校的计算机专业培养方案中(高校排名根据2016年中国科学评价研究中心等机构的本科专业排行榜)对于各编程语言课程的开设情况。为了全面地反映问题,选取了不同层次的较具代表性的4所大学进行比较。如表1所示。清华大学与暨南大学对于主流的编程语言的课程安排最为全面,且高校大多都开设了较为基础的,像C++,SQL等语言。然而,大多却并未开设像薪资可观的Swift、Python等语言的相关课程。(3)TIOBE编程社区的编程语言排行TIOBE编程社区由荷兰Eindhoven的TIOBE公司创立和维护,根据互联网上有经验的程序员、课程和第三方厂商的数量等指标对各个编程语言进行热度的排行。从2016年该社区的最新一期编程语言排行榜来看,Java、C、C++、Python为2016年最受欢迎的编程语言。相较2015年该机构出具的数据来看,C语言的排行下滑明显,进步最多的为GoogleGo,其他成长显著的语言还包括Dart和Perl。如表2所示。
2.2基于德尔菲方法的编程语言评价
根据德尔菲法的要求和研究目的,确定了20位专家并对其进行专访,第一轮评分由专家主观从以下3个角度为不同的计算机语言分别进行评分(满分100)。在第二轮评分之前,各位专家阅读了相关资料、以及第一轮评分的匿名结果后,再进行综合判断。两轮评分后,收集相关数据,随机挑选了6位专家的3个评价方面的评分结果,并采用Excel2010进行录入并进行相关数据的处理。如表3所示。在专家的调查结果中,Python、Swift、SQL等语言的相关岗位被认为是就业前景较好的,这也与目前市场的现状分析结果基本吻合。同时,在对教务处排课人员、任职的教授的调查后,分析发现开设较为基础的计算机语言(C、C++、Java等)被认为有较强的可操作性。不同的是,专家认为用途广泛的Python,JavaScript语言也同样应该被开设,对比高校开课情况的调研后,我们认为高校可能考虑到这些语言专业背景要求高、难度大,因此很少安排此类课程。在对于计算机语言流行度方面的评分中,除了主流的基础语言外,VB和Linux的评分也位居前列。综合以上3个方面,对10种主流编程语言进行排行并加权计算其最终的得分,得出了就市场要求、可操作性、合理性3方面考虑的最应学习的编程语言的排行。
3编程语言课程开设的建议
根据以上的分析,C,C++,Java,VB等语言是本科生最应学习的基础的编程语言。考虑到前阶段对于职业市场的调研等方面,高校应该加强现阶段较为热门且紧缺专业人员的,像Swift、JavaScript、SQL等语言的课程安排,高校可以增设相关语言的选修课,并对学生更好地宣传以求其认识目前计算机语言的使用情况,提高毕业生在校学习的针对性以及走向岗位后的市场适应力和竞争力。运用德尔菲法构建编程语言的多角度评价体系的过程符合试验设计和科学程序的相关要求,结果综合了专业性、实际性以及科学性,能够为高校的计算机编程语言的课程安排以及相关的研究提供依据,同时也可以提高在校生对于编程语言的全方面认识。
参考文献
[1]王军,田岳凤,张俊龙,李玮.德尔菲法构建中医学专业基础模块课程考核评价指标体系[J].中国中医药现代远程教育,2014,(20).
[2]科技论文写作常识———德尔菲法[J].中国护理管理,2013,(03).
[3]晓红,何仲.Delphi法在护理研究中的应用[J].中华护理教育,2005,2(1):6-8.
【关键词】 编程语言 计算机知识 软件开发 软件应用
目前,计算机业内流行的软件编程语言有:C#、Java、PHP、C++、Visual Basic、Delphi、PowerBuilder等。编程的目的主要是为了解决问题,解放现实的劳动力,而现实的问题都是可以用语言来描述的,将问题用计算机语言来实现,需要编写计算机开发程序。主要的途径是对现实问题进行分析,用合理的数学模型来表达,然后通过计算机程序语言来实现功能,例如:R、G、B3色份量来各表示一种颜色,对于颜色的处理被转化为对R、G、B3个整数的处理。只要改变这3个整数,就可以将其改变成另外一种颜色。
1.计算机常用的编程语言
C语言:该语言应用广泛,是所有计算机语言里最常用的编程语言,从开始出现到现在已经有40年的历史,C语言具有很多优点,如:语法简洁、运算符丰富、数据结构类型丰富、代码和数据分离的结构化、语法要求不严格、功能强大等。C语言是具有兼容能力强的程序语言,移植起来非常容易,利用C语言为某种计算机写的软件可以用到另一种机器上去。如:如果为苹果机写的一个程序能够方便地改为可以在IBMPC上运行的程序。C语言的主要结构成分是函数C的独立子程序,编写的程序语言比较容易维护,并且容易实现。
C++:该语言是C语言的升级,它几乎包含了C语言的所有功能,在C语言的广泛引用前提下,C++也应用的非常广泛,可以说任何领域都可以使用,包括各种操作平台,这也决定了C++是一种最难学的编程语言,因为,它强大的功能背景下,使用起来非常的灵活多样。实践证明,如果掌握了C++,再学习其他编程语言的时候就会非常容易,因为它贯穿了从硬件到对象的各个环节,学完该语言以后就会对计算机语言有个深刻的认识。
Java和C#:Java和C#都是出现在C语言之后,以面向对象为主的语言,Java语言是在充分吸收了C++的优点,摒弃了C++的一些缺点的基础上诞生的,并且形成了具有自身特色的优势,而C#则是在Java语言之后出现的,它更多地借鉴了Java的优点,同时增加了一些自己的特点。在一定意义上可以说,Java站在C++的肩膀上,而C#站在了Java的肩膀上。除了跨平台以外,Java和C#相比没有太多优势,.NET可以控制迅雷,调用dll等,这个是Java很难做到的,虽然有JNI或第三方开源程序,但是那些第三方不太成熟,而JNI则需要会写VC代码,很难做到。
Pascal语言。是计算机通用设计语言的一种,是高级程序语言,主要特点有:具有严格的结构化形式、丰富的数据类型、较高的运行效率和较快的纠错能力等。这些优点决定了该语言能够描述各种算法以及数据结构,另外,在应用这种语言的过程中,能够帮助编程者保持一个很好的习惯和设计风格。
每一种语言都有其存在的理由,都有其独特的优势和应用范围,编程人员在计算机应用软件开发过程中应该以提升工作效率为基础,以运效果为目标,选择适合开发项目的程序,选择最适合的语言,达到提高工作效率,降低工作量的目的。
2.原则
2.1 整体结构
开发项目的整理结构决定了用什么样的开发软件,使用什么样的编程语言,整个系统是由多个部分组成,并不是说整个系统都必须要使用同一种编程语言进行编写,编程语言的选择应该依据项目功能而定。对于成本投入较大的操作,如:图形渲染、密码学、视频处理以及信号处理等,程序员要认真考虑,尽量用一些静态类型的语言。
2.2 尽量使用最为熟悉的语言
熟练掌握的语言能够运用在开发软件方面的话,可以节省大量的时间,并且能够对软件工程项目时间表进行准确预测,及时完工。此外,熟悉的语言可以创新,如,开发的软件是偏重复处理手工劳动时,就可以根据实际情况选择简单、灵活的编程语言,尤其是选择那些自身就具备相应功能的编程语言。
2.3 语言的选择要考虑是否支持平台
支持平台也是在编程语言选择过程中需要考虑的因素。
例如:在浏览器中运行的程序语言,根据语言是否适应就可以有选择的使用一些语言。平台是一个大环境,所有操作都应该适应于平台,一些程序开发过程中,程序语言的格式决定了要涉及大量的位操作,此时,要充分考虑大量的位操作是否给软件开发带来困难,是否可以避免大量的工作,如果必须要进行大量的位操作,那就应该选择那些具有容易位操作而且可以提供合适数据类型等特点的编程语言。同时,在一些特殊领域,程序员应该使用专业的编程语言,因为这些程序语言具有很强的针对性,使用起来既能够节省很多的工作时间,还可以防止编程出现较大的失误。
3.结语
编程语言决定了软件的开发的效果,软件开发的项目和环境限制了程序语言的使用,恰当的编程语言,能够大大提高编程效率和开发软件的质量,能够保证编程工作的顺利开展,能够使工作事半功倍。因此,在编程过程中,编程人员应加强学习,不断吸收新知识,对各类编程语言的特点进行深入了解,以寻找出最合适的编程语言。
参考文献
[1]陈学进.用ADO访问WEB数据库[J].安徽工业大学学报(自然科学版)
【Abstract】With the widespread use of computers, Java language has been widely used. Java language can be used in a variety of operating platforms, and it has source codes that can be expediently used by developers. Therefore, this article will analyze the characteristics of Java language and programming language technology, and discuss the application of Java language in software development.
【关键词】软件开发;Java编程语言;应用
【Keywords】software development; Java programming language; application
【中图分类号】TP31 【文献标志码】A 【文章编号】1673-1069(2017)05-0137-02
1 引言
Java语言是根据C++语言的基础上进一步发展的,虽然现在很多游戏软件都是利用Android语言进行开发的,但是在整个市场中Java语言的使用依然比较多,因为其具有良好的兼容性,同时也具有开放性的源代码,经过不断的发展,逐渐取代了其他的编程语言,可见它使用价值是比较高的。
2 Java语言的特点
虽然Java语言是在C++语言上进行发展的,但是两者既存在着联系也有不同,Java语言不仅具有C++语言的特点,同时在发展的过程中也形成了自己的特点,主要表现如下:
2.1 平立性
Java语言能够在多种操作平台上使用,它的兼容性非常好[1]。在实际的编程中,先进行的是中间代码的编译,之后转变成机器代码,这些代码都是计算机能够识别的,所以,该语言才能在不同的平台上操作,这也就是所说的平立性。
2.2 多线程
多线程的特点是面向对象的语言所具有的,这种面向对象语言一般是在开发网络版本的软件时使用。在进行相关软件开发时,要适合主要软件的编程是否实现网络之间的信息交互,就是为了满足用户的这种需求,这个特点进一步提高了软件的实用性。
2.3 面向对象
JAVA语言中的面向对象语言具有三种明显的特征:继承、特征封装和多台。在进行软件开发时,利用Java语言进行编程时就可以体现这三大特征。在这三大特征上进行软件的开发,更能体现编程的科学性、有效和完整性,从而实现软件的使用性,这一点能够充分的体现JAVA语言的优越性。
2.4 可移植性
在使用Java语言进行软件开发时,还可以借助浏览器实现移植。可以将图形、文体、图像、代码等实现移植,这一点充分突出了Java语言的可移植性,这一特点使Java语言得到了普遍的应用。很多程序员在进行软件的开发中基本上都使用Java语言,可见Java语言的应用价值。
3 Java编程语言技术
3.1 Java中的Annotation技g
每一个编程语言都有自己的数据类型,所以,程序编写人员在进行软件开发的时候,要合理的使用Java语言。程序员只有熟练掌握Java语言中各种数据语法应用,才能更好地实现软件开发的各种功能,将数据语法得到充分的应用,进而提高软件开发的效率[2]。Annotation是属于JAVA语言中一种元素数据语法,它的主要作用就是实现Java语言中的每个参数、变量、属性等要素之间的关系。在进行计算机软件的开发时,利用java Annotation技术,能够让用户方便从每种元素的特点和属性进行操作,从而将Java语言中的参数、属性和变量实现连接和整合。另外,在Annotation技术中Java beans语言是独立在开发平台之外的控件体系,它的安全性和统一性比较高。所以,它能够给程序员提供语言之外的其他数据。
3.2 Java中的Database Connectivity技术
进行软件开发是一件非常复杂的工作,Java语言是进行软件开发的一种编程工具,主要利用该语言实现软件的功能。在进行软件开发时,还要与网络版本一种数据库软件相结合,才能将软件的整个功能实现。在实现数据库之间相互连接的技术是JDBC,该技术能够快速的统一访问多种数据,之后为数据建立连接平台。在计算机软件的开发中,利用Java Database Connectivity技术主要是实现数据库与软件功能实现相关的数据之间的连接,然后为开发PC软件提供数据的查询,这样可以方便数据库后台的管理工作[3]。另外,该语言也能为软件开发提供统一的抽象类和接口,这样就可以对更加复杂和高级数据进行管理和应用了。在利用Java语言进行计算机软件开发的过程中,一般都会使用JDBC技术进行数据库的连接。
3.3 Java语言中的Remote Method Invocation技术
Java语言是比较科学、完善的,它是一种比较严格的语言机制,这也是它在软件开发中被广泛应用的主要原因。Remote Method Invocation技术的主要用途就是通过对JAVA语言的对象和类进行调整和应用,从而对程序语言进行分布式的管理。在进行计算机软件开发的时候,该语言不仅能够实现对数据的有效整合,同时也能对小型分布式的程序进行相应的调整,这样才能提高整体程序的稳定性、完整性和安全性。在利用Java语言进行计算机软件开发时,Remote Method Invocation技术在整个开发过程的作用比较重要,只有对该语言进行合理的组织,才能更好地实现软件中的基本功能。
4 Java语言在软件开发中的应用
4.1 在多平台中实现软件的编写
由于JAVA语言能够在任何平台进行使用,这使程序员能够更加灵活地进行软件开发,提高软件开发整个过程的
先进性。每个软件都具有一定的生命周期,它们都需要进行设计、开发和测试等环节,这也是提高软件生命力的重要过程。
4.2 基于可移植的特点提高游戏的效果
在开发软件中主要还是进行游戏软件的开发,以往开发手机游戏软件时,都是在Android系统利用Android语言程序进行编写,但是由于Java语言具有很好的移植性,该语言也逐渐被应用在开发手机游戏软件中,它能够提高整个游戏的效果。另外软件开发与游戏开发也存在不同,游戏的开发不仅要实现某些功能,同时也要考虑游戏的场景效果。
4.3 利用多线程和面向对象实现设计
Java语言所具有的多线程和面向对象的特征,不仅为程序员提供方便,同时也提高了编程的效率,增强了软件的实用性。面对用户对软件越来越高的需求,使用Java语言进行软件开发,才能更好地满足用户对软件功能的需求。Java语言能够加入动态画面,调用图像和图形,还能添加声音,这样使程序变得更加丰富和生动。
Java语言的使用范围非常广,随着计算机相关技术的不断发展,在互联网系统管理方面、企业内部开发软件方面、多媒体信息整理等方面都有使用Java语言进行编辑。从Java语言具有的特征来看,该语言的使用很具有发展前景。
【参考文献】
【1】周宝亮,王敏.计算机软件开发中JAVA编程语言的应用[J].电子技术与软件工程,2017(03):61-62.
doi:10.11772/j.issn.10019081.2013.07.1885
摘 要:
P2P分布式哈希表(DHT)协议本身简洁并且易于理解,但是命令式语言与分布式架构的不匹配使得实现和部署一个拥有全部功能的类似Chord的组件相当困难和复杂。针对这些问题,提出一种基于Bloom系统来设计P2P分布式哈希表协议的方法。首先,阐述了Bloom系统的分布式逻辑编程语言要素;其次,设计了一个最小分布式系统;再次,通过定义永久、暂时、异步通信和周期集合,设计了指表维护算法、后继列表算法以及维持稳定算法等,实现一个Chord原型系统。实验结果证明,原型系统能完成Chord所有功能,并且与传统语言相比,代码量减少60%。分析表明最终的算法代码和分布式哈希表协议规范高度一致,不仅增强了代码的可读性和重用性,而且加深了对协议本身及其应用的理解。
关键词: P2P;分布式哈希表;逻辑编程;Chord;Bloom
中图分类号:TP311.133.1文献标志码:A
英文标题
Chord protocol and algorithm in distributed programming language
英文作者名
PENG Chengzhang, JIANG Zejun*, CAI Xiaobin, ZHANG Zhike
英文地址(
School of Computer Science, Northwestern Polytechnical University, Xian Shaanxi 710129, China英文摘要)
Abstract:
1现阶段应用较多的计算机编程语言
计算机编程语言的发展是在解决人机互动矛盾的过程中所不断推进的。现阶段,根据不同的应用环境,常见的编程语言有如下四种:C、C++、JAVA、Pascal。這四种语言是当前主流的进行计算机软件编程的语言,通过对这几种语言进行解读能够更好的了解计算机编程语言对于加算计软件开发的影响作用。
1.1C语言
C语言出现于二十世纪的七八十年代,是最早的一种能够被人们高度认可的一种编程语言。在当今的各种计算机程序开发中依旧得到广泛的应用。C语言是一种面向过程的计算机语言,其在程序功能的实现上主要是通过对相关欲实现的功能进行步骤划分,详细的写出每一个步骤计算机需要执行的操作,最终实现完整的软件功能。C语言发展至今,已充分证明了其强大的生命力以及通用性。不仅如此,在运用C语言进行软件开发时,无需过度的注重程序各要素之间的关系,代码简短便于理解,语法要求不严格有着较好的容错,并且有着较为完善的数据结构类型,各种运算符同样得到涉及,夸张的讲,现有的所有功能都可以依靠C语言来实现。从硬件角度讲,C语言有着很好的硬件亲和性,能够直接访问硬件的物理区域,并对硬件进行直接的编程。C语言在世界范围内都有着广泛的运用,各种软件开发商都在对C语言进行进一步的研究开发。并且,现阶段较为常用的JAVA语言同样是基于C语言进行开发。
1.2C++语言
C++语言是基于C语言进一步开发的语言,其相较于C语言在程序的根本实现模式上有着很大的不同。C++语言是面向对象的一种编程语言,但在实际的代码以及库文件方面于C语言有着一定的共同。C++语言既有着C语言的各种优点与功能,又有着更家实用的现实意义。在许多熟知的操作平台是上面都能较为通常的见到C++语言的身影。但C++语言较C语言更难学习,思维逻辑结构在初步的理解方面往往存在一定的困难。只有在深入掌握这门语言之后,才能在实际运用中了解其强大的功能作用。并且C++语言是一门基础的面向对象的编程语言,学习C++语言对于未来的其他编程语言的学习有着很大的帮助。
1.3JAVA语言
JAVA语言内核是C语言,即JAVA语言是基于C语言所开发而出的一种语言。并且JAVA语言同样是一种面向对象的编程语言。JAVA语言与C++语言相比,在易用性上更具优势,并且JAVA语言也充分的具有C++语言的各种优势。在非智能机的时代中,JAVA语言为手机娱乐软件的开发做出很大的贡献。在现阶段,JAVA语言在智能手机的运用也很多是非常主流的移动端图形软件的程序编辑语言。另外在JAVA语言的基础上,还发展出C#语言。C#语言相较于JAVA语言更加适合智能手机的软件开发,在语法特性以及一些属性方面都要更加契合现阶段的软件开发。
1.4Pascal语言
Pascal语言在一定程度上不如以上几种语言更令人熟知,但在专业领域Pascal语言有着非常重要的地位。Pascal语言是一种高级编程语言,有着很强的个体特点。Pascal是针对当前计算机环境下所出现的一种语言,有着很高的运行效率,并且对于程序代码也有着较强的检错纠错能力。Pascal语言本身的数据类型丰富,结构也更为严谨。在当前大数据的环境下能够很好的实现数据以及算法的描述。且代表着新一代高级计算机语言的崛起。
以上四种语言是当前发展状态下几种较为有代表性的计算机语言,除了以上几种,计算机编程语言还包括更早的B语言,现在同样有所运用的VB语言等等。计算机编程语言的多样性以及互相之间结构的关联性都表现出新的编程语言是基于传统的语言进行调整优化而来的特点。各种编程语言在发展中都有着自身特有的运用范围与实用价值。
2在软件开发中对于编程语言的选择依据
编程语言的出现是为了设计具有各种功能的计算机软件。不同的软件开发都需要运用到不同种类的计算机编程语言。不同的计算机编程语言有着各自不同的属性,但殊途同归都能构就某一种功能进行实现。但运用不同的编程语言在实现的难度上不同,实际的软件使用条件也不同。选择合适的编程语言对于开发更具通用性,更适合现阶段计算机条件的软件有着重要的意义。所以在进行计算机软件的开发时,对于计算机编程语言的选择往往会遵循着一定改的规律。
2.1内外环境因素
一个优秀的计算机软件往往能够很好兼顾计算机的内外环境,保证在一定的外部硬件环境下能够稳定高效的运行。在内部环境中又能实现很好的兼容,容错等等。所以在对软件的开发中往往要针对软件的内外环境进行慎重的考虑。对于语言的选择,要考虑到软件的整体框架,将要实现的内容,开发的平台等等因素。对于语言的选择要考虑到外部环境变更后对于软件兼容性的影响,所以语言的选择要有前瞻性。另外编程语言的选择还要考虑到软件的功能和与之契合的专业领域内容,保证选择的语言能够很好的实现软件的是指功能。
2.2软件应用领域的因素
对于编程语言的选择要充分的考虑到软件是运用在何种领域之中,是对于硬件进行开发还是针对面向对象的开发,是要实现图形还是要实现数据的统计分析。对于领域的划分清楚后再选择适用的计算机编程语言。不同软件如果不考虑实际应用领域接进行软件的开发,最后做出的软件在一些方面无法适应现实需求。而且,选择合适领域的计算机编程语言既能够保证软件的功能得以全部的实现,又能够保证在软件开发过程中能够顺利的的进行。对于后期的软件维护也有着很重要的意义。一般的C语言更适用硬件的开发,c++以及Java语言更适用于面相对象的软件开发,VC,VB语言则适用于信息领域的软件开发等等。
2.3软件整体框架的影响
软件的整体的框架决定了最终的编程语言的选择,对于软件中的不同的功能项目可以选择不同类型的编程语言,对于加大规模的软件的实现,要充分的进行整体框架之间功能衔接之间进行细致的考量。
2.4掌握程度不同的编程语言影响
掌握程度不同的编程语言在进行软件编写的时候会对软件的开发效率,软件的功能实现效果带来很大的影响,所以选择熟悉的编程语言进行编写也是一个十分重要的考虑因素。即使是同类型的编程语言,不同人掌握的版本也不相同,但是熟悉的编程语言会使得编程变得更加的流畅,最终软件的质量表现更加出众。
以上四个方面即是在进行软件开发中对于编程语言选择时需要考虑到各种元素。对于不同编程语言对软件开发的实际影响会更加直观的表现出编程语言选择的重要性。
3不同编程语言对于软件开发带来的影响
不同编程语言对于实际的软件开发影响其实在上述的编程语言作用以及对编程语言的选择策略中已经进行相关的叙述。但还是要就不同语言对于对于软件开发带来的作用进行详细的表述。
3.1C语言对软件开发带来的影响
上文提到C语言是一种面向过程的计算机编程语言,其有着悠远的运用历史。在现阶段,掌握C语言的人群占据很大的比例,并且C语言能够适应所有软件功能的开发。但在实际上现阶段使用C语言进行较大规模的软件开发实很罕见的,之所以会这样,是充分的考虑到C语言本身的一些特性所做出的决定。C语言实面向过程的酿成语言,其要求在算法设计中详细的对事件的每一个详细步骤进行细致的划分。一旦遇到复杂功能的实现,御用C语言进行编程就会造成过于庞大的程序语句基数。过大的工作量一方面为开发工作带来各种困难,另一方面,一旦初夏那个中问题将很难及时的对软件进行调整,并且有可能出现平台移植时的技术难题。
3.2C++语言在软件开发中带来的影响
C++语言是一种面向对象的计算机编程语言,在一定程度上运用C++语言进行功能的实现要比C语言更为容易。并且,C++语言实除了C语言意外被人们所熟知的第二种编程语言。对于这种语言的使用者范围也是十分的广阔。但是,在运用C++语言时,如果不充分考虑到各种因素的影响,就会出现与C语言同样的问题。由于当前的软件开发都是有多人合作进行开发,所以对于各模块程序之间的联系必须要紧密,同时也必须满足一定的共用协议,如歌无法满足上述要求,完成模块化功能开发后,各个模块化程序出现各种不兼容状况,无法连称为一个整体,最终的软件开发以失败告终。
3.3JAVA语言在软件开发中的影响
Java语言就前两种语言来讲,相对更为简单,其实现的软件功能效果也更为优秀。但是Java语言的使用有着更为明显的局限性。运用Java进行基础图形渲染的制作能够实现,但如果要想实现更为高级的表现效果,只是运用Java便显得十分不足。另外,Java开发的软件中,某些协议与计算机中某些软件冲突诸如,Java相关软件在迅雷中的一些问题。着中不兼容问题的出现会大大的影响软件的使用状态。也会降低软件的品质。
3.4VB语言的在软件开发中的影响
VB语言是专门针对数据信息软件开发的一门语言,实一种十分方便且高级的语言,运用VB语言进行软件开发能够十分轻易的实现数据的统计分析与输入输出。但是VB语言的使用范围有着很具体的要求,无法运用VB語言进行其他类型软件的开发,如果忽视这一问题,在实际的软件开发中就会面临更多的困难,且开发出的软件在功能的实现上也并不能满足各种实际的需求,得不偿失。
综合分析来讲,不同编程语言本身就是为针对不同的应用环境所出现,所有的编程语言殊途同归,都是为了将开发者能够理解的语言转化为计算机能够理解的语言。而之所以出现如此多种类的计算及语言正是由于,在不同的开发需求下,单一语言的各种设置无法较好的实现软件所想要实现的功能。编程语言的进步往往实在已有的语言的基础上进行进一步的完善,最终能够更好的实现技术人员的需要,实程序员能够更方便的进行各种功能软件的开发,不断的挖掘计算机功能潜力,更好的方便大众的生活。所以在编程语言的选择中一定要认清编程语言的适用范围以及功能,有原则的对编程语言进行选择。
4结语
计算机软件开发语言就是计算机软件开发的工具。选择合适的工具才能更好的开发出具备各种功能的计算机软件。开发者要加强对于不同编程语言的了解程度,明白各类型编程语言对实际软件开发的影响作用。对于编程语言的选择有更为直观的认知,最终摸索出在软件开发中选择编程语言的方法,更高效的实现计算机软件的开发。
参考文献
[1]罗琼,李艳,熊英.不同编程语言对计算机应用软件开发的影响[J].电脑编程技巧与维护,2013(12):24-28.
[2]高霞.探讨不同编程语言对计算机应用软件开发的影响[J].电脑编程技巧与维护,2016(03):26-31.
[3]李开元.探究计算机应用软件开发过程中不同编程语言的影响[J].信息化建设,2015(06):30-35.
[4]张利军.计算机应用软件开发中不同编程语言的影响[J].科技传播,2015(15):24-29.
[5]马洁.计算机应用软件开发中选择的编程语言[J].电脑知识与技术,2013(08):44-49.
[6]康超.基于计算机软件开发的JAVA编程语言探讨[J].科技展望,2016(04):21-26.
[7]刘群娣.基于计算机软件开发JAVA编程语言分析[J].信息与电脑(理论版),2015(22):26-31.
作者简介
周俊威(1993-),男,四川省成都市人。大学本科学历,毕业生。研究方向为计算机科学与技术。
作者单位
西南石油大学四川省成都市610500
1 JAVA编程语言的特点
JAVA编程语言在计算机软1件开发中被广泛使用,是因其本身的优势,本文对其优势的总结描述如下:
第一,编写结构简单。与C++,VF、VB等语言相比,JAVA的编写方式更加简单,对软件开发人员而言操作较为简单,其简单之初主要是没有嵌套循环的程序、没有复杂的运算过程,能够提高软件开发效率,能有效为编程人员减负,也能减少占用计算机内存空间。因此,计算机软件开发使用JAVA语言进行编程是一个跨时代的改革,对提高计算机的运行速度有重要作用。
第二,独立性较好。在计算机软件的开发阶段,JAVA语言的独立性特点主要表现在,它可以在JAVA虚拟机中完成编写、运行、改进、在运行的过程,通过充分的校验和试运行后运用到计算机软件开发中[1]。因其具有独立的虚拟机可以對编程内容进行详细的解释,便于修改,对计算机的要求相对较低。
第三,JAVA编程语言的应用能够推动面向对象技术发挥其作用。面向技术是在计算机软件开发过程中使用的一种技术,其优势和特点也较为显著。在计算机技术的发展进程当中,面向对象技术的作用也越来越强大。面向对象技术在计算机软件的开发阶段能够有效区分客观元素,对编程形式进行多样式的描述,充分发挥其多用性、继承性等等特点,而JAVA编程语言对其具有很强的辅助作用,能够凸显面向对象技术的一系列特性,推动软件开发过程顺利进行。
第四,多线程。IAVA编程语言自身存在优势还有,提升软件开发工作的精准度,确保计算机在数据共享过程中的准确性;JAVA编程语言本身具有多线程的优势,因此在计算机软件开发过程中,能够对完成不同维度和方向的功能有所助力。
第五,安全性高。在软件开发过程中使用JAVA进行编程,可以实现公共密钥技术,对保障计算机安全有重要作用。所以说JAVA编程语言安全性能较高,受软件开发和使用者的一致好评。
2 计算机软件开发中的JAVA编程语言技术
2.1 Database Connectivity技术
这一技术的功能主要是整合和融合关系数据,通过连接方式实现数据连接。在计算机软件开发中使用这一技术能够有效建立数据库的管理体系,也能有效统一一类数据和接口,不断优化数据连接方式,推动计算机后台系统顺利运行。
2.2 Annotation技术
这一技术能够有效连接计算机各项因素,对其进行整合。在进行计算机软件的开发过程中,编程人员能够借用这技术对各项软件元素进行分类,建立各自管理体系。其中,Beans技术作用最不可小觑,可以自成一个体系独立于软件开发平台之外。
2.3 Remote Method Invocation技术
这一技术可以对软件开发中的各项元素进行调用;还可以有效连接客户机和总服务器。此外,还可以维护系统正常运行,保障程序运行的安全性和完整性。
3 JAVA编程语言在计算机软件开发中的相关技术
3.1 JAVA编程语言数据库连接
在计算机软件开发过程中,依赖于JAVA编程语言数据库对各种相关数据库进行连接,在完成软件开发的程式编写过程之后,为了功能的完整性,需要对各个数据库进行连接,这时候JAVA编程语言数据库连接就要发挥作用了。这一技术,可以对接口进行分类,以供软件编程人员调动,为简化开发过程提供重要支持。
3.2 JAVA Annotatnn
JAVA Annotation技术能够对编程语言中的某些信息进行整合和分析,为用户的使用提供便利,也能优化软件行为[2]。其中,我们上文提到的JAVA Beans,它具有很强的实用性,可以对体系进行独立控制,也正因为此其具有的安全性和一致性要强于其他编程语言。
3.3 JAVA远程方法调动技术
这种应用程式能够促进分布式的实现,此外,还能调动JAVA中的类和对象等,协调客户机和服务器之间的关系,确保其正常运转。它的远程调动技术可以有效整合软件开发中需要的信息和资源,调试各种分布式的小程序,对于实现软件开发的整体功能和安全性意义重大。
关键词: 数字图像处理;可视化编程;XML;MATLAB
中图分类号: G434 文献标志码:A 文章编号:1673-8454(2017)08-0093-04
一、可视化图像处理编程语言的设计目的
《数字图像处理》是电子信息类专业一门重要的专业课,因其与机器视觉具有密切关系,在我国制造业升级的大环境下,该课程的教学更具有了重要的意义。《数字图像处理》实践性强,因此针对本课程的演示实验和学生动手的课程实验,已经有许多研究者基于诸如Visual C++[1]、OpenCV[2,3]、ImageJ[4]、DSP[5,6]以及MATLAB[7-9]等不同软件和技术提出了实验教学的方案。但从学生实际情况来看,若仅提供操作界面,通过菜单和按钮操作来观察图像处理方法的效果,虽然能适应多数学生的水平,也能帮助直观了解有关方法的效果,但对方法的编程实现训练不足;但若使用某种编程语言来进行实验,哪怕是使用OpenCV或MATLAB@类直接支持图像处理的语言,仍会使相当部分的学生产生畏难情绪,且在实现过程中易于陷入语言本身的细节问题,难以专注于对特定图像处理应用的整体框架性理解。
在多年的教学过程中,学生普遍对可视化的编程工具表现出新奇感,较少产生畏难情绪,实验的参与度普遍较高。除此之外,可视化编程本身的框图特性,能够直观便捷地描述出算法的主要步骤和流程。因此,本文设计了一种MATLAB环境下用于数字图像处理的可视化编程语言xGIPL(XML-based Graphical Image Processing Language),它将相关实现代码封装为图像处理“功能模块”,使学生可以将注意力集中在整体算法步骤的理解上,而不用担心语言细节。基于该语言,可以开发面向图像处理的可视化编程软件,其用户界面和操作类似于Simulink,即通过图形化模块设计界面或直接书写所需要的XML模块文件,来预先实现好所需的图像处理步骤的功能,如图像的二值化、颜色空间转换、常用的滤波操作、区域标记和特征提取等等,然后由用户在可视化编程界面中通过拖放、删除、连接模块以及图形化的设置模块参数等操作,实现完整的图像处理任务的编程,之后可视化编程软件将负责分析和解释所实现的图形化程序,将其翻译为MATLAB m文件函数,并自动在MATLAB执行程序和返回处理结果。
二、图像处理功能模块的设计
图像处理功能模块(Image Processing Module,IPM)是具有输入和输出、完成特定图像处理步骤的基本编程单元。在可视化编程界面中,每个IPM就是一个可独立增减、拖拽并能够与程序的其他部分通过连线相连接的实体。IPM的定义由IPM文件给出。我们用XML语言来定义模块,因为XML语言本身具有灵活性和易读性,能够自由地定义所需的内容;XML的编辑很方便,通过普通的文本编辑器即可进行;此外在很多开发环境中,都有现成的XML解析器可用,从而大大方便了IPM和可视化图像处理程序的翻译过程。
1.IPM的具体设计
每个IPM的XML结构中包含一个名为“ipmod”的根节点,其下包含如下子节点:①mod_name节点。给出了每个IPM在模块库中的全局唯一的标识,且与IPM的XML文件名相同;②mod_help节点。提供了本IPM的帮助信息,可在可视化编程界面中为用户提供模块的用法;③glyph节点。用于指定一个图片文件路径,以便在可视化编程界面中提供更加直观和美观的模块外观;④parent_group节点。用于以树状结构组织和管理众多IPM构成的模块库;⑤port_pos节点。用于指定可视化界面中IPM的输入输出端口出现的位置。port_pos又包含两个子节点:inport_pos节点和outport_pos节点,分别指定了输入端口和输出端口的位置;⑥inputs节点和outputs节点。分别用于定义与IPM的输入和输出有关的信息。在inputs节点和outputs节点之下,又分别可包含一个或多个inport节点和outport节点,它们具体定义了每个输入端口和输出端口,其结构稍后介绍。inputs节点和outputs节点为可选节点,即一个IPM可以没有输入(没有inputs节点)或没有输出(没有outputs节点),但不能两者均无;⑦implement节点。给出了实现本IPM的处理功能的MATLAB代码。
inputs节点下的inport节点及outputs节点下的outport节点定义了IPM的各输入、输出端口,相当于IPM的输入和输出参数。inport节点和outport节点均包含如下子节点:
(1)port_name节点。给出了该端口在IPM内的唯一名称,并且在IPM的implement代码中通过“%port_name”的方式加以引用。
(2)port_help节点。给出了该端口的帮文本。
此外,inport节点还包含:
(3)可选的value_range节点。当一个inport节点包含value_range节点时,表示该端口的取值有一定的范围限制,因此在可视化界面中可以采用适当的方式(如滚动条或下拉菜单等)更方便地加以设定。输入端口的取值范围又可采用如下三种形式之一:①整数取值范围。用value_range节点下的int_range子节点表示,而int_range下又含一个max子节点和一个min子节点,分别给出可选的整数值的上下限;②实数取值范围。用real_range子节点表示,其下同样包含一个max和一个min子节点来给出上下限;③类别型取值范围。用cat_set字节点表示,其下包含若干cat子节点,每个cat子节点的值一般为一个MATLAB字符串。
(4)可选的default节点。表明当该输入端口未与其他模块的输出端口相连,也没有通过用户编辑来设置一个值时,该端口的缺省取值。若存在default节点,则表明该输入是可选参数,否则输入是必选参数,必须由用户通过上述两种方式之一为其提供所需的值。
2.IPM示例
下面以一个示例性的ReadImage IPM的XML文件来说明所定义的结构。ReadImage模块定义的代码如下,为简洁起见,其中略去了mod_help、glyph、port_pos、parent_group和port_help等非核心节点:
ReadImage
Path
Format
'Auto-determined'
'bmp'
'jpeg'
...
'Auto-determined'
ImageData
if strcmp(%Format, 'Auto-determined')
%ImageData = imread(%Path);
else
%ImageData = imread(%Path, %Format);
end
由上述代a可见,ReadImage模块包含两个输入端口――Path端口和Format端口。Path端口用于指定待读取的图像文件的路径,是必选端口,需要用户在可视化编程的模块编辑界面中输入或通过其他模块传入;Format端口用于指定图像文件的格式,具有类别型的取值范围,指出了模块支持的图像文件格式,而缺省值为“Auto-determined”,即模块根据文件后缀名自动确定图像文件格式。输出端口只有一个,即ImageData端口,是所读取到的图像数据矩阵。在implement节点中可以看到模块功能的实现代码。
三、可视化图像处理程序的结构设计
1.图像处理程序的设计
在可视化编程界面上放置、拖拽和连接IPM的实例,即可构成图像处理程序(Image Processing Program,IPP)。我们同样利用XML来作为程序源代码的组织方式。图像处理程序的XML根节点是“ipprog”节点,其下包括1个memo节点和若干个block节点。memo节点仅是对IPP的描述和介绍,而构成IPP实质功能的部分是block节点。
block节点包含如下子节点:
(1)block_name节点。block_name是程序中每个IPM实例在IPP范围内的唯一标识。一个IPM可能在一个IPP中有多个实例,但这些实例必须具有不同的block_name。
(2)module节点。储存了该IPM实例所使用的IPM的名字,即IPM定义中的mod_name。
(3)inputs节点。储存了该IPM实例的输入值的信息。inputs节点下包含一个或多个inport节点,每个inport节点描述了相应的输入端口的输入值信息,由如下子节点构成:①port_name节点。输入端口的端口名,即IPM定义中的port_name;②value_type节点。value_type节点的可能取值为“internal”或“external”。internal表示该端口的输入值是由用户在模块编辑界面中输入而来,并非来自其他IPM实例的输出;external则表示该端口的输入值由其他IPM实例的输出所提供;③value节点。当value_type为internal时,用户提供的输入值储存于value节点中;当value_type为external时,则不应出现value节点;④src_block节点和src_outport节点。当value_type为external时,src_block节点储存了该输入端口的输入所来自的那个IPM实例的名字,即前述的block_name;src_outport节点指出了所来自的该IPM实例的具体输出端口名。通过src_block和src_outport便隐含地描述了IPM间的连接情况。当value_type为internal时,不应出现src_block和src_outport节点。
2.IPP示例
我们通过如下示例IPP来进行说明:
This is an examplar application diagram.
writer
SaveImage
ImageIn
external
reader
ImageData
Path
internal
'result.jpg'
Format
internal
'Auto-determined'
reader
ReadImage
Path
internal
'image1.jpg'
Format
internal
'Auto-determined'
@个简单的程序包括两个IPM实例:reader和writer。reader模块是一个ReadImage IPM,在程序的输入设置下由“image.jpg”文件读入图像;writer模块是一个SaveImage IPM,在程序的输出设置下将reader读入的图像数据再保存为图像文件“result.jpg”。
四、可视化图像处理程序翻译器
可视化图像处理程序翻译器的作用,是将IPP自动转为可在MATLAB中执行的.m函数文件。翻译器的基本工作思路是首先对IPM和IPP的XML文件进行解析,获取各个XML节点信息,然后以系统性的编码和命名方式来产生所需的.m文件。
在完成XML文件解析后,先根据程序所用各IPM的implement元素,以子函数形式封装这些代码。封装的主要思路是,利用IPM名作为子函数名,采用系统性的方法定义输入输出的变量名,例如对于第1个输入,可以定义为“in1__”。在定义了输入输出的变量名后,将implement代码中以%port_name形式给出的输入输出变量替换为所生成的变量名。
整个IPP的翻译则首先需要对IPM实例按调用的逻辑顺序进行排序。程序要能够执行,要求每个IPM实例(所对应的子函数)在被调用前,其输入都已确定。因此我们需要对IPM实例排序。考虑到IPM实例数量通常不大,我们重复地遍历这些IPM实例,并对它们进行标号。开始时,所有IPM实例的标号均为0。如果一个IPM实例的某个输入端口的value_type为internal,或者该端口为external,但与其连接的src_block IPM实例已经被标号,那么这个输入端口的值就已经确定;如果一个IPM实例没有输入端口,或者所有输入端口的值均已确定,那么就用一个大于0的整数值标号该IPM实例。当所有IPM实例均被标号,或者在一次遍历中没有IPM实例被标号,那么整个排序过程即告完成。
之后,按标号由小到大的顺序将每个IPM实例转为对相应子函数的调用代码,并采用系统性的方法来命名IPM实例的输入输出端口对应的变量,最后以程序文件名作为函数名,为翻译好的代码加上MATLAB函数定义头,并保存为同名的.m文件,便完成了翻译。
例如,经过翻译之后,由第二节中示例IPM所得的子函数以及第三节中示例IPP对该子函数进行调用的MATLAB代码如下:
function example()
reader_Path_in__ = 'image1.jpg';
Reader_Format_in__ = 'Auto-determined';
[reader_ImageData_out__] = ReadImage
(reader_Path_in__,reader_Format_in__);
function [out1__] = ReadImage(in1__, in2__)
if strcmp(in2__, 'Auto-determined')
out1__ = imread(in1__);
else
out1__ = imread(in1__, in2__);
end
五、开展图像处理编程训练的若干层次
利用本文所设计的xGIPL可视化图像处理编程语言,可以开展不同层次的图像处理编程训练。我们目前所能考虑到的就至少包括以下三个层次:
(1)使用xGIPL在已有模块的基础上进行可视化编程。学生通过使用现成的IPM来进行可视化编程,能够了解和掌握解决特定图像处理任务的整体性思路,并能够直观地感受处理的效果以及程序的性能。这一层次属于较低的训练层次。
(2)通过MATLAB编程来自行实现关键的IPM,并通过可视化编程完成应用的完整实现。在该训练层次下,学生应对MATLAB语言编程有相当程度地掌握,并且也能够完成IPM的设计,从而能够针对特定的图像处理问题自行实现其中的关键步骤,并完成IPM的封装。这一层次属于中等训练层次,能够锻炼学生对MATLAB这一高级编程语言的运用。
(3)通过MATLAB的C/C++ MEX编程来实现关键的、对于计算性能有较高要求的图像处理功能,从而能够更高效地完成整个图像处理任务。这一训练层次要求学生不但熟悉xGIPL和MATLAB语言,而且也熟悉C/C++编程,并且能够使用C/C++语言进行图像处理算法的低层级编程,因此属于最高的训练层次。
参考文献:
[1]翁花群,林元国.基于Visual C++的数字图像处理实验教学软件开发[J].廊坊师范学院学报(自然科学版),2015(1):24-28.
[2]李志欣,卓亚琦.基于OpenCV的数字图像处理实验教学研究[J].大学教育,2013(9):42-43.
[3]张帆.基于OpenCV实践项目的数字图像处理教学方法探索[J].亚太教育,2015(22):133.
[4]郑林涛,董永生.ImageJ软件在数字图像处理课程教学中的应用[J].中国电力教育,2014(8):112-113.
[5]施帮利,韩武红,杨奕.基于DSP的数字图像基本处理实验教学探讨[J].中国电力教育,2013(10):171-173.
[6]鲁亿方,蓝金辉,迟健男.基于DSP的数字图像处理实验的探究[J].实验技术与管理,2014(3):109-113.
[7]邱广萍.MATLABGUIDE在数字图像处理教学中的应用[J].价值工程,2014(3):184,186.
[关键词]计算机;软件开发;JAVA编辑语言
中图分类号:TP311.1 文献标识码:A 文章编号:1009-914X(2016)11-0370-01
一、JAVA的概述
在计算机软件开发中,编程语言很多,一些传统的编程语言不仅繁琐,还无法适应软件系统的快节奏发展。例如VF语言、VC语言和VB语言等,不仅呆板还比较复杂。在这些语言的对比之下,JAVA编程语言的优点得到突出,其操作简单方便,操作系统多样化,这些不仅满足网络运行中的程序编写,同时也能够进行应用软件编写。软件程序的操作性很强,在实际中应用也比较简单,因而在计算机软件开发编程中,软件程序具有重要的作用和巨大的意义。
二、JAVA的特点
(一)泛用性
JAVA作为一种跨平台的编程语言,具有良好的泛用性,因而大受软件开发者的喜爱。JAVA除了具有良好的泛用性,还具有良好的可移植性。可移植性是指将软件从一个环境转移到另一个环境的难易程度。在JAVA开发软件中,可以有效移植源代码,这就使得JAVA在任何操作系统中都能发挥出良好的作用。传统的C语言在不操作系统中都能保持严谨的语法定义,但编程语言表达的语意却是不标准的。因此,在软件编写中,JAVA语言比C语言泛用性更为良好。
(二)独立性
独立性是JAVA编程语言最重要的一个特点。在实际的编程应用中,JAVA语言的独立性特点能够有效提升自身性能。与解释型的高级脚本语言相比较,JAVA语言具有更为快速的运行速度。例如在JAVA7.0的版本中,应用了升级类加载类装入器架构和Better type inference,这样能够进一步提升JAVA编程语言的独立性,自身的运行速度也得到提高。
(三)简易性
与C语言相比,JAVA编程语言较为相似。因此,编程语言软件开发人员能够很快的熟悉并掌握JAVA的使用方法。例如,在对JAVA7.0进行改进的时候,catch可以被准许对语句进行捕获和应用,这样能够提高编译器的选择性和智能性。并且在实际的应用中,JAVA编程语言还没有C语言等编程语言中复杂难懂的预言特性,具有简易的优点。同时,运用JAVA编程语言,能够降低软件开发所占用的系统内存,使整体运行更为流畅。
三、JAVA的主要技术
(一)JAVA标注
JAVA标注是一种主要的编程语言技术,使用该技术,能够联系好JAVA语言的变量、属性和参数,给整合机制提供。所以,在用户使用中,可以利用元素特点、属性等标准进行分类。其中,JAVA Beans是一种重要的技术,能够独立于开发平台之外,并且还有安全性和一致性等特点,因此JAVA编程语言在开发软件过程中,有重要的意义和作用。
(二)JAVA数据库连接
数据库连接是在软件编程中实现统一访问多种关系数据库的一种技术。在利用JAVA进行软件编写时,可以先利用语言进行编译和调试,达到连接相关数据库的目的,也有利于完成后台数据库管理体系的构建。同时,这项技术能够给程序员提供统一的类和接口。因此,应用该项技术,能够构建更为复杂和高级的数据连接工具,使后台数据更好的支持程序的运行。
(三)JAVA远程方法调用
JAVA远程方式调用的运用,能够更好的实现分布式应用程序。利用类和对象也使远程方法调用能够更好的在服务器和用户机之间运行。利用这项技术进行程序开发,实现资源信息的整合,调试好多个小程序,并分布应用,使程序的完整性和安全得到保障。
四、JAVA的实际应用
JAVA编程具有很多独特优势,因而在软件开发中得到广泛应用。JAVA具有的可移植性能够提升游戏的整体效果。各种各样的JAVA游戏平台逐渐出现在网络休闲娱乐活动中。JAVA的可移植性,将其向更为便捷的自动终端转移,能够让客户随时随地快捷的享受游戏乐趣,因此,JAVA编程语言在手机游戏中发挥良好作用。此外,JAVA编程语言具有更为良好的适应性,能够很快适应不同的操作系统,在开发、设计、测试软件方面,具有巨大作用。Windows操作系统是最为常用的系统,在软件开发中,主要是以Windows操作系统为基础平台,在开发和编程过程中,C++语言,但进行平台移植时,只有利用JAVA编程语言移植,软件才能在新的环境中运行,还能实现跨平台的编译工作。另外,JAVA编程语言还能设计动态画面,例如载入声音、调用图像等。通过编写相应的JAVA程序代码,能够提高程序的生动性和形象性。此外,JAVA编程语言编写的程序具有很好的交互性。随着我国计算机水平的不断发展,JAVA编程语言能够得到更广泛的应用,其利用自身的优势,能够解决传统编程语言的不足和问题,使得软件开发更为简单和快捷。由此可见,JAVA编程语言在计算机软件开发中具有美好的发展前景。
五、结语
随着生活的不断进步,科技开始进入生活,人们的生活处处都能接触到计算机。利用计算进行工作,就需要运用到相关的软件。而JAVA编程语言是一种很好的软件开发工具,能够更好的提高软件开发效率,为人们的工作提供更为丰富的软件程序。
参考文献
关键词 初学者;计算机程序;设计;理解;编程语言
中图分类号:TP311 文献标识码:A 文章编号:1671―7597(2013)041-191-02
一个计算机语言初学者在学习进步的过程中,所遇到的最大的困难就应该算的上是编程语言选择的困惑。本人就编程语言开始分析。
1 初学者对编程语言类型的理解
编程语言的种类繁多,特征明显。
1.1 从语言的等级划分:汇编语言和高级语言
汇编语言:也就是指在对机器进行操作的时候要用到的汇编语言,与机器语言类似,这种语言的对应者其实就是对硬件的操作。硬件要做的每一个指令都要由编程者用命令的形式以汇编语言表现出来。汇编语言就是像汉字一般,每一个语言都代表着一个细微的动作,汇编这要做的就是将这些命令组编起来,汇编成一个动作的指令,从而达到执行动作的效果。机器对汇编的要求不仅很简单,其执行命令的工作效率也是非常的迅速。然而汇编语言对编程者硬件知识的理解要求更高,同时各种汇编语言的表述又各不相同。
高级语言:汇编语言的创新发展型编程语言,变得简单更易于学习和操作。编程的种类有很多,其可以自动筛选完成这项工作所需要的程序,从而去除掉那些多余的工作程序,使其编程更加简单。不仅加快了命令的执行速度,还降低了对编程者的专业素质要求。
1.2 从语言的执行方式划分:解释语言和编译语言
解释语言:这种操作就像是一台自动翻译机,不过其主要的工作并不是汉语翻译成英语,而是将应用程序源代码需要对执行过程进行逐一“翻译”为编程所要用到的专业目标代码。由于,这种执行方式繁琐复杂,还需要进行编译解释,大大加大了工作的时间,从而降低了工作的效率,而且在操作过程中有一个明显的缺陷:不可以独立的完成工作,必须与解释器相互帮助。当然,既然这种执行方式能推广应用这么长时间,也有它的优势:对应用程序的调整比较方便,可以随时对其进行修改,其有一个显著的例子:脚本语言,在脚本语言中范围中有发展的比较大的有Vbscript.Javascript.Perl.Python等。
编译语言:这个也是要将程序源代码“翻译”为机器语言,但是编译语言与上文中不同的就是翻译必须要在源程序应用之前。这种方式的特点正好与解释语言相反,它可以完全脱离语言环境,独立性强,但是其修改方面再次编译才可以。由于现在编译语言的种类非常广,像是C.C++.Delphi之类的都已经被划分成编译型一类。
在执行方式中,有一个很特别的种类:Java。这种方式虽说也要翻译,然而由于字节码,这就是要将其“翻译”成伪码,才可以再将其完成执行。
1.3 从面向对象划分:结构化语言和面向对象语言
在此领域中,有两种思想:面向过程和面向对象。面向过程的典型的应用就是C.Pascal语言,这种面向过程的方式就会在设置的过程汇总制定较多的定义函数和结构体。
面向对象的话就是指面对某一软件的时候思想附加于软件设置上,这种方式在领域中称作OO方法。构选机制是以继承为主,全方位的围绕对象进行刻画,构建与其相关的软件系统。上文中提到了Java.C++都属于面向对象的语言。
其实,对这个专业了解足够多的人都明白,SQL必须与其他高级语言相结合,才可以做出更好的成绩。无论是用哪一个高级编程语言来对软件进行开发,其存储数据的时候都必须要用到数据库,也就是离不开SQL的帮助。
2 编程语言应用领域
当前应用广泛的编程语言种类较多,由于其工作效率不同,但是无法用好与不好来评价他们。只能说对设计不同层次的程序,所需要的语言就可以不一样。
2.1 Java开发应用领域
据统计,Java的使用情况Web所占的比例最大。正是因为Java对企业的场景应用有很大的作用,而且由于其现在长期的应用改革,Web发展已经离不开Java了。由于长期的发展,此技术也已经发展成熟,高峰期已经达到。
2.2 C语言的应用范围
C语言可以用到的地方很广泛,除了嵌入式系统等领域,还可以为高层软件所服务。
2.3 Visual Basic的各种应用
这种编程语言可以大范围的应用到各种实际运用中,就例如:界面设计.文字及文件处理.图形处理等方面。
2.4 PHP随互联网发展,应用领域宽泛
很多中小型的网站是其最主要的使用者,即使是很多大型网站在设计的时候也是经常用到,或者说是在企业办公中也是应用广泛。
2.5 C++在以下领域,有着根本性的优势
C++经常应用于的一些领域非常广,而就是因为其特点十分的明显,尤其是对低级系统程序设计.高级系统程序设计.嵌入式程序设计.数值科学计算.通用程序设计以及混合系统设计等具有很明显的应用效果。
2.6 其他语言
C#主要用于开发WEB应用,与Java一样的,是竞争的两方面,这也是微软设计C#的初忠,C#虽然有其优点,但是在构架方式与其类型相似的语言相比而言,并不是受很多公司的欢迎,尤其是在制作C/S的商品软件的时候。
Delphi的技术十分成熟:正是由于其发展时间够长,技术足够成熟,数据库做够强大,特别是在其和Windows编程相结合的时候,更是受设计数据库相关的应用软件公司的青睐。
总的来说,汇编语言没有高级语言使用快捷方便,执行效率焦高;结构化与面向对象相比较,面向对象语言又略胜一筹;编译语言要比脚本语言复杂。
参考文献
[1]王汝传.计算机程序设计语言的发展[J].电子工程师,1999(11):1-5.
[2]陈冬火,姚望舒.“计算机程序设计语言”教学刍议[J].计算机教育,2009(10):18-20.