精华内容
下载资源
问答
  • python底层是什么语言

    2021-02-04 11:21:42
    Python的创始人为Guido...之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。大多数高级语言都是在C语言的基础上开发的,比如Python、Java、C#......等等;C v...

    Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿萨姆特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

    463a4fc8154e426eb99f86f9a0f29afd.png

    大多数高级语言都是在C语言的基础上开发的,比如Python、Java、C#......等等;

    C vs Python、Java、C#等等:

    C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作;

    其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行;

    Python也称C Python由C语言开发而来:

    对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.

    对于速度:Python的运行速度相较与C,比较慢,没有C执行的快;

    Python vs Java、C#等等:

    对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持;

    对于速度:Python在速度上可能稍显逊色;

    e820081f397f753a2a21b38f5069c65e.png

    CPython

    Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

    JPyhton

    Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

    IronPython

    Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)

    PyPy(特殊)

    Python实现的Python,将Python的代码转换字节码再编译成机器码。优点,在第二次执行代码是则直接将代码转换成机器码交给计算机去执行。RubyPython、Brython ...

    展开全文
  • 常见编程语言

    2021-05-26 22:43:50
    常见编程语言 如果您编写过软件,您肯定问过自己“我应该使用哪种语言来编写这个程序?”这是一个合理的问题。 您的代码是否需要尽可能快? 它是否会在网络上运行? 该代码将位于后端还是前端? 所有语言都有...

    常见编程语言

     

    如果您编写过软件,您肯定问过自己“我应该使用哪种语言来编写这个程序?”这是一个合理的问题。

    1. 您的代码是否需要尽可能快?
    2. 它是否会在网络上运行?
    3. 该代码将位于后端还是前端?

    所有语言都有自己的定位。

    编程语言 计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。

    1. 计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
    2. 汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
    3. 高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。 

    高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。 像最简单的编程语言PASCAL语言也属于高级语言。

    高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

    1. 解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

    1. 编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

    汇编语言(assembly language)

    ——汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

    Matlab

    ——数学,仿真,信号处理等。

    Smalltalk

    ——Smalltalk被公认为历史上第二个面向对象的程序设计语言和第一个真正的集成开发环境 (IDE)。由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor, Java 和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如Design Patterns, Extreme Programming(XP)和Refactoring等。

    Smalltalk和许多程序设计语言不同,它不仅仅是一门语言。下面我们从几个不同的角度来解释Smalltalk。

    1. 一种面向对象的程序设计语言;
    2. 一种程序设计环境;
    3. 一个应用开发环境(ADE);

    Erlang

    ——Erlang是一种通用的面向并发的编程语言,它是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适合于构建分布式,实时软并行计算系统。使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅只是一两个环节,比起C程序的线程切换要高效得多得多。

    使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。Erlang运行时环境是一个虚拟机,有点像Java虚拟机,这样代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断的情况下更新。另外如果需要更高效的话,字节代码也可以编译成本地代码运行。

    Lisp

    ——LISP是一种通用高级计算机程序语言,长期以来垄断人工智能领域的应用。LISP作为因应人工智能而设计的语言,是第一个声明式系内函数式程序设计语言,有别于命令式系内过程式的C、Fortran和面向对象的Java、C#等结构化程序设计语言。

    Lisp是一门历史悠久的语言,全名叫LISt Processor,也就是“表处理语言”,它是由John McCarthy于1958年就开始设计的一门语言。和Lisp同时期甚至更晚出现的许多语言如Algo等如今大多已经消亡,又或者仅仅在一些特定的场合有一些微不足道的用途,到现在还广为人知的恐怕只剩下了 Fortran和COBOL。但唯独Lisp,不但没有随着时间而衰退,反倒是一次又一次的焕发出了青春,从Lisp分支出来的Scheme、ML等语言在很多场合的火爆程度甚至超过了许多老牌明星。

    LISP是函数式程序设计的先锋,其诸多革命性的创新思维影响了后续编程语言的发展,亦完全垄断人工智能领域的应用长达三分之一个世纪。曾在开展初年出现的低效率因素亦在集体改良中被移去,成就了现在广被应用于软件开发、电子商务及金融系统的Common Lisp、Scheme、Emacs Lisp和Clojure等。

    ML

    ——ML (meta language)是一个通用的函数式编程语言,它是由爱丁堡大学的Robin Milner及他人在二十世纪七十年代晚期开发的。它的语法是从ISWIM得到的灵感。作为元语言的ML是为了帮助在LCF定理证明机中寻找证明策略而构想出来的。(之前的元语言是pplambda,它联合了一阶逻辑演算、多态及Λ演算)。它使用了Hindley-Milner类型推论算法来推测大多数值的类型,而不需要四处使用注解。

    Clojure

    ——Clojure是一种运行在Java平台上的 Lisp 方言,Lisp是一种以表达性和功能强大著称的编程语言,但人们通常认为它不太适合应用于一般情况,而Clojure的出现彻底改变了这一现状。如今,在任何具备 Java 虚拟机的地方,您都可以利用 Lisp 的强大功能。

    Kotlin

    ——是一个基于JVM的新的编程语言,由JetBrains开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。Kotlin已正式成为Android官方支持开发语言。(Java也支持)

    Kotlin是一门静态语言,支持多种平台,包括移动端、服务端以及浏览器端,此外,Kotlin还是一门融合了面向对象与函数式编程的语言,支持泛型、安全的空判断,并且Kotlin与Java可以做到完全的交互。

    Rust

    ——Rust是一种低级的系统编程语言,其目标是提供高性能、安全性和并发性,它是一个不错的C/C++的替代语言。过去,C开发人员努力使用Rust编写操作系统、数据库、嵌入式程序、内核以及各种系统程序。

    Rust 是一种静态类型的编译语言,满足了大多数用户使用 C 或 C++ 能够实现的目标。但是不同于 C 和 C++,Rust 还侵占了 C# 和 Java™ 语言在本世纪统治了很长时间的领域:Rust 语言是内存安全且与操作系统无关的,这意味着它可以在任何计算机上运行。实质上,您会获得系统语言的所有速度和低阶优势,而没有我提及的后几种语言中麻烦的垃圾收集。激动不已?是的。

    Ruby

    ——Ruby 是另外一种开源的,面向对象的,通用的编程语言,这是一种简单的,有助于快速应用开发的语言。 Ruby最有名的框架是 Rails(Ruby on Rails),这主要被用来 web 开发。

    Ruby是一种简单的面向对象编程语言,十分容易上手,并且功能强大。她是一个日本的Yukihiro Matsumoto(大家都叫他Matz.)在1995年首次发布的。Ruby从Perl语言那里借鉴了许多东西(有人形象地说Ruby是Perl的漂亮的妹妹:),和Perl相似,Ruby也擅长于文本处理、系统管理等任务。和Smalltalk一样,Ruby是一种纯粹的面向对象语言,任何东西都是对象。

    SQL

    ——结构化查询语言,数据库,MySQL,Oracle,DB2,SQLServer、PostSQL等。

    Scala

    ——Scala是一种基于JVM的编程语言,学习目的主要是为了Spark的学习与相关代码的编写。因为Scala是基于Java虚拟机,也就是JVM的一门编程语言。所有Scala的代码,都需要经过编译为字节码,然后交由Java虚拟机来运行。所以Scala和Java是可以无缝互操作的。Scala可以任意调用Java的代码。所以Scala与Java的关系是非常非常紧密的。

    ——Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

    Python图形处理、科学计算、未来大热方向机器学习和人工智能等。

    ——(热度大、发展快、应用范围广 ) / (开发者:Guido van Rossum)

    C语言:底层开发。

    ——(执行效率高)  /   (创始者:贝尔实验室)

    在底层编程,比如嵌入式、病毒开发等应用,可以替代汇编语言来开发系统程序。在高层应用,也可以开发从操作系统(Unix/Linux/Windows都基于C语言开发)到各种应用软件。

    C++科学计算、操作系统开发、引擎开发等。

    ——(运行效率高) /  (创始者:贝尔实验室)C++语言在科学计算、操作系统、网络通讯、系统开发、引擎开发中仍然被大量使用。

    C#:开发基于Windows的一些桌面软件。

    ——(与java的功能相似,但主要开发的软件类型不一样)  / (创始者:微软公司)

    C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#在基于Windows操作系统的应用开发这一领域在取代C++,但C#的微软身份也成为了其发展的阻力,在其他IT领域应用较少。

    Unity3D开发游戏时,使用C#和JavaScript。

    Java企业级软件开发、安卓移动开发、大数据云计算等。

    ——(应用领域广,几乎涉及IT所有的领域)  / (创始者:Sun公司)

    Java广泛应用于企业级软件开发、安卓移动开发、大数据云计算等领域,几乎涉及IT所有行业。

    Object-C(OC)/Swift语言  : 苹果软件的开发。

    ——(iOS开发的核心语言)  /   (创始公司:Stepstone公司/苹果公司)

    Objective-C

    ——Objective-C是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OPENSTEP中它更是基本语言。(注:NeXTSTEP和OPENSTEP是基于Unix OS内核,并遵循OpenStep的API规范的操作系统)。GCC与Clang含Objective-C的编译器,Objective-C可以在GCC以及Clang(编译器)运作的系统上编译。

    Swift

    ——Swift是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于编写 iOS 和 macOS 应用。

    Fortran语言 : 复杂数学计算的科学和工程领域。

    ——(世界上第一种高级语言)  /   (创始公司:IBM公司)

    PHP : 大量中小型网站以及某些大型网站的网页开发。

    ——(广泛用于WEB开发领域)   /  ( 开发者:Rasmus Lerdorf)

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI(Common Gateway Interface)或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

    JavaScript : 浏览器端的一些动态效果开发,流行的H5开发。

    ——(广泛应用于WEB开发领域)   /   (创始者:Netscape公司)

    JavaScript(Java脚本)是一种基于对象(Object)和事件驱动( Event Driven)并具有安全性能的脚本语言,使用JavaScript可以轻松的实现与HTML的互操作,并且完成丰富的页面交互效果,它是通过嵌入或调入在标准的HTML语言中实现的,它的出现弥补了HTML的缺陷,是java与HTML折衷的选择。

    注:

        前端技术:JavaSscript,HTML5 ,  CSS3 与 PHP

        HTML:展示的内容(文字、图片等)

        PHP : 动态输出页面内容,并使输出不限于HTML,还能输出Flash电影等

        CSS :页面布局、美化页面(HTML元素的样式、颜色等)

        JavaScript:生成动态页面,提高浏览体验

    COBOL语言:主要用于大量精确处理数据的商业领域如金融和银行,商业软件。

    ——(数据处理领域最广泛的程序设计语言,为解决经企管理问题而生) /  (开发者:RearAdmiralGraceHopper公司)

    COBOL是Common Business Oriented Language的缩写,是面向商业通用编程语言。它是专门为商业数据处理而设计的计算机高级程序语言。广泛用于数据管理领域。应用于多个行业如:银行,证券,金融,制造,等等。

    Basic语言:现在少用

    ——(一种直译式程序设计语言) /  (创始者:Dartmouth学院John G. Kemeny与Thomas E. Kurtz两位教授)

    BASIC(来自英语:Beginner's All-purpose Symbolic Instruction Code的缩写),又译培基,一种直译式程序设计语言。名称字面为意思“初学者的全方位符式指令代码”,设计给初学者使用的编程语言,在完成编写后不须经由编译及链接等手续,经过解释器即可运行,但如果需要单独运行时仍然需要将其创建成可执行文件。 BASIC 语言是由Dartmouth学院John G. Kemeny与Thomas E. Kurtz两位教授于20世纪60年代中期所创。由于立意甚佳,BASIC语言简单、易学的基本特性,很快地就普遍流行起来,几乎所有小型、微型以家用电脑,甚至部分大型电脑,都有提供使用者以此种语言撰写程式。在微电脑方面,则因为BASIC语言可配合微电脑操作功能的充分发挥,使得BASIC早已成为微电脑的主要语言之一。

    Pascal:现在少用

    —— (最早的结构化编程语言) /  (创始者:瑞士Niklaus Wirth教授)

    Pascal的名称是为了纪念十七世纪法国著名哲学家和数学家Blaise Pascal而来的,它由瑞士Niklaus Wirth教授于六十年代末设计并创立的。Pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。

    Pascal计算机程序教程如今已经有专业化课程,并且越来越完善和严格化。Pascal有6个主要的版本,分别是Action Pascal、Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。

    GO

    —— GO编程语言 - Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。2007年,受够了C++煎熬的Google首席软件工程师Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++, 这就是Golang。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发。

    Go 文化的主要支柱是保持简单实用的代码,而不会产生多余的抽象,并且非常重视代码的可维护性。能够把大量时间用在实现业务代码上,而不是用来修改工具和配置环境,这也是文化的一部分。Go 也可以总结为“应该只有一个方法来完成一件事情”。

    R

    ——R,当要进行数据分析和统计软件开发时,你可以选择R语言。随着大数据和机器学习的兴起,R得以不断发展并和Python和Matlab展开了激烈竞争。

    Perl

    —— Perl即“实用报表提取语言”(Practical Extraction and Report Language),是一种具有高级语言(如C)的强大能力和灵活性的解释型语言。

    它借取了C、sed、awk、shell 脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN(CPAN, Comprehensive Perl Archive Network has over 25,000 open source modules available for download.)。被称之为“一种拥有各种语言功能的梦幻脚本语言”、“Unix 中的王牌工具”。

    Perl是最古老的语言之一,但它正越来越受欢迎并显示出伟大复苏的迹象。DevOps是新生事物, Perl正发展成为用于DevOps的深受欢迎的语言, 请密切关注Perl, 它或许会成为像Python语言那样的下一个重要语言。

    perl的前身是Unix系统管理的一个工具,被用在无数的小任务里。后逐渐发展成为一种功能强大的程序设计语言,用作Web编程、数据库处理、XML处理以及系统管理;在完成这些工作时,同时仍能处理日常细小工作,这是它的设计初衷。Perl特别适合系统管理和Web编程。

    Perl运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。实际上已经被用在所有Unix(包括Linux)捆绑在一起作为标准部件发布,同时也用于Microsoft Windows和几乎所有操作系统。

    VisualBasic .Net  & VisualBasic & VS

    —— VisualBasic .Net - 是微软公司推出的一种面向对象编程语言,对于开发.Net程序以及web程序和XML web服务这样的专业领域程序来说,这是一个很好的选择。

    Microsoft Visual Studio是VS的全称。VS是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.Net Core、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。

    Microsoft Visual C++简称Visual C++、MSVC、VC++或VC)是微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++集成了便利的除错工具,特别是集成了微软Windows视窗操作系统应用程序接口(Windows API)、三维动画DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2017。

    Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。

    Visual Basic.NET是基于微软.NET Framework之上的面向对象的编程语言。其在调试时是以解释型语言方式运作,而输出为EXE程序时是以编译型语言方式运作。可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持。大多的VB.Net程序员使用Visual Studio .Net作为IDE(integrated development environment).SharpDevelop是另一种可用的开源的IDE。VB.Net需要在.Net Framework平台上才能执行。

    VB.NET不是单单开发web应用程序那么简单,还可以开发windows应用程序,PDA程序,WEB服务等。VB.NET的功能很强大,FOXMAIL是用DELHPI写的,但是用VB.NET也能写。VB已经过时了,我们没有理由不从VB上过渡到VB.NET上。

    .NET程序对运行环境是没有特别的要求的,只要安装了.net framework,它就能在上面运行(不管是windows系统,还是Liunx系统,甚至是PDA)。微软的.NET和Sun公司的JAVA基本上类似,都是需要平台的,Java需要虚拟机,.NET程序需要.net framework。支持拖拽布局。

    Haskell

    ——  Haskell统治着函数式编程的世界。和面向对象编程相比,函数式编程具有完全不同的哲学理念。函数式编程在分布式系统开发中应用广泛,分布式系统开发的关键需求是并行执行和并发性。人工智能和数学计算是函数式编程的又一应用领域,Haskell的应用同样如此。

    Haskell 是函数式(一切通过函数调用来完成)、静态、隐式类型(类型由编译器检测,类型声明不是必需的)、惰性(除非必要,否则什么也不做)的语言。其最大众化的近亲大概是 ML 族语言(不过不是惰性的)。

    Delphi/Object Pascal

    ——Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。

    Delphi是一个集成开发环境(IDE),使用的是由传统Pascal语言发展而来的Object Pascal语言。它在本质上是一个代码编辑器而不是一种语言,但是由于Delphi是几乎是市场上唯一一个使用Pascal语言的产品,因此有的时候Delphi也成为了人们称呼Object Pascal的代名词。Borland公司已经把Object Pascal语言改称为Delphi语言。

    Groovy

    ——Groovy是一种基于JVM(Java虚拟机)的敏捷的动态语言,也是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。(注:动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的)

    它构建在强大的Java语言之上并添加了从Python,Ruby和Smalltalk等语言中学到的诸多特征,例如动态类型转换、闭包和元编程(metaprogramming)支持。

    它在设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。

     

    参考:各种编程语言这间的关系图

    参考:计算机编程语言分类与简介

    参考:计算机编程语言分类与简介

    参考:https://www.tiobe.com/tiobe-index/

    展开全文
  • Solidity编程语言

    2021-03-20 23:52:04
    Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。 Solidity 是静态类型语言,支持继承、库和...

    Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。
    Solidity 是静态类型语言,支持继承、库和复杂的用户定义类型等特性。 Solidity 编程的推荐方式是使用 Remix。Remix是一个基于 Web 浏览器的 IDE,它可以
    让你编写 Solidity 智能合约,然后部署并运行该智能合约。Solidity 源
    码文件通常以 .sol 作为扩展名。

    以太坊底层基于帐户,而不是 UTXO,所以增加了一个特殊的address 的数据类型用于定位用户和合约账户。

    语言内嵌框架支持支付。提供了 payable 等关键字,可以在语言层面直接支持支付。
    使用区块链进行数据存储。数据的每一个状态都可以永久存储,所以在使用时需要确定变量使用内存,还是区块链存储。

    运行环境是在去中心化的网络上,所以需要强调合约或函数执行的调用的方式。
    不同的异常机制。一旦出现异常,所有的执行都将会被回撤,这主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。

    Solidity源码和智能合约
    Solidity 源代码要成为可以运行在以太坊上的智能合约需要经历如下的
    步骤:

    1. 用 Solidity 编写的智能合约源代码需要先使用编译器编译为字节码(Bytecode),编译过程中会
      同时产生智能合约的二进制接口规范(Application Binary Interface,简称为ABI);
    2. 通过交易(Transaction)的方式将字节码部署到以太坊网络,每次成功部署都会产生一个新的智
      能合约账户;
    3. 使用 Javascript 编写的 DApp 通常通过 web3.js + ABI去调用智能合约中的函数来实现数据的读取
      和修改。
      1.4 合约结构
      状态变量(State Variables)作为合约状态的一部分,值会永久保存在存储空间内。
      函数(Functions)合约中可执行的代码块。
      函数修饰器(Function Modifiers)在函数声明中,用来补充修饰函数的语义。
      事件(Events)非常方便的 EVM 日志工具接口。

    remix安装以及使用

    1. 浏览器端配置
      在浏览器端有俩个选择,分别为英文版与中文版(有些许差别)
      Remix中文版地址:http://remix.hubwiz.com
      Remix英文版地址(推荐):https://remix.ethereum.org/
      -----此处,不同的地方讲解区块链代码用的语言不同,之前听的是用的rust语言,也不太懂,没有及时去看开源的内容。

    在这里插入图片描述

    创建新文件
    创建新文件夹
    Github代码片段分享
    表示打开一个本地文件

    pragma solidity ^0.4.0; contract SimpleStorage { uint storedData; function set(uint x) public { storedData = x; }function get() public view returns (uint) { return storedData; } }

    该合约能完成的事情并不多(由于以太坊构建的基础架构的原因):它能允许任何人在合约中存储一个单独的数字,并且这个数字可以被世界上任何人访问,且没有可行的办法阻止你发布这个数字。当然,任何人都可以再次调用 set ,传入不同的值,覆盖你的数字,但是这个数字仍会被存储在区块链的历史记录中。

    NAME :合约名
    METADATA :一些编译相关的信息,比如版本、所用的语言、设置等
    BYTECODE :写入区块的字节码
    ABI :此智能合约对应的 ABI ,也就是我们合约里面定义的一些接口
    WEB3DEPLOY :智能合约编译之后的发布命令,这个就是比较重要的,之后的web3就是调用这段命令来部署合约的
    METADATAHASH :数据的一个哈希值
    SWARMLOCATION :Swarm网络的一个地址
    FUNCTIONHASHES :合约定义的方法的hash,其实我们执行合约的时候就是通过这个hash去找到对应的方法进行执行的
    GASESTIMATES :关于矿工费的一个预算,在ETH上进行合约的部署,执行等都是需要矿工费的。一般合约代码越多矿工费越高。
    点击下面的run图标,可以看到部署,以及账户信息,环境等等

    点击deploy之后天可以看到自己的合约已经部署完成,打开之后可以看见我们写的函数 set , get 了,给 set 函数输入一个值,点击 get 会得到相应的值

    Environment 表示合约部署的环境。 Javascript VM 是虚拟了一个节点,而 Injected Web3 和 Web3 Provider 则真正连接一个节点。
    Account 代表不同的虚拟账户,每个虚拟账户每个有 100 ETH
    Deploy 表示合约部署按钮
    Deployed Contracts 表示已经部署的合约

    Solidity基础操作
    Solidity源文件布局
    源文件可以被版本杂注pragma所注解,表明要求的编译器版本
    例如:
    pragma solidity ^0.4.0;

    import “filename”;
    import * as symbolName from “filename”;

    import {symbol1 as alias, symbol2} from “filename”;
    import “filename” as symbolName;

    Solidity值类型介绍
    函数
    内部函数调用
    外部函数调用
    数据位置
    数组
    涉及 LValues 的运算符
    单位和全局变量
    特殊变量和函数
    控制结构
    创建合约
    getter 函数
    View 函数
    Pure 函数

    这个后面类似于学Python,从数值类型到数据结构,建仓,调用函数包等。

    展开全文
  • 作为编程语言中的大腕。具有最大的知名度和用户群。无论风起云涌,我自巍然不动。他强任他强,清风拂山岗;他横由他横,明月照大江(牛逼!)。 2. c# 执行速度快(4.28),学习难度适中,开发速度适中。但是由于c#...

    1. Java

    编译语言,速度适中(2.67s),目前的大型网站都是拿java写的,比如淘宝、京东等。主要特点是稳定,开源性好,具有自己的一套编写规范,开发效率适中,目前最主流的语言。

    作为编程语言中的大腕。具有最大的知名度和用户群。无论风起云涌,我自巍然不动。他强任他强,清风拂山岗;他横由他横,明月照大江(牛逼!)。

    2. c#

    执行速度快(4.28),学习难度适中,开发速度适中。但是由于c#存在很多缺点,京东、携程等大型网站前身都是用c#开发的,但是现在都迁移到了java上。

    3. C/C++

    现存编程语言中的老祖,其他语言皆由此而生。执行速度最快无人能及。但是写起来最为复杂,开发难度大。

    4. Javascript

    编程语言中特立独行的傲娇美女。前端处理能力是其它语言无法比拟。发展中的js后端处理能力也是卓越不凡。前后端通吃,舍我其谁?

    5. Python

    脚本语言,速度最慢(258s),代码简洁、学习进度短,开发速度快。豆瓣就是拿python写的。Python著名的服务器框架有django,flask。但是python在大型项目上不太稳定,因此有些用python的企业后来迁移到了java上。

    6. scala

    编译语言,比python快十倍,和java差不多,但是学习进度慢,而且在实际编程中,如果对语言不够精通,很容易造成性能严重下降。,后来比如Yammer就从scala迁移到了java上。微服务框架有lagom等。

    7. Go

    编程界的小鲜肉。高并发能力无人能及。即具有像Python一样的简洁代码、开发速度,又具有C语言一样的执行效率,优势突出。

    总结

      因为Go的语法和Erlang、Python类似,所以我们将这三门语言做个详细的对比。

      相比于Python的40个特性,Go只有31个,可以说Go在语言设计上是相当克制的。比如,它没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,也没有继承,没有泛型,没有异常,没有宏,没有函数修饰,更没有线程局部存储。

      但是Go的特点也很鲜明,比如,它拥有协程、自动垃圾回收、包管理系统、一等公民的函数、栈空间管理等。

      Go作为静态类型语言,保证了Go在运行效率、内存用量、类型安全都要强于Python和Erlang。

      Go的数据类型也更加丰富,除了支持表、字典等复杂的数据结构,还支持指针和接口类型,这是Python和Erlang所没有的。特别是接口类型特别强大,它提供了管理类型系统的手段。而指针类型提供了管理内存的手段,这让Go进入底层软件开发提供了强有力的支持。

      Go在面对对象的特性支持上做了很多反思和取舍,它没有类、虚函数、继承、泛型等特性。Go语言中面向对象编程的核心是组合和方法(function)。组合很类似于C语言的struct结构体的组合方式,方法类似于Java的接口(Interface),但是使用方法上与对象更加解耦,减少了对对象内部的侵入。Erlang则不支持面对对象编程范式,相比而言,Python对面对对象范式的支持最为全面。

      在函数式编程的特性支持上,Erlang作为函数式语言,支持最为全面。但是基本的函数式语言特性,如lambda、高阶函数、curry等,三种语言都支持。

      控制流的特性支持上,三种语言都差不多。Erlang支持尾递归优化,这给它在函数式编程上带来便利。而Go在通过动态扩展协程栈的方式来支持深度递归调用。Python则在深度递归调用上经常被爆栈。

      Go和Erlang的并发模型都来源于CSP,但是Erlang是基于actor和消息传递(mailbox)的并发实现,Go是基于goroutine和管道(channel)的并发实现。不管Erlang的actor还是Go的goroutine,都满足协程的特点:由编程语言实现和调度,切换在用户态完成,创建销毁开销很小。至于Python,其多线程的切换和调度是基于操作系统实现,而且因为GIL的大坑级存在,无法真正做到并行。

    展开全文
  • )以及Wikipedia、Amazon、YouTube和Baidu(百度)统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。 TIOBE开发语言排行榜每月更新一次,依据的...
  • Shell编程语言

    2021-03-04 18:02:39
    Shell是一门编程语言,作为学习shell的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? ​ 编程的目的: #计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照...
  • 最近看到有人说国产操作系统鸿蒙底层采用英文编程语言,这里我发表几点看法。 程序员写程序我想现在的阶段暂时也离不开英文,虽然有很多人都想中文编程,但是谈何容易,一个角度来看,华为作为中国高新科技产业链...
  • 华为开发者大会 2021(Together)上,Harmony OS 3 开发者预览版正式发布,华为鸿蒙又是一个历史性的...编程语言是计算机科学与应用中一个基础的工具,但截至目前市面上尚无中国企业主导开发的主流编程语言,在其他底层
  • 以史为鉴——主流编程语言的历史 计算机技术的演进 编程语言 编程语言的种类 高级语言 超级语言 本篇是稍微科普类的文章,谈及计算机发展的几个阶段与一些主流编程语言的历史。博主在此分享给大家的原因是:“它对...
  • 主要内容:一、编程语言分类和介绍二、Python解释器分类和介绍一、编程语言分类和介绍1、编程语言分类2、编程语言的介绍2.1 机器语言定义:计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器...
  • node底层是什么语言

    2021-06-09 01:38:34
    node.js 使用C++开发的。 它是JS运行平台(运行环境)。它的语法就是javascript,区别在它是运行在服务器上的。证据 :node的源码在 ... 以上就是node底层是什么语言?的详细内容,更多请关注html中文网其它相关文章!
  • 小刘是一名出色的软件工程师,能流畅的使用5种编程语言打印 hello world。一天他的准岳父(养老院院长)找到他,拜托他一件事:教养老院的老人们编程,不用太难,体验一把思想就行了院长,别说了,拔刀吧小刘内心是...
  • 编程是让计算机用编程语言编写程序代码来解决问题,并最终获得正确的过程. 市场上的主流编程几乎总是英语,例如C语言,C#,C ++中文编程吗?计算机起源于美国. 由于计算机的底层只能识别诸如000111之类的字符,因此...
  • python是一种跨平台、开源、免费的高级动态编程语言,对。python具有简单、易学、速度快、免费、开源、可移植性、可扩展性、丰富的库等优点。python语言极其容易上手,它是一种代表简单主义思想的语言。python是一种...
  • 编程语言处在不断的发展和变化中,最初的机器语言发展到如今的2500种以上的高级语言,每种语言都有其特定的用途和不同的发展轨迹。编程语言并不像人类自然语言发展变化一样的缓慢而又持久,其发展是相当快速的,这...
  • 7日TIOBE公布了2020年10月编程语言排行榜。官方标题为:Python正接近第二名。其中Python的受欢迎程度已经十分逼近排在第二位的Java,本月排名率为11.28%,达到历史新高。*TIOBE2020年10月排行榜前20名TIOBE榜单以来...
  • php底层是什么语言

    2021-04-08 10:05:18
    php底层是C语言,故如果想研究底层代码需要掌握C言语相关知识。PHP本身是用C实现的,因此最终调用的也都是C的函数,实际上,可以把PHP看成是一个C开发的软件。(推荐学习:PHP视频教程)php的zend引擎,包括词法分析,...
  • Serpent翻译成中文意思是"大蛇",如这个名字所示,这是一种与Python类似的编程语言。Serpent在兼顾底层语言效率与良好编程风格的同时尽可能的追求简洁,还加入了一些针对合约编程的特性。Serpent编译器由C++实现,...
  • Python 英文本意为"蟒蛇”,直到 1989 年荷兰人 Guido van Rossum (简称 Guido)发明了一种面向对象的解释型编程语言(后续会介绍),并将其命名为 Python,才赋予了它表示一门编程语言的含义。 图 1 Python ...
  • Java编程语言基础

    2021-04-18 11:46:59
    Java编程语言基础 一、标识符 1、什么是标识符? -在java源程序当中凡是程序员有权利自己命名的单词都是标识符 -标识符可以标识什么元素呢? *类名 *方法名 *变量名 *接口名 *常量名 … 2、标识符的命名规则?(不...
  • golang底层用什么语言实现的Go runtime的调度器:在了解Go的运行时的scheduler之前,需要先了解为什么需要它,因为我们可能会想,OS内核不是已经有一个线程scheduler了嘛?熟悉POSIX API的人都知道,POSIX...
  • 51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程。51单片机的编程51单片机进入中国比较早,在早前用汇编编程比较多,我在上大学时也是学习的汇编编程...
  • 专业研发智能化运动控制类、数据采集类产品厂家-精敏数字机器推出新产品控制器:JMDM-2011中文编程运动控制器。应市场很多客户的要求,专为不了解C语言编程控制的客户研发的一款可以用中文指令进行编程控制的产品...
  • TIOBE编程语言排行榜TIOBE编程语言排行榜,每月更新一次,依据的指数是基于世界范围内的资深软件工程师和第三方供应商提供,其结果作为当前业内程序开发语言的流行使用程度的有效指标。该指数可以用来检阅开发者的...
  • 010 深入理解Python语言

    2020-12-29 06:16:15
    一、概述计算机技术的演进编程语言的多样初心Python语言的特点"超级语言"的诞生二、计算机技术的演进2.1 计算机技术的演进过程---2017-人工智能时代人类的问题2008-2016复杂信息系统时代数据问题1981-2008网络和视窗...
  • 【单选题】以下关于Python... Python比大部分编程语言具有更多相关问题选择方框中所给词的适当形式填空。(每小题1分,共5分)lead,satisfy,choose,immediate,effort小题1:If you wan根据汉语提示完成句子(10分)小题1...
  • Webots编程语言设置

    2021-02-26 15:35:49
    例如,当在.wbt文件中将控制器名称指定为“ xyz_controller”时,则不会说任何有关控制器的编程语言或平台信息。以确保.wbt文件独立于平台和编程语言。 当Webots尝试启动控制器时,首先必须确定该控制器使用哪种...
  • Arduino单片机(一).开发软件的安装及编程语言
  • B编程语言学习

    2021-09-08 01:24:13
    数据结构和算法 学完之后刷leetcode(剑指offer) 计算机网络 tcp/ip 协议栈(tcp/ip详解) 操作系统 进程和线程 并发 和锁 内存分布调度等等 (深入理解操作系统) 设计模式 单例 工厂 代理 策略模式 模版方法...
  • 二、产品介绍 新官网对VCN做了一个简单的介绍:VCN(全称“VcnStudio”)是一款简单、强大、实用的中文集成开发环境,用户可以使用VCN通过中文编程语言方便快速地开发安卓、小程序、WEB、脚本、PC程序等应用或软件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,742
精华内容 20,696
关键字:

中文编程语言要从底层开始