所以Python有一种命令行的东西,Linux bash(显然)也是如此,我确信其他编程语言也可以,但C ++呢?如果没有,为什么必须首先编译C ++脚本然后运行?
答案 0 :(得分:5)
如果没有,为什么必须首先编译C ++脚本然后运行?
不需要编译C ++代码来运行。有口译员。
我们大多数人更喜欢编译C ++的原因是生成的可执行文件“更快”。
解释的计算机语言可以做额外的事情来实现类似的性能(即即时编译),但一般来说,'脚本'不是快速的同一联盟。
一些开发人员认为不必编辑,编译,链接是一件好事......只需键入代码并查看其功能即可。
无论如何,答案是,没有必要编译C ++“必须”。它只是大多数C ++开发人员的首选工具。
如果您想尝试C ++解释器,请在网上搜索CINT,Ch等。
答案 1 :(得分:3)
确实有C ++的解释器可以做你想要的。查看 Cling
对于评论者来说,C ++不能使用解释器,因为它是一种编译语言:是的,通常你会使用带有C ++的编译器。但这并不意味着为它编写翻译是不可能的。
答案 2 :(得分:0)
没有命令行来运行C ++指令。首先编译它,然后生成目标机器代码(中间obj代码,并链接)以运行。
原因是,语言设计的问题包括性能,错误恢复等各种因素。编译代码直接生成目标机器代码,运行速度比解释语言快。编译代码将程序作为整体生成并生成目标机器代码与解释代码一次几个指令。解释语言需要中间程序来定位最终的机器代码,所以它可能很慢。
简而言之,它是语言设计的演变。当第一台计算机出现时,编程直接用机器语言完成。这些程序按指令运行。后来出现了高级语言,其中机器语言是用人类友好的指令和编译器抽象出来的,旨在生成等效的机器代码。
后来计算机程序设计先进,CPU指令周期速度提高,我们可以负担得起中级口译员编写更安全的程序。
现在选择范围更广,早期以性能为中心的应用程序需要编译代码。现在甚至在常见用例中同样更快地解释代码。
答案 3 :(得分:0)
虽然有C ++ -like 语言的解释器,但这并非真正重要; C ++是一种编译的语言,它被转换为本机机器代码。相反,脚本语言(通常)解释(尽管还有脚本语言的编译器将它们转换为本机代码)。
C ++是一种系统级语言。您必须问自己 - 如果所有语言都在一个带有命令行的shell中运行并被解释,那个shell或解释器是什么语言,甚至是他们运行的操作系统?
最终,您需要一种系统级语言,通常是C,C ++和汇编程序。
此外,因为它在编译时被转换为机器级代码,所以该代码在没有任何解释器的情况下直接和独立运行,因此可以更简单地部署,并且执行速度更快。