精华内容
下载资源
问答
  • 计算机思维
    2021-06-16 05:55:31

    导读:本文关于计算机思维论文范文,可以做为相关论文参考文献,与写作提纲思路参考。

    (吉林电子信息职业技术学院)

    摘 要:本文首先阐述了计算思维的含义及基本特征,然后分析了计算机方法与计算机方法之间的关系,最后着重针对计算思维与计算机方法的内容和发展进行了认真得探讨分析,以供参考.

    关键词:计算思维;计算机方法;探讨分析

    引言:计算思维和计算机方法具有各自的特色和研究内容,虽然两者属于不同的概念和学科领域,但具有很强的互补性,如果掌握充分,可以起到相互促进的作用.而两者最大的区别在于研究重点的不同,与计算思维相比,计算机方法更注重构建计算学科认识理论体系.因此,在实践研究过程中,不仅需要充分认识两者之间存在的区别和差异,更应该分析它们之间的互补性和关系,为研究和实际工作提供更加严谨的方法.

    一、计算思维的含义及基本特征

    计算思维是指通过仿真、转化、嵌入以及简约等多元化的方法,将一个原本非常复杂的问题阐释成为人们知道如何解决这一问题的思维方法,是一种利用分解和抽象的方式对庞大复杂的任务进行控制的方法,吸取了问题解决所采用的一般数学思维方法,建立在计算过程的能力和限制之上,其本质自动化和抽象,主要具有以下两种基本特征.其一,计算思维不是程序化,而是概念化.计算机科学与计算机编程存在明显的差异.以计算机科学家的思维方式去思考,便意味着计算机科学远远不止能够为计算机编程,还必须能够多个抽象的层次上思维[1].其二,计算思维不是计算机的思维,而是人类的思维.

    二、计算机思维与计算机方法的关系

    (一)计算思维与计算机方法相同之处.计算思维与计算机方法在研究方面与现代数学思维和数学方法存在许多相同之处.我国在计算思维与计算机方法的研究方面,一直将重点放在学科方法上,而在国外,往往更注重的是学科的思维方式.目前,计算机方法的研究已经完成了理论知识体系的构建,其研究内容与国外计算思维方面的研究具有良好的互补性,建立在世界著名计算机组织IEEE-CS和ACM大量研究工作的基础上,容易吸收国外的先进教育理念.

    (二)计算思维与计算机方法区别和差异.计算思维与计算机方法最大的区别在于研究重点的不同,与计算思维相比,计算机方法更注重构建计算学科认识理论体系.并在观角上也存在一定差异.计算思维是从科学层面出发,对学科的思维方式和根本问题进行直接的探讨,而计算机方法则是从方法论层面出发,对学科的形态和根本问题进行讨论.

    三、计算思维与计算机方法的内容和发展

    (一)计算思维的内容.计算思维最早由美国著名教授周以真提出,他认为计算思维的本质是自动化和抽象.计算思维中的抽象远远超出了物理概念上的时空观,完全可以用符号来表示.与普通的数学科学和物理科学相比,计算思维的抽象意义更加复杂,也显得更为丰富[2].计算思维中的抽象不仅具备了自身独特的特点,同时,包含了数学抽象抛开现实事物的生物学特性、化学特性和物理特性,仅仅保留了其空间形式和量的关系的特征.在人们的实际生活当中,计算思维其实无处不在,比如,一名学生早晨去上学时,他将当天需要的物品放进书包,就相当于计算思维的缓存和预置.

    计算思维:北海市场平面设计招聘_计算机平面设计的工资_平面设计思维教程

    (二)计算机方法的内容.计算机方法包括了计算机科学与计算机技术,是在计算领域认识和实践过程中的一般方法,是对计算机科学和计算机技术的变化发展、内在联系、特点以及性质进行系统研究的学问.计算机学科和计算机技术方法不仅是对计算学科进行认知的工具和方法.在国内外计算机教育领域,计算机方法的研究工作是关注的重点内容.美籍华人Carl

    Chang教授以CC2001任务组负责人的身份来到我国上海参加由全国高校计算机教育研究会和中国计算机协会教育专业委员会联合主办的“CC2001教程研讨会”和“新世纪计算机教育”之后,当他看到“计算机科学和计算机方法”时,立即在大会大上对这项工作予以了充分肯定,并且,之后通过以CC2001原来报告(草案)作为研究基础,对计算机方法的内容进行适当的增加,首次明确提出学生应该充分了解计算机方法的内容.

    (三)计算思维与计算机方法的发展.计算思维具有非常独特的性能,计算机科学不仅仅是计算机编程.如果人们用计算机科学家的思维,人们不仅能够为计算机编程,同时还能够在多个层次上进行抽象思维.计算思维不是刻板的技能,而是根本技能.人类的在解决各种问题的过程中,计算思维无疑是一条有效途径,但并不意味着人类需要像计算机那样的思考.人类是充满智慧的,是人类赋予了计算机论文范文,当计算机配置了计算设备,就可以去解决那些计算时代之前所不敢尝试的问题.计算机附给人类强大的计算能力,这种能力可以解决各种需要进行大量计算的复杂问题,因此,人类应该善于利用这种力量,推动它不断向发展.

    结语:综上所述,虽然计算思维和计算机方法各有原理和特色,但在一定程度上两者之间可以相互促进,具有很强的互通互补性.通过计算机方法的学习可以使计算思维能力得到有效地培养,而计算思维研究方面所取得的成果可以通过计算机方法进行再吸收和研究,使计算机方法的内容变得更加丰富.因此,在实践研究过程中,应该充分认识两者之间的关系,推动两者同步发展.

    参考文献:

    [1] 刘建丽.充分利用现有的教师资源搞好计算机基础教学改革[J].计算机教育,2010,86(03):93-95.

    [2] 李海燕.高校非计算机专业计算机基础教学改革的探讨[J].现代企业教育,2011,66(17):155-157.

    计算机思维范文

    计算思维参考文献总结:

    适合计算机思维论文写作的大学硕士及相关本科毕业论文,相关计算机思维开题报告范文和学术职称论文参考文献下载。

    更多相关内容
  • 计算机思维

    2018-05-26 20:57:49
    计算机思维的培养,研究大学计算机通识教育, 链接:计算思维是建立在计算过程的能力和限制之上的,不管这些过程是由人还是由机器执行的。
  • 大学计算机思维导论第一讲习题答案.pdf
  • 战德臣老师主讲的计算机思维导论mooc的答案解析,初版的积分论坛调太高了!重新上传一份。可以用于平时的练习和参考
  • Google面向教师的计算机思维课程,算是编程的启蒙课程,另外还有一个简短的视频,需要的话可以私信
  • 计算思维导论第5 章 课后练习 第5 章 数据库技术基础 一单项选择题 1. 是长期存储在计算机内的相互关联的数据的集合 A数据库管理系统 B数据库系统 C数据库 D文件 答案:C 2. 在数据库基本概念中DB 是指 DBMS 是指 DBS...
  • 1、各种自动化设备,如数控机床、自助加油站中有计算机吗? (A) YES; (B) NO 答案:A 解释: 本题考核什么是计算机以及计算机的存在形态。 各种自动化设备,都有控制设备工作的控制机构,这些控制机构被认为是自动...
  • 二、从计算机硬件的角度证明计算机不能象人的大脑那样工作既然我们不能让没有主体的计算机使用具有思想的语言,那么,我们是否可以在不久的将来制造出某种具有主体的计算机,使其能够使用某种具有思想的语言,象我们...

    二、从计算机硬件的角度证明计算机不能象人的大脑那样工作

    既然我们不能让没有主体的计算机使用具有思想的语言,那么,我们是否可以在不久的将来制造出某种具有主体的计算机,使其能够使用某种具有思想的语言,象我们的大脑那样工作呢?从逻辑上来说,这似乎也是不可能的。因为,“主体性”的产生是一种极其复杂的自组织过程。要制造出一种具有高度自组织过程的计算机,似乎也是不可能的。

    1、人类难以制造出象大脑神经细胞那样复杂的计算机“元件”

    如果我们要制造出一台具有高度“自组织“过程的计算机,首先就必须使这种计算机的“元件”具有某种“独立性”。目前人类的制造技术虽然达到了极其高级的水平,但是,要制造出象大脑神经细胞那样的“元件”还是非常困难的公务员之家。尽管目前的神经网络计算机或生物技术似乎有了一些“起色”,但与人类神经细胞相比,差距还是十分大的。人类大脑的神经细胞是生命进化几十万年甚至几百万年的产物。到目前为止,人类还只是了解到其运行机制的极其有限的内容。

    2、人类没有能力将类似于大脑神经细胞的“元件”装配在一起

    即使人类能够制造出象大脑神经细胞那样复杂的元件,人类有没有技术将其“装配”得象大脑神经网络那样工作。目前的计算机能够这样快速地工作,其根本原因是因为计算机的集成电路中的各种各样的“开关”的连结没有人的大脑神经细胞之间通过神经末梢连结那样复杂。如果计算机技术发展的程度达到了能够把现在的一个个的“开关”变成象人的大脑中的一个个的“神经细胞”一样的机制,人类也可无法将这些神经细胞连结在一起有效地工作。因为,这些“神经细胞”有了某种“独立性”,其“行为”也就具有了相当程度的“任意性”,计算机科学家也就再也无法让它们象现在的集成电路中的“开关”那样按“规律”活动了。人类神经细胞连结成神经网络,是人类生命进化几十万年甚至几百万年的结果。在这个进化过程之中,神经细胞通过其神经末梢的电子跃迁、离子藕合的过程经过了长期的环境适应和内部调适。这个过程是极其复杂的,并且仍然还在进化。就目前人类的知识和技术,以及人类智力的有限性,要想人工制造出象人类大脑神经网络这样的“造化之物”是极其困难的。

    3、计算机科学家没有办法将上述“装配”方法说出来

    即使个别的计算机科学家碰巧想出了某种能够将这些复杂的元件连结在一起的方法,这个计算机科学家也难以将这种方法“说”出来。现代科学技术能够产生巨大的作用,关键的愿意是因为科学家具有“科学”这种共同语言。科学家能够通过学习和使用这种共同的语言进行合作。某个计算机科学家或许能够通过自己的反复操作、或偶然的机遇将某些类似于大脑神经细胞的“元件”连结在一起,使其正常“工作”。但是,如果这个科学不能使用共同语言将这种方法表述出来,其他的科学家也就难以学习这种方法。这就如同中国古代的“小人”们创造出无数世界领先的技术,但由于中国古代的文字语言只供“君子”论“道”而不论“器”,中国古代也就没有一种有效的语言将这些技术转化为人类可能普遍享用的科学。

    4、计算机科学家没有能够进行共同操作的形式化语言

    即使个别的计算机科学家“发明”了能够说出这种方法的“私人语言”,计算机科学家也难以用其作为交流的工具。科学技术的发展依赖于共同的语言,但是,这种语言还必须高度形式化的语言。如果某个科学家能够用自己的“私人语言”表述这个过程,其他的科学家或许能在一定的程度上理解某个科学家

    所说的,但是,这种语言并没有高度的形式化,科学家难以用这种语言进行某些可重复性的操作,科学家也同样难以使用这种方法。现代计算机的研究和制造是在无数的计算机专家分工合作的基础上进行的。这种分工合作的基础,从硬件的角度来说,就是计算机专家能够合作标准的计算机机器语言---实际上就是数字电子线路语言。从软件的角度来说,就是可以共同使用的高级程序语言。如果没有这两种高度形式化的语言,计算机的研究和制造、计算机的推广和使用都是不可能的。

    通过上面的说明,我们可以知道:第一,人类难以制造出象大脑神经细胞那样复杂的计算机“元件”;第二,即使制造出这样复杂的元件,人类难以将其有效地“装配”在一起,让它们正常的“工作”;第三,即使某些科学家能够在经验上想出某些办法让将这些元件装配在一起“正常”的工作,但这些科学家无法将这种方法“说”出来,第四,即使这些科学家用“私人语言”将这种方法“说”了出来,但由于这种语言不可能形式化,其他的科学家也难以理解。由于这四个方面的原因,要从计算机硬件的方面来制造出“象人的大脑那样思维”的计算机似乎也是不可能的。

    三、计算机不能象人的大脑那样工作

    通过上面从计算机语言和计算机硬件两个角度的论证,我们知道,要使计算机能够象人类大脑那样思维,必须具备如下条件。

    第一,必须制造出具有“主体”的计算机。

    第二,必须创造出具有“思想”的语言。

    第三,必须使这种具有“主体”的计算机接受这种有“思想”的语言。

    要满足第一个条件,就必须制造出具有一定“独立性”和“任意性”的计算机“元件”。人类要制造出这种具有一定“独立性”和“任意性”的“元件”的可能性是非常之小的。因为人类大脑神经细胞是生命进化的产物,其复杂程度是现在的集成电路仅仅用“开关”来控制电子流动难以比拟的,也是人类难以在实验室内控制生产的。并且,即使制造出具有某种“独立性”和“任意性”的元件,人类就不可能让它们按人类的“意志”装配在一起。因为使用语言包括人类自然语言和科学语言说明复杂系统具有如下困境:仅仅描述单个“元件”的行为,并不能说明整体的行为;描述整体的行为,就只能是极为近似的。用这种极其近似的语言描述这种新的类似于神经网络的整体状况还勉强,要用这种语言制造计算机,则几乎是不可能的。这样,人类制造出某种具有“主体”的计算机的希望是非常眇茫的。制造计算机是一个复杂的合作过程,在这个合作的过程,没有形式化的共同语言,合作就无法进行。

    前面我们已经说明,在现有的计算机技术条件下,仅仅使用软件的方法即依靠计算机语言的发展是不可能计算机象人类大脑那样思维的。这样,即使我们的计算机技术发展到了能够满足上述第一个条件的水平,我们也难以为这些计算机“创造”出一种有思想的语言。

    即使我们同时满足了制造出了一部有主体的计算机,创造出了一种有思想的语言,我们也不可能将作为硬件的计算机和作为软件的语言有效地结合在一起。如果这些机器具有了“主体性”,他们自己就会“创造”自己的语言,它们怎么还会接受人类为它安排的语言呢?

    这样,我们可以说,就人类的智力和技术水平,要使计算机能够象人类大脑那样工作虽然难以说是不可能的,但确实是极其困难的。

    四、计算机思维的神话产生的逻辑原因

    很多计算机科学家之所以相信计算机能够思维,是因为他们犯了如下的逻辑错误:一是把思维等同于语言思维,二是把计算机语言等同于人类自然语言。由于这两个等同,计算机科学家自然就会产生第三个等同:把计算机信息处理的过程等同于大脑思维过程。

    我们要对某些超越了人类认知能力的事物作出解释,一般采用的是用某种神秘的“实在”来解释它。由于我们对自然和社会运转的规律所知甚少,我们就用“上帝”、“天道”之类的东西解释自然和社会所发生的一切。由于我们对我们的“精神”所知甚少,我们用“灵魂”解释我们的“精神”。由于我们对我们的历史还所知甚少,我们就用“文明”或“文化”来解释我们的历史。虽然计算机是由人按照一定的自然规律制造出来的,但由于其内部工作过程的复杂性和层次性,普通人要了解计算机的工作原理也是非常困难的。计算机科学家可以用专业术语将计算机的工作原理和工作过程解释得清清楚楚,但是,这些解释对普通人来说,无异于“天书”。这样,科学家和专业技术人员就必须用“拟人化”的方法和语言解释计算机的工作过程。然而,面对一个由人按照一定的规律制造出来的计算机,计算机科学家不可能再用“灵魂”、“精灵”之类的话语来予以说明:计算机科学家不可能说计算机之所以工作是因为其内部有一个“小精灵”。在这种情况下,选用什么样的话语来解释计算机的工作过程呢?“思维”就是一个最恰当的术语。如果我们说计算机能够思维,任何人都会“理解”这个工作过程,尽管普通人几乎没有对“思维”做过什么研究,但任何人都时时刻刻在思维。使用“思维”这个术语解释计算机的工作过程,科学家和普通人之间就有了“共同语言”。从使用“思维”这个术语解释计算机的工作过程开始,计算机能够思维的神话也就开始产生了。或者说,当计算机科学家开始用“思维”这个术语解释计算机的工作过程,相当一部分计算机科学家也就开始相信计算机能够思维,计算机科学家也就开始制造“计算机能够思维”的神话。

    对于计算机科学家,什么是思维呢?计算机科学家一想到思维,自然就会想到语言。无论谁都知道,我们的有意识的思维是利用语言进行的。一想到语言,马上就把计算机程序语言与人类自然语言等同起来。这样,如下的结论就会自然产生:思维就是语言思维,计算机使用语言处理信息,人使用语言进行思维,计算机也就能够象人一样思维。

    很多计算机科学家之所以产生相信“计算机能够思维”,其重要原因之一是通过计算机工作过程和大脑工作过程的“形式上的”对比,发现了某种共同的东西。这种共同的东西就是所谓的“信息处理”。计算机能够“接受”信息,“储存”信息、处理信息、输出信息。而我们人则同样可以接受信息---听、看、阅读等,储存信息---记忆,处理信息---思考,输出信息---说、选择性地看、作出反应、阅读等。这也就是说,大脑工作过程与计算机工作过程有着某种形式上的可比性。本来,类比是人类把握外部世界的一种重要方式,形式化的类比更人类思维的一种最重要的方式。利用大脑工作与计算机工作的类比,得出某种形式上的一致性,并用这种一致性做为探索大脑奥秘的某种手段,这一切都无可非议。但是,仅仅因为计算机处理信息的方式和人对外部世界的感受和反应的方式具有某种形式上的可比性就把计算机信息处理的过程和大脑的思维过程看作相同的东西,首先就犯了一个逻辑上的重大错误。

    前面我们已经说明了人类自然语言与计算机语言的差别。我们说语言是思维的工具,并不是说语言就是思维。而我们之所以经常产生语言就是思维的错误结论,正是因为前面所说的语言的“三位一体”性---即我们的思维过程中的思维、方法、对象都融合在语言之中。然而,在计算机语言中,这种三位一体性得到了严格的分离。这样,计算机就不可能象人类大脑那样思维。同时,这也是计算机能够在“计算”方面比人类大脑迅速准确得多的原因。

    计算机能够思维的神话就依靠如下的逻辑得以产生:人能够思维,思维就是语言思维---任何能够使用语言的事物也就能够思维;计算机能够使用计算机语言,计算机也能够思维;计算机的工作过程就是信息处理的过程,大脑思维的过程也同样是信息处理的过程,计算机能够进行信息处理---计算机能够象人的大脑那样工作---计算机能够思维。

    我们的大脑还是一个十分神秘的东西。正是由于这种神秘,我们在进行科学研究的过程中,就必须时刻留心这种神秘性带来的不利作用。因为,稍不留神,我们就会得出荒谬的结论。把思维等同于语言、把计算机语言等同于人类自然语言、再把计算机信息处理等同于大脑思维,这就自然会得出计算机能够思维的结论。当我们把思维与语言区别开来,了解了计算机语言与人类自然语言的巨大差异,了解到计算机信息处理与大脑思维之间的巨大差异,我们就不会盲目信从“计算机能够思维”这个神话了。

    看过“计算机思维的分析”的人还看了:

    展开全文
  • #资源达人分享计划#
  • Python教学促进计算机思维的培养研究.pdf
  • 计算机思维与计算机应用关系分析.docx
  • 如何建立计算机思维

    2021-06-18 11:40:05
    最近,读大一的儿子问了我一道计算机编程的题目,通过这道题,谈谈如何建立计算机思维。由于这个话题太大,针对初学者的孩子,我仅给出部分个人观点和认识,希望对初学者有所启发。题目大概的意思就是每天登录某一...

    1aca6de63ae6

    最近,读大一的儿子问了我一道计算机编程的题目,通过这道题,谈谈如何建立计算机思维。由于这个话题太大,针对初学者的孩子,我仅给出部分个人观点和认识,希望对初学者有所启发。

    题目大概的意思就是每天登录某一网页能够获得积分,连续登录天数越多每天获得的就越多,5天是一个循环,根据所得积分计算用户对应的等级,积分越高等级也越高,利用计算机编写程序解决此问题,具体题目如下:

    1aca6de63ae6

    为了方便表述,省略具体步骤,只列出解题思路,如下图所示:

    1aca6de63ae6

    通过这个小例子,能得到如下几方面启发:

    一是做事情要有全局观。初看这道题目,初学者可能不知道从何处下手,有时会把思路局限在某些细节中,这样不利于解决问题。解决问题要有大局观,要把问题作为一个整体来思考,上述问题主要步骤就是输入、计算经验值、计算等级、输出等几个步骤。大的步骤想清楚了,方向就不会错,剩下的就需要逐一去解决具体的每个步骤即可。

    二是做事要学会分解。碰到问题的时候,我们都听过把复杂的问题简单化。这里就用到了分解,就是把一个大问题分成几个小部分来解决。上述的问题是把具体的步骤用函数来解决,每个函数执行一个具体的小功能,这样就会把看起来有些复杂的问题变得简单。

    三是要注重积累和沉淀。上面这个小例子中,编写了两个函数,来分别解决计算经验值和等级,每次碰到类似的需求都要重新编写就会很费时费力,如果把上述函数总结成自己的一个工具库,类似的需求直接调用即可,这样就会把工作复用,效率也会成倍提高。

    学习计算机思维,不但能提高计算机初学者的水平,也会在工作和生活中给我们帮助和启发。

    展开全文
  • 【问道】计算机er要掌握的计算机思维

    千次阅读 多人点赞 2022-06-16 21:13:01
    本篇文章意在带你建立计算机底层架构的思维和逻辑,从图灵机、冯诺依曼体系反推 计算机体系结构 和 ISA指令集架构,从高级语言向下递推编译器、汇编语言、汇编器 、到机器语言,ISA指令集..................

    作为一个计算机人同时也面试过很多毕业生,不得不谈的就是计算机思维和对计算机整体的理解。计算机领域发展到现在语言、框架层出不穷,但是计算机思维和底层是不变的。我来谈谈我对计算机的理解,希望通过本文你可以构建计算机思维,底层并不困难,架构也并不高深,希望可以给你一些思考和帮助。

    导读《大学》里面有一句话'物有本末,事有终始。知所先后,则近道矣' 。什么意思呢,每样东西都有根有枝,每件事情都有始有终。明白了这本末始终的道理,就接近事物发展的规律了。那么我们思考计算机有没有本末始终的规律,答案是有的,本文将通过计算机系统底层(组成原理、体系结构、汇编原理、汇编语言、intel开发手册、CSAPP、C++等)的一些书籍,帮助我们正确、高效掌握计算机思维。

    易有太极,太极生两仪

    易经中有这样一句话'易有太极,太极生两仪 ',理解为所谓太极即是阐明宇宙从无极而到太极,以至万物化生的过程。计算机也不例外,经历从无到有从1936年艾伦・图灵提出的一种抽象的计算模型,将人们进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算,我们称之为图灵机。到冯诺依曼提出计算机的体系结构,从此往后不管是最原始的、还是最先进的计算机,使用的仍然是冯·诺依曼体系 最初设计的 计算机体系结构

    开天辟地,太极生两仪 - 从图灵机到冯诺依曼体系

    那么冯诺依曼体系就引出了计算机体系结构,我们翻开《计算机体系结构精髓》一书中描述了,这个模块应该去了解的知识有数字逻辑(电压、晶体管等等)、处理器的基本原理、操作数与指令、大量篇幅描述了CPU、存储器和总线等,那我们总结就是冯诺依曼体系中的4大组成(运算器、控制器、存储器和输入输出)。

    二生三,三生万物 - 冯诺依曼体系与计算机体系结构

    既然如此我们看下现在计算机都有哪些组成,宏观上也就是 计算机的视角,我们打开电脑能考到的就是键盘鼠标这类的外设(输入输出),计算机内部是CPU(运算器+控制器)、内存和磁盘(存储器);微观上,CPU内部视角,有寄存器(MU)和主存、运算单元(AU)、控制单元(CU)几个模块,这些模块顾名思义寄存器=存储器、主存=输入输出(因为要与CPU外部交互)、运算单元=运算器、控制单元=控制器。

    现代计算机组成

    这里仅仅是理解计算机和CPU与冯诺依曼体系的关系,如果理解困难,我们可以换个角度,在我们进行软件开发时的MVC架构,View=输入输出、Controller=运算器+控制器、Model=存储器,这样是否可以理解冯·诺依曼体系的神器之处了呢?

    冯诺依曼体系与现代计算机、CPU的关系

    至此我们算是初步浅识了计算机的整个底层,并且知道了CPU是计算机的核心(运算+控制),因为我们并没有深入到CPU(寄存器)、内存(数据内存、指令内存)等等。

    物有本末,事有终始。知所先后,则近道矣

    作为一名程序员,光有底层的逻辑还不够,还要建立完整的代码到编译到执行的思维,也就是所谓知其先后,我们写的代码究竟是如何操作上述硬件的?我们知道根据冯诺依曼体系,计算机只能识别 0 1 的代码诸如00000101,所以我们开始往上推,人类是不可能去写这个东西的,人类只需要将0101的代码对应上即可,但是不管是熟知C语言还是Java都不能直接变成0101的代码,那么一定是中间有一系列什么东西做了将高级语言转化为机器语言的步骤(编译器->汇编器)。

    于是出现了ISA汇编指令集,在《计算机组成原理》中有详细讨论,这里我们理解为,将驱动控制CPU的代码封装成特定的指令集,由CPU厂商去做代码的开发,用来操作控制单元,将存储单元中的数据放入计算单元,将计算结果返回给存储单元。

    ISA操作CPU的过程

    那么有了汇编指令集,诸如Java、PyThon、Go语言等还是不能直接操作ISA指令集的,我们还需要一个能把左右语言 编译 成统一的汇编语言(编译器),再去调用汇编代码的过程。将高级语言翻译成汇编语言或机器语言的过程,就是《编译原理》了,然后汇编语言操作CPU,去控制其他硬件完成操作(操作CPU的控制单元、控制存储单元,运算单元对缓存的数据进行操作)。

    编译原理

    小结: 至此我们得到了一个所有语言共同的编译运行模型和计算机体系模型,简单构建了ISA汇编指令集与汇编原理的了解。

    从代码到硬件的过程

    君子之道,辟如行远必自迩,辟如登高必自卑

    《中庸》里 '君子之道,辟如行远必自迩,辟如登高必自卑 ',翻译过来就是 君子的中庸之道,就好像是走远路必须从近处开始,就如同是登高必须从低处开始。 经过上述两讲我们知道了计算机体系结构和代码编译的过程,但是都仅仅是最简单的了解,现在我们开始登山!

    一、惟兹何功,孰初作之?——计算机组成原理-ISA和CPU处理指令原理

    上述说到控制计算机,需要控制CPU,而ISA操作CPU,从而操作其他的一切,ISA 是一个集合,那么就一定有多个内容,我可以 控制CPU干什么呢?所以机器指令会存在很多个 ->  我怎么识别谁是谁 ?->  所以机器码根据CPU厂商给定的规则(ISA),汇编器 按照这个规则将01放入规则指定的位置即可,实际上不管指令多么神奇,终究还是数据是代码,就需要容器去操作需要内存去存储。下图CPU内存模型。

    CPU内存模型

    指令操作的数据最终都会在内存,所以按照功能将内存存放数据的区域切割即可:指令段私有的数据(栈)+指令段共享的数据(堆) -> 指令段可能又有多个,那么就代表我可以 call 多个指令 -> (堆栈)数据结构来表示这种存储关系。其中,指令流动态分配的私有数据,分为栈顶栈底寄存器,由于内存是连续的且有高低之分,按照栈内存的增长方向可分配内存。指令流动态分配的共享数据称为堆内存。在汇编代码的 .data段定义的数据是数据内存。指令内存,存放指令而又由于指令中可以写入数据(mov 1,寄存器),所以又存放了数据,只不过这个数据嵌在指令中。

    说了这么多,是想告诉读者,每个指令流都有自己的栈帧,栈帧里面保存当前指令流操作的数据,当使用cell指令,转移指令流后。只需要保存上一个栈帧的栈底。所以我们的程序中,栈内存 就可以理解为多个指令流私有的数据;堆内存 是多个指令流共享 的数据(动态数据);代码段内存 保存程序的指令流数据内存是保存程序数据(编译时存在的数据静态数据)。

    由此可见底层CPU、OS与JVM的内存模型是息息相关的,这里初步构件对内存模型的了解,对于CPU以及寄存器的了解远不止于此,寄存器、高速缓存、intel手册等等笔者会放在后续博文中详细介绍。

    二、冥昭瞢暗,谁能极之?——再探编译原理与汇编语言

    上述说道编译原理是将高级语言翻译成汇编语言或机器语言的过程,编译的过程有一个三明治(三层)架构——前端、中间结构、后端。前端是由不同需要接入当前编译器的前端开发者进行开发,来适配多门语言,中间结构会产生一个叫IR的中间语言解耦,后端由不同需要接入当前编译器的后端开发进行开发,来适配多门目标机器语言(ISA)。中间的细节类似于我们做英语翻译分析语言的语法语义,生成中间语言,最后转化为目标语言,可以参考Java语言的编译过程,java源代码->通过javac指令编译成字节码,这个字节码就是相当于 IR中间语言。这里面JIT(即时编译器)实现了编译原理的前端和后端,只不过在内存中动态对语言进行编译;用一门语言(IR)对其他语言进行解释,执行逻辑是解释器;编译器是具有前端和后端的整套逻辑,将一个语言(源语言)编译为目标语言。

    编译原理与Javac编译

    了解了编译过程之后,编译的目标语言我们称为汇编语言,汇编语言有两个编码规则,一个是AT&T,指令形如mov eax 1;另一个是intel公司,指令形如mov 1 eax;(颠倒了)。高级语言会抽象为汇编语言;我们是否可以推理出来,指令段 相当于函数;指令段之间的调用(call指令)类似于方法之间的调用(函数调用);而操作单元的大小抽象为类型系统(基础类型 byte  short int的内存单元为2^n(n>=0),其他类型:结构体(不同规则的内存单元)、数组(相同类型的多个内存单元));数据地址操作抽象为指针操作。

    指令段1想要指令段2去修改内存单元中的值的过程

    总结

    本篇文章意在带你建立计算机底层架构的思维和逻辑,从图灵机、冯诺依曼体系反推 计算机体系结构 和 ISA指令集架构,从高级语言向下递推编译器、汇编语言、汇编器 、到机器语言,ISA指令集 闭环。希望通过本文你可以初步构建计算机思维,通过已知可以继续向更深(寄存器、链接器、解释器等等)、更高(MVC、DDD、分布式、云原生等等)的层面延伸推理。

    高级语言与计算机硬件的关联

    点赞收藏关注转发 ~  获取文中高清大图请加作者微信 ~
    感谢支持,下期更精彩~

    展开全文
  • 整合了《大学计算机基础》课程全部内容,对于正在学习计算机基础的,考计算机二级很有帮助。其中word版本可实现目录的折叠,有利于构建知识体系
  • 1946年2月14日,世界上第一台计算机诞生于美国宾夕法尼亚大学,随后计算机技术在短短几十年内蓬勃发展。起初计算机是为了运用于军事上,然后随着科技的进步,计算机即电脑,应用到每个人的身边。不难发现,计算机...
  • 希望明年上史老师大学计算机思维导论的学弟学妹期末考试能用上 我上个学期的期末考试,七道大题里有两道和里面的几乎完全一样,三道十分类似 都免费下载了,希望有用到的朋友在下面留个言(*^_^*)
  • 计算机思维导论教学ppt,可供复习学习之用
  • 1. 计算机思维 (大一新生,到)

    千次阅读 2019-07-30 13:11:11
    《目录》 前言 计算的能力和价值 计算机思维的定义 一厢情愿的想法 计算机思维的发展 计算机思维教育运动的兴起(大一新生必看系列) 您好呀,本篇博客翻译的是《Computation Thi...
  • 什么是计算机思维将一个困难问题分解,通过逻辑分析和细分步骤构思出解决方案,从而形成解决问题的模型,再将该模型应用到更多同类问题当中的思维方式。计算性思维可以概括成这四个步骤:1分解任务就是把问题进行...
  • 什么是计算机思维

    万次阅读 多人点赞 2018-04-23 16:53:53
    计算机思维是一套概念模型我们运用一个思维模型时,要经历这样三个阶段:建模,解模,解释。与之相对应的则是抽象思维、演绎思维、发散思维。通过抽象,形式化,将我们所需要研究的问题进行归纳,用一种范式表达出来...
  • 研究方法是指分析论证课题时的思维方法,它属于认识论范畴。没有正确的研究方法,就不能深入认识事物的本质,揭示其客观规律。没有正确的研究方法,就不能有所发现、有所发明、有所前进、有所创新,自然也就不能获取...
  • 何谓计算机思维(转载)

    千次阅读 2020-03-02 10:46:06
    因为觉得写得特别好,自己收藏了,也想在这里分享给大家,同时便于日后的学习,如果看到的朋友觉得也很棒的话,请打开原文链接给原作者点个赞。...这一年,她在美国计算机权威期刊《Communications of the ACM》...
  • 计算机思维导论题库及答案(1).docx

    千次阅读 2021-07-22 01:02:35
    1.已知一个运算被定义为(define (firstCalc x) (* x x)),在其基础上进一步定义新运算secondCalc为x2+y2+z2,下列运算组合式书写正确的是_____。A.(define secondCalc (+ (firstCalc x) (firstCalc y) (firstCalc z)...
  • 再谈计算机思维.pdf

    2021-10-10 20:45:11
    计算机专业
  • 大学计算机-计算思维导论习题参考答案
  • 运用信息技术培养学生计算机思维.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 187,773
精华内容 75,109
关键字:

计算机思维

友情链接: 建模论文.rar