请问编程中的 上层 和 底层 是什么意思? 比如有人说 "游戏用JAVA或c#做上层,用汇编或c/

请问编程中的上层和底层是什么意思?比如有人说"游戏用JAVA或c#做上层,用汇编或c/c++写底层"我想知道这个上层和底层是什么意思?最好用通俗易懂的例子解释,另外这好像... 请问编程中的 上层 和 底层 是什么意思? 比如有人说 "游戏用JAVA或c#做上层,用汇编或c/c++写底层" 我想知道这个上层和底层是什么意思? 最好用通俗易懂的例子解释,另外 这好像是四种不同的语言吧? 不同的语言能互用? 展开
 我来答
然后去远足
推荐于2017-09-13 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2359万
展开全部

上层(或者是表层)、中间层和底层没有严格意义上的定义,在不同的项目中需要结合具体需求来具体分析。

 

一般来说,表层就是指展现给用户看的部分;而底层就是系统的最核心的部分。一般我们认为,越接接硬件的编程就越底层。

 

比如,一个在线通讯软件(QQ这种),表层就是窗口啊、菜单啊、按钮啊这些玩意儿;中间层是业务逻辑部分,就是你点击这些按钮会产生相应的什么事件,进行了什么操作;底层就是Socket网络通信了。当然,我这里这三层是大致划分的,实际开发中比这个要更具体详细。

 

再比如,拿题主说的游戏举例子,表层就是各种游戏的界面了;底层就是游戏引擎了。底层干嘛?接收你的鼠标键盘响应信号、操作显卡在显示器指定位置生成各种二维的三维的图像、控制声卡输出音频等等等等。

 

至于编程语言问题,这就牵扯到低级语言和高级语言的问题了。一般来讲低级语言和高级语言区别在于:

  • 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好。

  • 低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差。

 

越低级的语言,形式上越接近机器指令(汇编语言就是与机器指令一一对应的)。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,使编写程序的过程更符合人类的思维习惯,并且极大了简化了人力劳动。也就是说你用高级语言写一句,会被转换成许多底层操作,大部分的工作交给了负责转换的机器(即编译器),从而人力得到了解放。因为机器就是用来为人类提供便利的,所以说高级语言的出现是计算机发展的必然结果。(参考:http://blog.csdn.net/guoxiaoqian8028/article/details/9103151)这就产生了执行效率的问题。

 

所以说用 C/C++ 这类语言更适合写游戏引擎。游戏嘛,必定是要求响应速度极高的,总不能按完键盘了等100毫秒才响应,生成个三维地图电脑卡半天。但一般不会游戏的所有部分都用 C/C++ 来完成,为什么?上面说了,可维护性差、可移植性差。这时候就需要用面向对象这种“高级语言”出马了。

 

至于题主提到的“不同语言之间的互通”,建议题主理解一下“接口”(不是面向对象里的“接口类型”)的概念。

 

泛泛而谈,希望对题主有所帮助。

更多追问追答
追问
那用java或C#来写游戏界面 C/C++写引擎 可以吗? 这样方便吗? 还是就用一种语言写?
追答
…… 合着我这后面几大段你是一点儿没看见去啊!摔!
尸偲
2020-02-29
知道答主
回答量:4
采纳率:0%
帮助的人:2653
展开全部
楼上那个人回答的非常详细,也很对,我补充你的问题。
Java或C# 做上层,汇编 / C / C++做底层是对的。没错。但实际上没有用汇编 和 C 写引擎的,太磨叽。一般用C++ 比较多。

越底层,计算机运行效率越高,但是人开发起来越麻烦。 越上层,计算机运行效率越低,但是人开发起来越简单

底层和上层程度,从左到右越来越底层:
C# > Java > C++ > C > 汇编
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式