
不对,实际上C语言编的程序可移植性差些,因为它是以汇编语言为基础编写的,而汇编语言以cpu的指令为基础,可以说不同类型的cpu其指令是不同的,所以在一台机器上编写的c语言程序,换在另一个 *** 作系统中运行起来就完全不一样了。比如在windows环境下编写的exe程序是不能直接在linux环境下运行的。
可移植性最好的计算机语言是高级语言。
高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的java,c,c++,pascal,python,lisp,prolog,FoxPro,易语言,中文版的C语言等等,这些语言的语法、命令格式都不相同。
高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。
所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。
高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。
按照可读性和可移植性从低到高排列。
1、机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。
2、汇编语言保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬件设备。因为是机器指令的符号化表示,故不同的机器就有不同的汇编语言。由此可见可读性增加但移植性依然不好。
3、高级语言它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高。
扩展资料:
程序设计语言的类型:
1、命令式语言。这种语言的语义基础是模拟“数据存储/数据 *** 作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。其中产生 *** 作的主要途径是依赖语句或命令产生的副作用。现代流行的大多数语言都是这一类型,比如 Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C# 等,各种脚本语言也被看作是此种类型。
2、函数式语言。这种语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如 Lisp、Haskell、ML、Scheme 、F#等。
3、逻辑式语言。这种语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最著名的逻辑式语言是 Prolog。
4、面向对象语言。现代语言中的大多数都提供面向对象的支持,但有些语言是直接建立在面向对象基本模型上的,语言的语法形式的语义就是基本对象 *** 作。主要的纯面向对象语言是 Smalltalk。
参考资料:
百度百科—机器语言百度百科—汇编语言百度百科—高级语言
是否需要修改代码。
是否需要修改配置。
是否需要重新编译。
是否能够运行。
运行的结果是否正确。
“超过xx%代码由C语言编写,只有xx个函数是汇编,移植时只有xx个函数需要修改”。他们所关注的不外乎是 *** 作系统本身从一个硬件平台移植到另一个硬件平台的难易度,这根本就是舍本逐末的提法。试问,一个含嵌入式系统的产品中, *** 作系统重要还是应用程序重要?我们说嵌入式 *** 作系统是嵌入式产业的核心,是针对整个产业来说的,毕竟, *** 作系统的装机量远大于任何一个运行于 *** 作系统的应用程序。而对具体产品来说,则应用程序无论从哪个方面讲都远比 *** 作系统重要。对一个企业来说,尤其如此,企业可能有非常多的衍生产品,他们同同一份 *** 作系统拷贝,或者有许多产品系列,系列之间的 *** 作系统也只是稍有不同。他们花在移植 *** 作系统上的时间,远小于应用程序的工作量,甚至可以忽略不计。因此, *** 作系统的可移植性,应该把重点放在协助应用程序移植上,那才是可移植性的精髓所在。
djyos在这方面是非常出色的,举个例子,如果某企业有两个相似产品,产品L不需要显示界面,产品H需要显示界面,其他功能相同,在的djyos下,你可以轻易做到:
1、把软件分成两大块,一块是显示部分代码,称为模块A,另一块是显示无关代码,显示无关代码完成产品的整体功能,调用显示部分的功能实现界面显示,称为模块B。
2、如果是si模式,AB一起编译就是产品H,单独编译B就是产品L。编译产品L时连模块B中跟调用显示功能的代码都无需修改。
3、如果在dlsp模式下,则把模块A编译成Aout,模块B编译成Bout,把Aout和Bout一起copy到autorun目录下就成了产品H,单独copyBout就成立产品L。
djyos的各模块设置,无不是围绕方便应用程序移植来设计,多事件调度器、泛设备组件、异步信号同步功能、事件和事件类型同步、应用程序模块加载器等,都为此做了许多考虑。今天很累了,暂不细说,在接下来的一段时间里,我将系列化发帖,讲述djyos中如何协助应用程序可移植,以及软件可移植性与可靠性之间的关系。
以上就是关于高级语言编写的程序的可移植性最差,对吗全部的内容,包括:高级语言编写的程序的可移植性最差,对吗、可移植性最好的计算机语言是、“汇编语言程序,机器语言程序,高级语言编写的程序”三者的“可移植性”和“可读性”的比较,求指点!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)