计算机语言问题
我准备学计算机专业,请教一下:汇编语言、关basic语言、c语言、c++有什么联系?没关系的话是什么样子?举例说明。我的财富值不多了,多谢。...
我准备学计算机专业,请教一下:汇编语言、关basic语言、c语言、c++有什么联系?没关系的话是什么样子?举例说明。我的财富值不多了,多谢。
展开
3个回答
展开全部
准备学计算机专业?那具体的等你学了就知道了。请允许我多问你一句:你想学理科计算机专业还是工科?软件还是硬件?
各种编程语言都有他们的特点,特点决定了它们的适用范围,所以你应该从每种语言的特点入手了解编程。
汇编语言是很底层的语言,直接用 CPU 的指令完成操作,这些指令一般都带有一到两个操作数,并且用有限的寄存器完成这些操作。汇编可以直接操作硬件,写程序的人可以很清楚地知道程序做的每一个细小的动作。但是写起来有些麻烦,代码可读性也不强,优化起来很麻烦,维护起来更麻烦,因此仅在需要严格控制代码大小和程序时间的时候才会用到,再者是做编译器,驱动之类的底层开发的时候会用到。这是人类能接受的最接近机器语言的编程语言了。用其他高级语言写出来的程序都会通过编译或者解释逐步降低到机器语言,过程一般都会经过汇编这一步。
BASIC 是解释型语言,不用编译,解释器会一边运行程序一边逐段把 BASIC 程序翻译成机器语言。BASIC 采用符号指令代码,它比汇编语言高级,编写起来很方便。解释执行的过程非常动态和实时,但是无法全面分析上下文,也无法记忆解释过的代码,从而导致解释器对程序的优化十分有限,并且一边运行一边解释也大大降低了性能,因而存在明显的缺陷。在那个古老的年代,人们在计算机前排队等候的时间要远远多于机器计算的时间,因此这种性能上的缺陷被它的方便性掩盖了。但是放到近些年则性能问题越来越明显,加上设计能力和水平的提高,现在很多语言都采用折中的设计:编译+解释,这样既照顾到了语言的动态性和表现能力,又照顾到了程序的优化和性能,以 Java 为代表。
C 语言,是一门很古老的编译型的语言。你的源文件会被编译器优化并编译成汇编和机器码文件,再通过链接,程序就能运行了。它毫不逊色于 BASIC 的易用性以及性能问题的出色解决导致它活到了今天。这个没什么好特别介绍的,你学了编译原理以后就会知道编译是怎么回事。总之 C 语言是很实用也比较有效率的一门语言,在底层开发用得很多,当初在设计的时候就强调了它的功能,目的就在于取代汇编成为一门强大而高效的底层开发语言。C 语言在语法上相对比较宽松,不像 Java 那么严丝密缝。此外因为它是面向过程的语言,现在看来不太适合做大型复杂的项目,大型复杂的项目一般都用面向对象的语言开发。
C++ 也是编译型语言,是在 C 的基础上作的一次重大变革,它的特点是:90% 以上兼容 C 语言,但是它的功能强大很多,面向对象的支持是它的一大特点。因为支持面向对象,所以产生了很多新的概念,模板,类,泛型,多态,继承,重载,等等,大大降低了开发大型复杂项目的难度和工作量。但是也就因为尽可能兼容 C 的设计增加了它语言的复杂性。它有很完整的对面向对象的支持,但是也能写成完全的面向过程,因此有些讲究灵活性的人会比较喜欢。但是那些学纯面向对象语言例如 Java 出山的人可能会觉得混乱,其实不是语言混乱,是读别人的程序的时候会觉得乱,一会儿面向对象,一会儿面向过程。这种语言用得好会很强大,但是极大多数的人用不好,越是用不好就越是乱。C++ 刚出来的时候因其强大而先进的功能,被很多大学青睐,作为必学的语言出现。但是因为语言设计的特点,大大增加了教学难度,所以有些学校现在已经取消了 C++ 的课程,而回归 C 语言或者采用 Java。
你没有问 Java,但是我还是提一下吧,因为你很可能会接触到(如果你不走底层路线的话)。我之前也略微提到了一些 Java 的特点:纯面向对象,半编译半解释,相当严密的语法,跨平台(虚拟机运行环境,一次编写,到处编译,并且运行结果的平台差异性非常小)。另外还要提一点是语法上类 C,但是千万不要认为它和 C 语言有什么联系,不像 C++ 几乎完全兼容 C,Java 由于机制的不同,是完全不兼容 C,仅有 JNI(现在多了一个 JNA)来和 C 程序连接。最后说一点很多人关心的性能问题。这是争论已久的话题,关于 Java 的性能和 C/C++ 比。我在这里不想再提起这种无意义的争论,因此我不下结论到底哪种语言性能更好。我只提醒你 Java 是半编译半解释的语言,因为它经过编译,因此没有了 BASIC 的代码优化和记忆问题,唯一和纯编译语言产生性能差异的地方是把半成品在虚拟机中解释的过程。此外由于 Java 语法的严密性,完全有理由相信在一些情况下,它的优化程度能比 C/C++ 能做得更好(我不能说所有的地方,有些地方好有些地方差会造成互补,不存在唯一的定论)。
汇编开启了计算机可编程的时代,BASIC 开创了解释语言,C 语言是底层开发面向过程语言的先驱(它不是最早的面向过程语言,但它是底层开发中最早的面向过程的语言),C++ 是面向对象语言的先驱,Java 是跨平台的先驱(半编译半解释,虚拟机运行环境)。这几种语言的出现是计算机发展史上的里程碑,见证了一个又一个时代的变迁。更多内容你自己去网上找找吧,留意一下每种语言出现的时间,串起来几本上就是计算机发展史。
各种语言的优缺点我都给你谈了。这应该非常详细,非常具有总结性。希望能被采纳。
各种编程语言都有他们的特点,特点决定了它们的适用范围,所以你应该从每种语言的特点入手了解编程。
汇编语言是很底层的语言,直接用 CPU 的指令完成操作,这些指令一般都带有一到两个操作数,并且用有限的寄存器完成这些操作。汇编可以直接操作硬件,写程序的人可以很清楚地知道程序做的每一个细小的动作。但是写起来有些麻烦,代码可读性也不强,优化起来很麻烦,维护起来更麻烦,因此仅在需要严格控制代码大小和程序时间的时候才会用到,再者是做编译器,驱动之类的底层开发的时候会用到。这是人类能接受的最接近机器语言的编程语言了。用其他高级语言写出来的程序都会通过编译或者解释逐步降低到机器语言,过程一般都会经过汇编这一步。
BASIC 是解释型语言,不用编译,解释器会一边运行程序一边逐段把 BASIC 程序翻译成机器语言。BASIC 采用符号指令代码,它比汇编语言高级,编写起来很方便。解释执行的过程非常动态和实时,但是无法全面分析上下文,也无法记忆解释过的代码,从而导致解释器对程序的优化十分有限,并且一边运行一边解释也大大降低了性能,因而存在明显的缺陷。在那个古老的年代,人们在计算机前排队等候的时间要远远多于机器计算的时间,因此这种性能上的缺陷被它的方便性掩盖了。但是放到近些年则性能问题越来越明显,加上设计能力和水平的提高,现在很多语言都采用折中的设计:编译+解释,这样既照顾到了语言的动态性和表现能力,又照顾到了程序的优化和性能,以 Java 为代表。
C 语言,是一门很古老的编译型的语言。你的源文件会被编译器优化并编译成汇编和机器码文件,再通过链接,程序就能运行了。它毫不逊色于 BASIC 的易用性以及性能问题的出色解决导致它活到了今天。这个没什么好特别介绍的,你学了编译原理以后就会知道编译是怎么回事。总之 C 语言是很实用也比较有效率的一门语言,在底层开发用得很多,当初在设计的时候就强调了它的功能,目的就在于取代汇编成为一门强大而高效的底层开发语言。C 语言在语法上相对比较宽松,不像 Java 那么严丝密缝。此外因为它是面向过程的语言,现在看来不太适合做大型复杂的项目,大型复杂的项目一般都用面向对象的语言开发。
C++ 也是编译型语言,是在 C 的基础上作的一次重大变革,它的特点是:90% 以上兼容 C 语言,但是它的功能强大很多,面向对象的支持是它的一大特点。因为支持面向对象,所以产生了很多新的概念,模板,类,泛型,多态,继承,重载,等等,大大降低了开发大型复杂项目的难度和工作量。但是也就因为尽可能兼容 C 的设计增加了它语言的复杂性。它有很完整的对面向对象的支持,但是也能写成完全的面向过程,因此有些讲究灵活性的人会比较喜欢。但是那些学纯面向对象语言例如 Java 出山的人可能会觉得混乱,其实不是语言混乱,是读别人的程序的时候会觉得乱,一会儿面向对象,一会儿面向过程。这种语言用得好会很强大,但是极大多数的人用不好,越是用不好就越是乱。C++ 刚出来的时候因其强大而先进的功能,被很多大学青睐,作为必学的语言出现。但是因为语言设计的特点,大大增加了教学难度,所以有些学校现在已经取消了 C++ 的课程,而回归 C 语言或者采用 Java。
你没有问 Java,但是我还是提一下吧,因为你很可能会接触到(如果你不走底层路线的话)。我之前也略微提到了一些 Java 的特点:纯面向对象,半编译半解释,相当严密的语法,跨平台(虚拟机运行环境,一次编写,到处编译,并且运行结果的平台差异性非常小)。另外还要提一点是语法上类 C,但是千万不要认为它和 C 语言有什么联系,不像 C++ 几乎完全兼容 C,Java 由于机制的不同,是完全不兼容 C,仅有 JNI(现在多了一个 JNA)来和 C 程序连接。最后说一点很多人关心的性能问题。这是争论已久的话题,关于 Java 的性能和 C/C++ 比。我在这里不想再提起这种无意义的争论,因此我不下结论到底哪种语言性能更好。我只提醒你 Java 是半编译半解释的语言,因为它经过编译,因此没有了 BASIC 的代码优化和记忆问题,唯一和纯编译语言产生性能差异的地方是把半成品在虚拟机中解释的过程。此外由于 Java 语法的严密性,完全有理由相信在一些情况下,它的优化程度能比 C/C++ 能做得更好(我不能说所有的地方,有些地方好有些地方差会造成互补,不存在唯一的定论)。
汇编开启了计算机可编程的时代,BASIC 开创了解释语言,C 语言是底层开发面向过程语言的先驱(它不是最早的面向过程语言,但它是底层开发中最早的面向过程的语言),C++ 是面向对象语言的先驱,Java 是跨平台的先驱(半编译半解释,虚拟机运行环境)。这几种语言的出现是计算机发展史上的里程碑,见证了一个又一个时代的变迁。更多内容你自己去网上找找吧,留意一下每种语言出现的时间,串起来几本上就是计算机发展史。
各种语言的优缺点我都给你谈了。这应该非常详细,非常具有总结性。希望能被采纳。
参考资料: 原创
展开全部
各种语言有些地方相同,有些地方不同,各种语言有各种的不一性,像中文和日语,貌似看起来咱们能懂一些,实际上自己去写就会出现不懂语法和文字的问题。编程语言也一样,汇编语言属于较为底层的语言,要想用汇编编写语言,基本上都要有一定程序基础,如果是那种C++,VB等的语言的话,只要你会英语语法,数学学的不错,买本书入门很容易,但是,如果说精,每个语言都有深度,只不过相关的语法什么的不一样,如果学计算机软件,这些编程语言到要掌握,至少能看懂他的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-12-01
展开全部
c语言是面向过程的编程语言,汇编语言是面向机器的编程语言,c++是面向对象的编程语言。你要学计算机专业这些语言肯定是要学习的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询