软件可移植性指的是什么呢?
指将植物移动到其他地点种植,后引申为将生命体或生命体的部分转移,将身体的某一部分,通过手术或其他途径迁移到同一个体或另一个体的特定部位,并使其继续存活的方法。
软件工程中,程序往往被视为有生命的机体,将源代码从一种环境下放到另一种环境下运行也可以称为移植。
下列叙述中,与提高软件可移植性相关的是?
选D.尽量用高级语言编写系统中对效率要求不高的部分 软件可移植性是指与软件可从某一环境移植到另一环境的能力有关的一组属性。
高级语言具有较好的可移植性,所以可以尽量用高级语言编写系统中对效率要求不高的部分。
减少注释、选择时间/空间效率高的算法都不能提高软件的可移植性。
希望能帮到你,您的满意就是我的动力。
...
程序的“可移植性”是什么意思?
可移植性并不是指所写的程序不作修改就可以在任何计算机上运行,而是指当条件有变化时,程序无需作很多修改就可运行。
你不要把“我不会遇到这种情况”这句话说得太早。
直到MS—Windows出现之前,许多MS—DOS程序员还不怎么关心可移植性问题。
然后,突然之间,他们的程序不得不在一个看起来不同的操作系统上运行。
当Power PC流行起来后,Mac机的程序员不得不去应付一个新的处理器。
任何一个在同版本的UNIX下维护过程序的人所了解的可移植性的知识,恐怕都足以写成一本书,更别说写成一章了。
假设你用基本ALBATR—OS(Anti-lock Braking and Tire Rotation operating system)的Tucker C来编写防抱死刹车软件,这听起来好象是一个最典型的不可移植软件。
即便如此,可移植性仍然很重要:你可能需要把它从Tucker C的7.55c版本升级到8.O版本,或者从ALBATR—OS的3.o版本升级到3.2a版本,以修改软件中的某些错误;你也可能会出于仿真测试或宣传的目的,而把它(或其中一部分)移植到MS-Windows或UNIX工作站上;更为可能的是,在它尚未最终完工之前,你会把它从一个程序员手中交到另一个程序员手中。
可移植性的本意是按照意料之中的方式做事情,其目的不在于简化编译程序的工作,而在于使改写(重写!)程序的工作变得容易。
如果你就是接过别人的程序的“倒霉蛋”,那么原程序中的每一处出乎意料之外的地方都会花去你的时间,并且将来可能会引起微妙的错误。
如果你是原程序的编写者,你应该注意不要使你的程序中出现出乎接手者意料之外的代码。
你应该尽量使程序容易理解,这样就不会有人抱怨你的程序难懂了。
此外,几个月以后,下一个“倒霉蛋”很可能就会是你自己了,而这时你可能已经忘记了当初为什么用这样复杂的一种方式来写一个for循环。
使程序可移植的本质非常简单:如果做某些事情有一种既简单又标准的方法,就按这种方法做。
使程序可移植的第一步就是使用标准库函数,并且把它们和ANSI/ISO C标准中定义的头文件放在一起使用,详见第11章“标准库函数”。
第二步是尽可能使所写的程序适用于所有的编译程序,而不是仅仅适用于你现在所使用的编译程序。
如果你的手册提醒你某种功能或某个函数是你的编译程序或某些编译程序所特有的。
你就应该谨慎地使用它。
有许多关于c语言编程的好书中都提出了一些关于如何保持良好的可移植性的建议。
特别地,当你不清楚某个东西是否会起作用时,不要马上写一个测试程序来看看你的编译程序是否会接受它,因为即使这个版本的编译程序接受它,也不能说明这个程序就有很好的可移植性(C++程序员比c程序员应该更重视这个问题)。
此外,小的测试程序很可能会漏掉要测试的性能或问题的某些方面。
第三步是把不可移植的代码分离出来。
如果你无法确定某段程序是否可移植,你就应该尽快注释出这一点。
如果有一些大的程序段(整个函数或更多)依赖于它们的运行环境或编译方式,你就应该把其中不可移植的代码分离到一些独立的“.c”文件中。
如果只在一些小的程序段中存在可移植性问题,你可以使用#ifdef预处理指令。
例如,在MS-DOS中文件名的形式为“\tools\readme”,而在UNIX中文件名的形式为“/tools/readme”。
如果你的程序需要把这样的文件名分解为独立的部分,你就需要查找正确的分隔符。
如果有这样一段代码 #ifdef unix #define FILE_SEP_CHAR/ #endif #ifdef __MSDOS__ define FILE SEP CHAR\\ #endif 你就可以通过把FILE_SEP_CHAR传递给strchr()或strtok()来找出文件名中的路径部分。
尽管这一步还无法找出一个MS-DOS文件的驱动器名,但它已经是一个正确的开头了。
最后,找出潜在的可移植性问题的最好方法之一就是请别人来查找!如果可以的话,最好请别人来检查一下你的程序。
他或许知道一些你不知道的东西,或许能发现一些你从未想过的问题(有些名称中含"lint"的工具和有些编译程序选项可以帮助你找出一些问题,但你不要指望它们能找出大的问题)。
实现软件可移植性的常用方法有哪些?
您好,希望可以帮您:科技名词定义 中文名称:移植英文名称:transplantation;grafting定义1:将自体或异体的正常细胞、组织或器官从它所在的位置植入到另一位置,是临床治疗多种终末期疾病的有效手段。
应用学科:免疫学(一级学科);免疫病理、临床免疫(二级学科);移植免疫及其他(三级学科)定义2:将一种经济生物从原栖息水域移放到另一个环境条件相似的水域繁殖生长。
应用学科: 水产学(一级学科);水产养殖学(二级学科)定义3:将生物体的细胞、组织或器官转移至同一个体的另一部位或另一个体的技术。
应用学科:细胞生物学(一级学科);细胞培养与细胞工程(二级学科) 介绍 指将植物移动到其他地点种植,后引申为将生命体或生命体的部分转移,将身体的某一部分,通过手术或其他途径迁移到同一个体或另一个体的特定部位,并使其继续存活的方法。
软件工程中,程序往往被视为有生命的机体,将源代码从一种环境下放到另一种环境下运行也可以称为移植。
外科学中,移植是指将一个个体的细胞、组织或器官(移植物)用手术或其他方法,导入到自体或另一个个体的某一部位,以替代原已丧失功能的部位的技术。
详细释义 1. [transplant;grafting] 2. 将秧苗或树木移走并栽种在另一个地方 从他的苗圃移植的桑树 3. 一个器官或组织从身体或身体的一部分移到别处 孪生子之间的肾脏移植成活率高 4. 比喻引进别处的经验、长处、做法等 将沿海地区的经验移植到内地 5.将一个平台上的程序转移到另一个平台 示例 1、将沿海地区的经验移植到内地 2、孪生子之间的肾脏移植成活率高 3、随着文艺创作的繁荣,改编和移植工作也取得了可贵的成绩 4、﹝医务人员﹞应用大网膜游离移植和自体骼骨植骨等手段,成功地治疗了一位由于小腿粉碎性骨折而造成骨缺损、皮肤血管都有严重损伤的病人。
5、将psp版本的project DIVA移植到PC。
典故 《旧唐书·食货志下》:“盐铁使 王涯 表请使茶山之人,移植根本。
” 宋 苏轼 《芦》诗:“江湖不可到,移植当勤劬。
” 明 沈德符 《野获编·禨祥·花石之祸》:“又 岭 南从来无牡丹,即移植者,俱不作花。
” 辩解 如果被移植生命体部分的新载体同原来的载体差异很大,则这种移植一般叫做嫁接,例如将苹果树的枝嫁接到桃树上。
人体移植是将自体或异体的细胞、组织和器官,移植到身体的某一部位,以恢复被破坏器官或组织的解剖结构和功能,移为移植术。
输血是最早采用的细胞移植,以后发展了组织移植,如皮肤、粘膜、大网膜、骨髓、脂肪、筋膜、肌肉、肌腱、血管、神经、骨和软骨等移植。
由于显微外科和免疫抑制药物的发展可,器官移植进展很快。
(一)皮肤移植的术后护理要点: 植皮的肢体要限制活动,以免皮片移动影响存活,并抬高患肢。
保持包扎敷料的清洁和干燥,如被大小便沾污应立即更换。
告知病人不可抓摸创面,病儿双手应加约束。
经常观察创面,如皮片下积有脓血,应立即用正确处理。
(二)断肢再植的护理要点: 1、消毒隔离和预防感染措施 术后病人住单间病房,室内空气和器物均须消毒,室温维持在20-25度,湿度为50%-60%,有专人护理,限制探视人员。
采用抗生素预防感染,但尽量用肌肉注射,以防产生静脉血栓。
2 观察生命体征: 定时测体温、脉搏、呼吸和尿量,记录24小时液体出入量,观察有无血容量不足,以及有无术后并发症(特别是急性肾衰)的出现。
3 再植肢体的护理 1)抬高肢体 再植肢体抬高至心脏平面,保证静脉回流。
2)消除血管痉挛因素 术后一周内再植肢体可用照明灯照射(灯距30-45cm),使肢体血管扩张;严禁吸烟等。
3)观察局部循环 如皮肤颜色由红润变苍白,提示动脉及功能乱或栓塞;皮肤出现散在瘀斑,提示静脉部分栓塞;皮肤如出现大片或全部暗紫色,说明静脉完全栓塞。
术后10天内,应每1-4小时测皮温1次。
再植肢体皮温应高于正常侧1-2度,如皮温突然下降,患侧与健侧相差3度以上,提示动脉栓塞;如缓慢下降,在1-2天内相距3度以上,则为静脉栓塞。
毛细血管充盈时间短于1秒,皮肤青紫,患肢肿胀,为静脉回流障碍;如毛细血管充盈时间延长至2秒以上,皮肤苍白、发凉、干瘪,为动脉供血不足。
如肢体肿胀,应经常测量肢体周径,并追踪观察是否加重,寻找原因及处理,否则可能造成肢体坏死。
4 功能锻炼 对病人进行健康教育,说明早期活动重要性,协助制订锻炼计划。
自再植存活之日起,患肢保持功能位,绝对休息,但可作适当按摩和活动健肌。
3-4周后,软组织已愈合,去除外固定后,指导病人作受累关节各方向的主动运动,亦可作较有力的牵伸挛缩和关节功能牵引,进行系统的康复训练。
近义词 应用、移栽、转移。
软件安装是一个什么样的过程
软件在安装时,到底做了些什么? 大家每天都在用电脑,可能也经常在自己的电脑上安装软件。
就算自己没安装过,至少也看到人家安装过软件。
在这里,我不是想教你怎么安装软件,而是想向你展示,软件在安装的过程中,到底都做了些什么动作?为什么有些软件要安装,直接拷贝过去却不能用?为什么一些软件安装或卸载之后要重启。
下面要讨论的就是这些问题。
首先,我们探讨一下软件安装的共通部分,说共通,就是在不同版本的操作系统上,如WINDOWS98,WIN2K和WINXP等上它们都有共同点的地方。
这个文章也试图不针对具体的某个操作系统,而对共同的规律来探讨,不过我自己用的是WINDOWS98,所以有时一些例子可能会用WINDOWS98上的实例来说明,而大多数情况下这些特***在WIN2K和WINXP上也是类似的。
那么,我先来归纳一下,典型的软件安装过程都有可能做哪些事情。
由于我们是讨论软件在安装时的行为,所以开始安装前的设置和选项我们就暂不讨论,只说到软件真正开始安装那个时候起的动作:①文件从安装源位置拷贝到目标位置。
②往系统目录写入一些必要的动态连接库(DLL)。
(可选)③往系统注册表中写入相应的设置项。
(可选)④建立开始菜单里的程序组和桌面快捷方式。
(可选)⑤其他动作。
(可选) 下面我们再详细来分析上面归纳出来的这些动作:1)拷贝软件本身需要的文件。
源位置指软件未安装之前的位置,例如光盘,下载的目录等,目标位置指你指定的安装位置。
这是几乎所有的软件安装过程一定会做的一件事。
而如果一个软件,在安装时只要这一步,不需要后面的其他几步,我们可以认为这个软件就是绿色软件。
或者反过来说绿色软件就是只要拷贝文件,不需要依赖于某个DLL,或者它依赖的DLL在几乎所有的系统中都一定有的,并且它也不依赖于注册表里面的设置项的软件。
2)这一步,可以说至少有一半软件在安装时都会做,一些软件,需要用到某个DLL,特别是那些软件作者开发的DLL,或者系统中不常用的DLL,一般都会随软件的安装拷到系统目录。
所谓系统目录,在WIN98下一般是在WINDOWS\SYSTEM这个目录,而WIN2K是在WINNT\SYSTEM32,WINXP是在WINDOWS\SYSTEM32。
还有,一些软件如QQ游戏,中游等,它们也用到一些DLL,由于这些DLL只是这个软件自己用到,别的其他软件不会用到,所以它们并不一定存在于系统目录,而是放在软件安装目录里面,这样的DLL已经在上一步中被拷贝,所以和这一步说的情况不一样。
3)这一步同样至少有一半软件会做,一般在安装前用户的设置和一些选项,在安装时就会把这些设置写到注册表里。
另外就是有时在上一步把DLL拷贝到系统目录时,一些DLL需要向系统注册,这些DLL的注册信息也会写在注册表里。
还有,一些软件有时可能安装时并不写注册表,而是在第一次运行时才把一些设置写到注册表。
4)这个非常简单,大概不需要怎么解释。
建立这些快捷方式一方面是便于用户执行,另外在时也会把卸载的快捷方式放在程序组里。
关于卸载后面我们再来讨论。
5)这个就是除了上面说的以外的其他情况。
例如有些软件安装时会先把所有文件(或一部分文件)先解压到临时目录,那么安装完之后就要把这些文件删除掉。
那么我们再总结一下:一、一个典型的软件在安装过程一般都会执行上面的1-4项。
这样可以认为是一个完整的安装过程。
二、除了第1项之外,其他的都不是必要的。
只需要第一项的软件,我们可以把它叫做绿色软件。
三、有些软件安装时是执行了1、2、4,有些软件是执行了1、3、4,有些软件是执行了1、4。
四、一个特殊的情况,一般的驱动程序,只会执行2和3,没有1和4。
五、理论上,任何软件,如果你非常确切地知道了它在上面的那几步都具体做了些什么,特别是2和3,那么,理论上你可以把这个软件的安装文件拷贝到另一台机子,把必要的DLL从系统目录拷贝到那一台机子的系统目录,再把注册表里软件写入的项目导出来(必要时还要修改一下)再导入到那台机子的注册表中,那么,就算不是绿色软件,你也能这样把它移植给另一台机。
但有时特别是一些共享软件,一般都会有注册表中设置比较隐蔽的项目,不容易查找,所以除非你对系统非常熟悉,否则不是绿色软件的软件要移植还是有一定的难度的。
那么,下面我们再来看看,为什么一些软件安装后要重启。
在WINDOWS操作系统上,一般一个正在运行中的程序,操作系统是不让你修改它的,修改包括替换,改动和删除。
那么有时,一些软件需要向系统目录中写入一个DLL,而系统目录中原来已经有同名的DLL并且这个DLL目前正在被系统使用,因此不能用新版本去替换它,这个时候就需要重启,在重启的过程中,在这个DLL旧的版本被使用之前用新版本替换它。
这就是为什么要重启的原因。
你能看到这里,说明你很有耐心,并且对技术的探讨很有兴趣,那么我就再说得更详细些。
在WIN98中,上面说的这个替换是由系统的一个工具来实现的,这个工具叫WININIT.EXE。
安装程序在检测到需要写入的DLL或其他程序文件正在使用时,会把要写入的DLL...
什么叫可移植性?什么叫开源?可移植性和跨平台性有什么区别?
软件可移植性指与软件从某一环境转移到另一环境下的难易程度。
为获得较高的可移植性,在设计过程中常采用通用的程序设计语言和运行支撑环境。
尽量不用与系统的底层相关性强的语言。
开源(Open Source,开放源码)被非赢利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。
可移植性比跨平台性更强,可移植性的环境包括软件环境,硬件环境和系统的组织环境,而跨平台性更多的是指不同的操作系统。
轻叹似水流年42852634