首页系统综合问题程序猿的崛起,一篇文章看懂编程语言

程序猿的崛起,一篇文章看懂编程语言

时间2023-04-25 18:38:21发布分享专员分类系统综合问题浏览133

今天小编给各位分享windowsserver2000的知识,文中也会对其通过程序猿的崛起,一篇文章看懂编程语言和关于编程语言的选择问题。等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!

内容导航:

  • 程序猿的崛起,一篇文章看懂编程语言
  • 关于编程语言的选择问题。
  • python编程语言好用吗?
  • 为什么说JAVA其实是最好的编程语言
  • 一、程序猿的崛起,一篇文章看懂编程语言

    出品:科普中国

    制作:科了个普 杨阳

    监制:中国科学院计算机网络信息中心

    王国维在《人间词话》里写道:古今之成大事业、大学问者,必经过三种之境界:"昨夜西风凋碧树。独上高楼,望尽天涯路。"此第一境也。"衣带渐宽终不悔,为伊消得人憔悴。"此第二境也。"众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。"此第三境界。概括了一种锲而不舍的坚毅性格和执着态度。

    "知道自己不懂"是为第一境界;"不知道自己懂"是为第二境界; "知道自己懂了"是为第三境界。

    无论你是小白,还是小白,还是小白,你在学习编程的过程中都会深深的体会到这三句话太准确了。学习编程意味着我们将要进入一个与日常生活经验迥然不同的新领域,这最初的曲折辛酸,以及逐渐初窥门径、小有所成并最终笑傲江湖、独当一面的欣喜正是上面所说的学习三境界的真实写照。这篇文章将要介绍计算机编程的前世今生,如果你想要了解程序猿这一高收入人群的真实生态,这篇文章就是IT界的《物种起源》,为你道尽它们的演化历程和苦乐悲喜。

    电脑的诞生

    首先我们热烈欢迎世界上最早的电脑登场,对,它的名字就叫安提基特拉机械,被认为是最初的电脑,展示于雅典国家考古博物馆。

    此机械是在希腊安提基特拉岛附近的安提基特拉沉船里发现的,所以叫安提基特拉机械。它诞生于公元前100年左右,属于模拟计算机,至今已有二千多年历史。类似的复杂工艺技术直到14世纪时欧洲制造了天文钟后才重新出现。它是古代人类智慧的最高杰作之一。

    那么,真正的近代的电脑诞生于什么时候呢?答案是1945年,诺伊曼发明数字式电脑。此处应该有掌声。

    诺先生规定用二进制替代十进制运算,并将计算机分成五大组件,他的思想为电子计算机的逻辑结构设计奠定了基础,并且已成为计算机设计的基本原则。

    1951年,EDVAC计算机宣告诞生。由于他在计算机逻辑结构设计上的伟大贡献,诺先生被誉为「计算机之父」。

    由上图可以得知,直到93年,我们现在一般用户熟知的window操作系统才诞生。

    电脑程序运行的基本原理是什么?

    感谢诺先生,没有他的发明,小编今天就不能够在电脑面前给大家科普了。接下来小编首先给大家分析一下开启计算机主机的那一瞬间,桌面蹦出来的画面是怎么回事。

    在一台电脑里有很多程序。其中,计算机做任何事情之前必须存在和运行的最重要的程序是操作系统程序。对,没错。就是你每次开机时候看到的那个熟悉的画面,伴随着叮当叮当的音乐,世界首富比尔盖茨的微软公司就是靠发明这个windows系统发大财的。这是计算机的主要"系统程序"。此操作系统程序不仅控制硬件部件,还控制其他软件(许多应用程序),还可让计算机用户与计算机本身进行互动(比如通过键盘,触摸屏,语音激活等等)。实在是万能之神啊。

    什么是计算机语言?

    与人类语言的复杂多变一样,现在世界上已经有200种以上的计算机语言了。当然其中也有很多几乎很少使用的语言,实际经常用到的语言只有20到30种。尽管如此,一个人要掌握太多计算机语言的话还是比较难的。

    在那么多的程序设计语言中,学习哪个才好?下面是最常用的语言,程序猿们的本事可不仅仅是直立行走那么简单,掌握这些工具中的大部分,并且精通其中的一两种,才是一只合格的现代程序猿。

    人类语言是指,人类用特定的格式和词汇来向他人发出指令,表达意愿,进行交流。不同种类语言的词汇和格式不尽相同,但可以达到相同的交流目的。

    同样,我们也可以用"语言"来控制电脑,让电脑为我们做事情,这种语言叫做编程语言(Programming Language)。我们先简单介绍一下常用编程语言。 编程语言也有固定的格式和词汇,我们必须学会使用,才能在此基础上编写程序控制电脑。常用的编程语言有C语言,C ++,Java,C#,Python,PHP,JavaScript,Go语言,Objective-C,Swift等等,每种语言都有自己的优点。

    计算机是如何听懂编程语言的呢?实际上,如果没有编译器(一种专门程序)的存在,计算机是无法理解编程语言的。编译器用来将编程语言编写的指令转换为机器语言。打个比方,人类有自己的人类语言,计算机也有自己的语言系统。它们使用只包含1和0的二进制代码,1表示"on",0表示"off"。编程语言更容易被人类所学习和掌握,而编译器编译出的计算机语言则更容易让计算机接受。

    程序猿使用编程语言编写的程序代码,编译器可以理解,编译器会将源代码转换为二进制代码(目标代码),然后汇编程序帮助这个目标代码转换为低级指令,指示机器执行,最后重新获取结果。

    为什么要有编译器的存在呢?

    简单的回答是,虽然编程语言已经编写代码告诉计算机该怎么做了,但计算机只能理解两种不同类型的数据:开和关。实际上,一台电脑实际上只是一个开/关(晶体管)的集合。计算机所做的任何事情背后的真相只不过是无数晶体管的开闭组合。

    二进制码就是作为1和0的表示的组合,其中每个数字表示一个晶体管。二进制代码分为字节组,8位数组表示8个晶体管。例如,11101001。现代计算机包含数百万甚至数十亿个晶体管,这意味着无法想象的大量组合。

    于是这里出现了一个问题,为了能够编写一个计算机程序,打出数十亿的1和0将需要超人的脑力和精力,编一个小程序可能需要一两年的工作。编程语言和编译器中,前者对人友好,后者对机器友好,两者通力合作,才能将人类的想法快捷而准确的传达给计算机。

    为什么会存在那么多的计算机语言?

    数百种不同的编程语言使我们有可能创建计算机软件,应用程序和网站。而无需编写二进制代码,他们让我们相对容易的编写,阅读和理解代码。同时,每种语言都带有自己特殊的编译器程序,它负责翻译我们编写的二进制代码,让机器明白我们的意图。

    那么,为什么我们有这么多语言呐?

    这是因为不同的语言被设计为用于不同的目的,一些可用于Web开发,一些用于编写桌面软件,其他用于解决科学和数字问题等。此外,编程语言也可以是低级或高级的。低级语言更接近计算机所理解的二进制代码,而高级语言更容易编程,因为它们接近人类的语言和思维模式,设计简单易于编写。几乎所有的主流编程语言都是高级语言。

    编程语言生成的程序代码是什么样的?

    程序是一种用特定编码语言编写的文本文件。程序文件中的代码称为源代码。每个编码语言都有自己的文件扩展名,用于识别用该语言编写的代码文件。例如,Python是'.py'。要编写程序,可以在纯文本编辑器(如记事本)中编写代码,并将文件保存到计算机。

    如何运行一个程序,并实际得到它来执行命令?编码语言之间有所不同。一些语言保存到计算机后可以生成可以直接运行的单独二进制文件,而其他语言的程序由某些软件间接运行。例如,JavaScript程序文件将通过Chrome浏览器等运行。PHP程序文件将由像LAMP这样的Web服务器运行。

    以hello.py文件为例,Python语言附带一个命令行,它将显示程序的输出文本"Hello,world!"。如果要将代码输入命令行并按enter键,程序将运行并且命令将被执行。是不是成就感油然而生啊。

    运行程序时会发生什么?

    电脑实际上并不了解"Hello,world!"这个短语,不知道如何在屏幕上显示。它只能理解开关。所以要真正运行一个命令,如打印"Hello,world!",它必须将程序中的所有代码翻译成一系列可以理解的代码。

    首先,源代码被翻译成汇编语言。汇编代码被翻译成机器语言。机器语言直接作为二进制代码执行。我们再来理解一些细节。编码语言首先必须将其源代码转换为汇编语言,一种使用单词和数字来表示二进制模式的超低级语言。根据编程语言不同,这可以用解释器(程序被逐行翻译)或编译器(程序整体翻译)来完成。

    然后,编码语言将汇编代码发送到计算机的汇编器,该汇编器将其转换为计算机可以直接理解并直接作为二进制代码执行的机器语言。

    结论

    像二进制代码(计算机的母语)一样简单和原始的东西可以创建计算机软件这样复杂的东西,这是不是很令人惊奇呢?屏幕,操作系统,照片,视频,互联网,微信,在线银行帐户和本网站,所有这些都可以从1和0构建。编码语言存在的全部原因是为了简化所有这一切,这是人类智慧成就的象征。

    最后,最重要的是,有一个循序渐进的行动计划,从学习编码开始,你就将进入一个全新的世界。加油吧,少年。

    "科普中国"是中国科协携同社会各方利用信息化手段开展科学传播的科学权威品牌。

    本文由科普中国移动端出品,转载请注明出处。

    一、关于编程语言的选择问题。

    编程语言常用的有30种左右,开始做项目时,我们如何选择适合的编程语言呢?不同的编程语言有着不同的优势,要根据实际项目的特性去选择编程语言,今天给大家分享30种编程语言的比较选择问题,希望能对大家有所参考的价值。  本文涉及到的编程语言:C、C++、Java、C#、Prolog、VB、Scala、Clojure、Haskell、Ada、Python、Ruby、Pascal(Delphi)、Fortran、Lisp、matlab、Perl、Erlang、Boo、Tcl、Bash、C shell、Objective-C、PHP、PL-SQL、Transact-SQL、ASP、JSP、Lua、smalltalk、R、D  涉及到的工具:sed、awk、grep  我们现在学一门语言,大部分是要用到了才学(基本上是中国的公司用什么我们学什么),基于兴趣的不多。  比如,大头肯定是C++和java,因为这个最容易混饭吃。最近多玩用了Erlang,还有不少公司跟风上了Erlang,让这个沉默了好久的语言忽然被明星了。  大公司一般除了C++外,都会招Java,事实上,互联网公司,Java占了半壁江山(当然,没选java架构的除外,有不少.net族的)。所以,生活在贫困线上的广大中国程序猿很少有人会去看看诸如scala之类的玩意。不过作为胶水,python、perl还是有一定的用户量的。  似乎,我们生活中只有这么几种语言。。。  貌似,遇到一个问题,我们该选择什么语言呢?虽然每个语言本质上都是图灵完备的,但是能用prolog写出来的东西,如果用别的语言写,会无比痛苦。这就是不同语言存在的原因:不同的问题,不同思考方式(编程范式)。  解决问题case:已知大量事实,和事实之间的约束,要求挖掘关系。  果断用prolog族语言。  例如,汉诺塔、地图着色、数独问题、八皇后问题等这种考验智商,并且需要从已知规则中发现模式的问题。拥有一大堆已知案例的应用(例如大部分的人工智能情况)  应用程序case:从小到超大型应用程序,非完全互联网应用  这也是大部分软件公司遇到的情况。一般有几种没办法分出高下的解决方案:C++,Java,C#,VB。当然,这里面可以有CLR和JVM的不同衍生。例如,理论上,你也可以用scala来代替(不过估计大型公司不会冒这个险)。还是在理论上,你也可以用函数式编程的Clojure和Haskell来做(估计没人会那么傻)。还是在理论上,也可以用Ada这种强悍的通用语言,但估计没人愿意接收比C++还复杂的编程语言。理论上(基本只能在理论上),不嫌弃的话smalltalk也行。还是在理论上,python、ruby等配合一定的图形界面库也可以胜任(但项目大到一定的程度是,你会欲哭无泪)。  但是,我另起一行。有个语言:D语言。我个人不认为不可以列入首选名单。但是貌似知名度不行啊。企业支持少啊。确实是门优秀的语言。C++太尾大不掉,需要一种语言,让C++成为纯粹的C++。  稍小一点规模的,无法接受面向对象的程序员,有不少用C的。虽然OOP程序员看他们像是不开化的人,但是他们有他们的哲学(我从嵌入式开发过来,相当长时间内也摆脱不了C,总本能的排斥OOP)  解决问题case:程序规模不是很大的偏数学问题  曾经很多人用Pascal(包括扩展的Delphi),曾经很多人用Fortran,但是都明显在退步。大型通用语言(C++、Java、C#)表明了他们在各种环境的适应能力。lisp系列也在一些问题上展现出古老的魅力。(但这个语言远没有《黑客与画家》的作者给我们描述的那样神奇,个人认为。不过我的C++风格思想占了主导,可能没办法公正的评价lisp,但是据我的使用lisp经验,在大部分情况下,我最后还是放弃了它。因为大部分情况下我总能找到用C++(或其他OOP语言)更好的原因)  另外,读研的一般都用过matlab。这个工具,两个字:强大!不过仅指科学计算方面。脱离了这个方面,就得考虑合不合适了,毕竟固定的矩阵思维不是啥情况都有效的。我用matlab最多的是神经网络,图片和信号处理。毫不夸张的说,matlab活脱脱一个photoshop啊。。。(当然,你得会用。。。)不过matlab的神经网络确实不行,做的太差了,小规模的网络可以,3层不用BP的F网,几十个就挂掉了。有这个需求的用ANN吧。(还是C++,偷笑)  特殊应用case:需要大量处理字符串的应用  首选利器是Perl,不过如果你习惯了sed、awk、grep,也能很方便的完成相同的功能,但perl是吸收三家所长做的。  其次是C++,别拍我。诸位用过regex吗?就是boost里的那个,最近被并入C++11啦。有了正则表达式的C++,处理字符,无敌了很多哇。当然,Java程序员别拍我,我知道这种库一个大型的通用语言都会有。我提C++,一般顺带着不否定Java和C#能以相似的代价完成相同的功能。  特殊应用case:需要一个胶水,粘结不同语言写出来的程序  首选是python。俩字:精简(呀,这么说一个强大的语言有点太轻浮了,但比起ruby,确实简单呐。。。)(另外Boo在.net是可以用来取代python)  其次是ruby。俩字:复杂  毕竟,没有rails,ruby根本火不起来。事实证明,python的哲学很对。当然两种语言有很多细节的不同,甚至在编程范式上不同(真想不明白白ruby支持多种范式怎么可能是个优点?市场证明了python的纯粹)  特殊应用case:自动化测试  不用问了,肯定是tcl了。  由于这个特殊应用,所以个人用户基本用不到,大部分是嵌入式公司。华为、数通、迈普等。。。  特殊应用case:系统底层  这个肯定是C了。操作系统,驱动,底层软件,大部分都是C写的,调用API,如果不用微软的Activex之类的技术,还是得老老实实用C API的。  特殊应用case:系统管理  这个系统管理,一般指linux的。首选肯定是各种shell啦:Bash、C shell  特殊情况case:苹果平台  我们没得选。。。。objective-C  特殊领域:嵌入式  大部分都是C了。不过andriod平台和苹果平台就得听话了。gmszone 网友建议把Ada也放在这里,我不否定Ada在嵌入式领域的广阔未来和实实在在的实力。但C主导了嵌入式这么久,程序员基本没办法接受别的思维了。比如ARM,三年前我用的Xscale,我实在不愿意想象放弃C。嵌入式的玩意对错有时候根本没办法说,所以很重要的是经验,前人的积累,所以就像垄断一样,不是革命性的优秀根本无法动摇根基的。我用过spartan的FPGA,我记得当时选的core也全部是用C做编程接口。所以,很抱歉这里我无法接收该网友的意见。  特殊应用:网页  嵌入网页内的,最火的肯定是PHP(后端)和javascript(前端)了。前者代替了古老的cgi。  但是,java系的jsp内嵌java,asp内嵌C#,都是php的强劲对手。  通用语言在各个方面咄咄逼人。  特殊应用:数据库  就是比哪个SQL版本更被人接收。标准sql自然不必说,根据排名,PL(SQL)/Transact-SQL上榜。  特殊应用:并行,分布式  并行越来越重要了。  首选Erlang。  但是,基于已有的条件,还是考虑选用通用语言的并行优化。C++、Java、C#等都在这方面做了很多优秀的工作。  特殊应用:特定语言的功能增强  不用问了,我想说的是Lua。用C++写实现,用Lua写逻辑是好多游戏的经典开发策略。(当然像Unity用的javascript,Unreal用的自己的。)  在通用大型语言的基础上学会用Lua加速,是一种很有趣的实践。  特殊应用:人工智能  人工智能上,prolog和lisp是宠儿。R语言有时也被用于数据挖掘(但是太慢了)

    二、python编程语言好用吗?

    相信对于很多编程初学者来说,面临要选择一门编程语言作为自己的入门级语言时,往往会不知所措,当然小编也不例外。

    作为一名程序猿或实用主义学习者来说,选择一门编程语言时,通常更多关心的是“我为什么要选择这门编程语言,学会这门编程语言之后我能用它来做些什么?”

    首先,小编觉得选python作为入门级语言还是不错的选择。原因有以下几方面:

    从TIOBE 2017排行榜来看python还是一直名列前茅排名第5的语言,属于比较受欢迎及热门级的编程语言之一;

    对比其他编程语言python更加容易上手;

    python是以优雅、明确、简单为主的设计哲学;

    python追求的是找到最佳的解决方案而不是其他语言所追求的多种解决方案,换句话说是,它能够使你更加专注于解决问题而是去搞明白语言本身;

    使用python编程不需要考虑众多的底层细节(如,不必考虑如何管理你的内存);

    拥有丰富的的库,其中有官方的,也有第三方提供的,你只需调用即可而无需再重新发明轮子,大大的节省你的开发时间与精力;

    三、为什么说JAVA其实是最好的编程语言

    JAVA可以说是最热门的的编程语言,对于很多高级语言来说,JAVA都是基础;另外一个,JAVA是跨平台的,有多个方面的应用,如Android、Swing、J2EE、J2ME等。就业面比较广,市场用人需求也大。java多开发大型系统,所以大型企业往往需要很多Java人才,这是其优势。

    关于windowsserver2000的问题,通过《python编程语言好用吗?》、《为什么说JAVA其实是最好的编程语言》等文章的解答希望已经帮助到您了!如您想了解更多关于windowsserver2000的相关信息,请到本站进行查找!

    爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。

    windowsserver2000
    要是早点知道这个网站,我的旧电脑还能多撑几年 文件或目录损坏且无法读取怎么办?