您的位置:首页 > 编程语言 > C语言/C++

Python与C++区别

2017-04-15 00:12 543 查看
程序有两种执行方式,解释执行和编译执行。

PYTHON是一种脚本语言,是解释执行的,不需要经过编译,所以很方便快捷,且能够很好地跨平台,写一些小工具小程序特别合适。

而C++则是一种需要编译后运行语言,在特定的机器上编译后在特定的机上运行,运行效率高,安全稳定。但编译后的程序一般是不跨平台的。

学习一种编程语言不能看它热不热。而是要看它在某个领域的作用。就像汇编,虽然现在不热了,但是它在某些行业内还是很吃香的。PYTHON确实很强大,但在三五年内,不会作为一种主流的编程语言。至少在Windows程序开发领域内不会。

建议将C++作为主要的学习方向,将PYTHON作为一种辅助工具。当然,都能学通则更好了。

python在游戏开发中充当脚本的角色,比如说一款网页游戏需要一个新的功能,这样就可以使用python 进行二次开发,很简单。C++在游戏开发中充当内核的作用,因为它的执行速度是最快的。至于学什么要看自己的兴趣,因为编程的思想都是一样的,解决问题的能力是时间和工作的经历的累积。脚本语言就是python和ruby但是ruby是日本的。

解释语言和编译语言

A、解释程序

所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。

B、编译程序

这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。

编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。

值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。

在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时

简短概述

解释执行:

由解释器根据输入的数据当场执行而不生成任何的目标程序

编译执行:

先将源代码编译成目标语言(如:机器语言)之后通过连接程序连接到生成的目标程序进行执行

java既可以是解释执行也可以是编译执行

编译执行:将源代码编译成与OS相应的本地可执行代码,

解释执行:编译成中间代码,然后由解释器一句一句解释执行。

所谓的中间代码就是字节码,就是JVM可执行的代码;JVM执行它的过程无非是将字节码翻译成OS可执行的代码。

Java的可跨平台就统一在字节码上。

而C的可移植是统一在源代码上的。

当然也可以一次性把字节码全部翻译成本地可执行代码,以后每次执行的时候都执行这个本地可执行代码。。

那还不如开始就用C写程序呢

只要记住一点就行了:所有程序最终的运行需要硬件来完成,而硬件都是OS来管理驱使的。也是就说最后的重任还是要落实到操作系统。你提交给操作系统的东西一定是它能够接受的(windows要求为PE格式的可执行文件,linux要求为ELF格式的可执行文件)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: