精华内容
下载资源
问答
  • 定义  通常我们所说的动态语言、静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically...还有一个 Dynamic Programming Language (动态编程语言),静态编程语言。 动态类型语言:在运

    转自http://haohetao.iteye.com/blog/589070

    定义 
    通常我们所说的动态语言、静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Language)。
    还有一个 Dynamic Programming Language (动态编程语言),静态编程语言。

    动态类型语言:在运行期间检查数据的类型的语言。用这类语言编程,不会给变量指定类型,而是在附值时得到数据类型。如:Python和ruby就是典型动 态类型语言。很多脚本语言vbscrīpt,javascrīpt也是这类语言。看下面javascrīpt代码:

    function add(a,b){
    return a+b;
    }
    add(1,2);
    add('1',2);



    静态类型语言:相反静态类型语言是在运行前编译时检查类型。在写代码时,没声明一个变量必须指定类型。如:java,c#,c,c++等等。
    public int add(int a,int b){
    return a+b;
    }
    其实比较一下代码,你很快就会发现,其实区分动态静态类型语言从语法上就够了,语言语法格式基本就可确认动静态类型。

    Dynamic Programming Language (动态编程语言)指在程序运行过程中可以改变数据类型的结构,对象的函数,变量可以被修改删除。比如:javascrīpt就是这类语言,ruby, python也属于这类语言。而c++,java不属于这类语言。看javascrīpt代码:

    function Person(name){
    this.name=name;
    }
    Person.prototype.getName=function(){
    return this.name;
    }
    var person=new Person("okok");
    alert(person.getName());
    person.getName=function(){return "nono"};
    alert(person.getName());



    当然静态编程语言 是运行时不可改变结构了。

    网上有人说 类型检查和改变结构 是静态语言和动态语言两个区别点。基本概念上应该就这些,是我个人理解,不一定完全正确。个人感觉没必要很清晰分门类,掌握优点、特点就好了。这个话题说开根本不是我能说清楚的。总结思考一下。

    有三个名词容易混淆:

    1. Dynamic Programming Language (动态语言或动态编程语言)
    2. Dynamically Typed Language (动态类型语言)
    3. Statically Typed Language (静态类型语言)

    FantasySoft在他文章中所提到的动态语言与静态语言实际上指的就是动态类型语言与静态类型语言。

    动态语言,准确地说,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的 ECMAScript(JavaScript)便是一个动态语言。除此之外如Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态 语言。

    所谓的动态类型语言,意思就是类型的检查是在运行时做的,比如如下代码是不是合法的要到运行时才判断(注意是运行时的类型判断):

    defsum(a,b): 
      return a + b 

    而静态类型语言的类型判断是在运行前判断(如编译阶段),比如C#就是一个静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继 承、接口,而动态类型语言却不需要,所以一般动态语言都会采用dynamic typing,常出现于脚本语言中。(idior不知道这能不能回答你对动态语言多态的疑问^_^)

    这里我需要明确说明一点,那就是,是不是动态类型语言与这门语言是不是类型安全的完全不相干的,不要将它们联系在一起!

    静态类型语言的主要优点在于其结构非常规范,便于调试,方便类型安全;缺点是为此需要写更多的类型相关代码,导致不便于阅读、不清晰明了。动态类型 语言的优点在于方便阅读,不需要写非常多的类型相关的代码;缺点自然就是不方便调试,命名不规范时会造成读不懂,不利于理解等。顺便说一下,现在有这样一 种趋势,那就是合并动态类型与静态类型在一种语言中,这样可以在必要的时候取长补短,Boo就是一个很好的试验性例子。^_^

    最后说一下Boo,Boo是一个静态类型语言,虽然用duck typing可以模拟dynamic typing,但是duck并不支持所有类型的操作替代,所以即使完全使用duck typing也不能达到dynamic typing。就像FantasySoft所述,Type Inference不是动态类型语言的特性,所以支持Type Inference不代表这门语言就是dynamically typed。

    再特地为Ninputer 这个VB的fans说一下VB.NET^_^,VB.NET是dynamically typed语言。

    展开全文
  • 编程语言类型系统

    千次阅读 2014-12-21 15:56:21
    每学一门新的编程语言时,在看到介绍该门编程语言的特点时,经常会遇到 静态、动态、强、弱 、隐式、显式 类型等字样,似懂非懂,这里结合网上的资料总结一下它们的含义以及区别,描述不一定专业、准确,但求能...

    每学一门新的编程语言时,在看到介绍该门编程语言的特点时,经常会遇到 静态动态 、隐式显式 类型等字样,似懂非懂,这里结合网上的资料总结一下它们的含义以及区别,描述不一定专业、准确,但求能进一步理解这些词的概念即可。

    类型系统(Type System)用于定义如何将编程语言中的数值和表达式归类为许多不同的类型,如何操作这些类型,这些类型如何互相作用。根据这些种种不同,可以将编程语言分为以下类别:

    静态类型编程语言 vs 动态类型编程语言

    在静态类型语言,每个变量名字都绑定到:

    • 一个类型,编译时通过变量的定义来绑定
    • 一个对象,这是可选的,如果变量名没绑定到一个对象,那么名字指向 null

    例如下面是 Java 中定义字符串类型变量:

    String str1;        //reference to null
    String str2 = "Hello world";   
    

    定义了两个变量 str1、str2,它们的类型均是 String 类型,而 str1 并没有指向特定的对象,但 str2 指向了一个 "Hello world" 的字符串对象。

    注意的是,静态类型的编程语言,一旦变量名绑定到一个类型(通过声明语句),那么它就只能绑定到这种类型的对象上(通过赋值语句)。如果试图该某种类型的变量绑定到不同类型的对象上,将在编译时抛出类型异常的错误。

    例如下面的代码将一个整型的对象赋值给 String 类型的变量会报错:

    String str1;
    str = 10;
    

    而在动态类型语言中,每个变量名只于对象进行绑定。在程序运行时通过赋值操作来将名字绑定到对象上,如果再将名字绑定到另一种不同类型的对象上也是允许的。

    例如下面是 Python 中代码:

    var = "Hello world"
    //...
    var = 10
    

    先将 var 变量赋值一个 "Hello world" 字符串对象,运行过程中随时可以将 var 赋值其它类型的对象。这在 Python 中并不会报错。

    下图可以反应两者的区别:

    static-dynamic-typed-language

    由上可以看出 Java、C/C++、C# 等属于静态类型编程语言,而 Python、PHP、Perl 等属于动态类型语言。

    强类型编程语言 vs 弱类型编程语言

    根据变量能否隐式(implicit)转换为无关(unrelated)的类型,可以将编程语言分成弱类型编程语言和强类型编程语言,前者可以完成转换,后者则需要通过显式(explicit)地转换。注意这里的无关类型转换指的是类似于数值类型与字符串类型的转换,而大多数语言允许相关类型之间的隐式转换,例如 int 类型到 float 类型的转换。

    在弱类型编程语言中,数字 9 和字符串 "9" 是可以相互转换的,例如下面的代码是合法的:

    a  = 9
    b = "9"
    c = concatenate(a, b)  // produces "99"
    d = add(a, b)          // produces 18
    

    但是在强类型编程语言中,后面两条语句会抛出类型异常,为了避免这些异常,我们往往需要通过一些显式类型转换操作来完成:

    a  = 9
    b = "9"
    c = concatenate(str(a), b)
    d = add(a, int(b) )
    

    根据上面的描述,我们可以知道像 Python、Java 等属于强类型编程语言,而 Perl、PHP 等属于弱类型编程语言。

    显式类型编程语言 vs 隐式类型编程语言

    还有一种区分方法是,根据变量名是否需要显式给出类型的声明,来将语言分为显式类型语言和隐式类型语言。前者需要在定义变量时显式给出变量的类型,而后者可以使用类型推论来决定变量的类型。

    大多数静态类型语言,例如 Java、C/C++ 都是显式类型语言,但是有些则不是,如 Haskell、ML 等,可以基于变量的操作来推断其类型;Scala 是一种新型的静态类型编程语言,它运行在 Java 虚拟机上,也是使用的是类型推断;Boo 是一种类 Python 编程语言,运行在 .NET CLI 之上,使用的是类型推断。

    总结

    这篇文章只是给出了一个非形式化定义,旨在理解各种不同编程在类型系统的设计思想,当然本文只提到类型系统的冰山一角。

    本文绝大数内容编译自这篇文章,还参考 知乎问答,wiki 相关词条,特致谢!

    展开全文
  • 如果编程语言是一门武功绝学

    万次阅读 多人点赞 2021-05-22 16:30:06
    在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起,掌握了一门编程语言后,再学习另一门语言就会快很多,如同拥有内功后,习得其他武功也会轻松很多。 如果编程语言是一门武功绝学,各语言分别...

    学习编程与武功绝学

    武侠小说中,各路侠客绿林好汉都是从基本功开始一招一式学起,掌握了足够多的招式后,加之勤学苦练,量变引起质变,会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑,成为一代宗师。在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起,掌握了一门编程语言后,再学习另一门语言就会快很多,如同拥有内功后,习得其他武功也会轻松很多。

    如果编程语言是一门武功绝学,各语言分别是哪门武功绝学呢?

    程序员必备资源,值得收藏!点击下载

    汇编语言

    汇编语言 - 易筋经

    汇编语言是计算机提供给用户的最快最有效的语言,也是能够利用计算机的所有硬件特性并能够直接控制硬件的唯一语言。采用它编写的程序具有存储空间占用少、执行速度快的特点,这些是高级语言所无法取代的。通常用在最底层的程序优化,硬件操作或嵌入式编程的场合,已经很少有人直接编写汇编。

    《天龙八部》中扫地僧练的就是少林派的独家秘法易筋经。扫地僧除了扫地之外,做的唯一一件事,就是参悟易筋经,几十年的修为,练就一门绝世武功,高深莫测,无坚不摧,高效,无招胜有招。

    C 语言

    C 语言 - 九阳神功

    C 语言是一门面向过程的计算机编程语言,与 C++、Java 等面向对象编程语言有所不同。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C 语言主要用途除了实现编程语言底层功能,还应用在实现操作系统,还在通讯领域也有很大的用武之地。虽然相对用来开发应用层面稍微显得笨拙一点,但是在讲究效率的底层发挥空间非常巨大。

    C 语言高效、灵活、功能丰富、表达力强、作为一门基础的底层语言与九阳神功偏内功是一致的,九阳真经着重内力,不重招法,里面阐述的其实也主要是“刚柔并济”的道理。一代武当宗师张三丰,就是以九阳内功为基础,才创制了武当一脉功夫。所以学好 C 语言,有强大的内功后,再学习其他语言就会相对轻松。

    C++

    C++  - 九阴真经

    C++ 是 C 语言的继承,它既可以进行 C 语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。与 C 语言相比 C++ 增加了以下方面:

    • 类型检查更为严格

    • 增加了面向对象的机制

    • 增加了泛型编程的机制(Template)。

    • 增加了异常处理。

    • 增加了运算符重载。

    • 增加了标准模板库(STL)。

    如果 C 语言是偏内功的九阳神功,那么 C++ 无异于《九阴真经》,两者都是很基础的,并且两者间有近缘,这两门掌握精通之后天下武学皆能容易掌握。。

    《九阴真经》偏重招式,威力强大、博大精深,包含无数神奇招术(内功、轻功、拳、掌、腿、刀法、剑法、杖法、鞭法、指爪、点穴密技、疗伤法门、闭气神功、移魂大法等等),诡秘莫测,义理艰深难学,C++ 同样包含很多内容,还在不停的延申,复杂、强大、百科全书式的语言、在大规模项目面前几乎无其他语言可及。

    C++ 跟《九阴真经》一样,有很多误区容易陷入,比较突出的问题就是内存泄漏,如果使用不当,很容易落得跟周芷若、欧阳锋、梅超风等一样走火入魔。

    java

    java - 小无相功

    Java 是一门面向对象编程语言,不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 难以理解的多继承、指针等概念,因此 Java 语言具有功能强大和简单易用两个特征。Java 语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

    Java 具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java 可以编写桌面应用程序、Web 应用程序、分布式系统和嵌入式系统应用程序等。

    小无相功是金庸武侠小说《天龙八部》中「逍遥派」的一门内功,威力强大。只要身具此功,再知道其他武功的招式,倚仗其威力无比,可以模仿别人的绝学甚至胜于原版,没有学过此功的人很难分辨。这一特点与 Java 的分布式、解释性、可移植性、多线程、动态执行类似。

    Java 体系庞大又提供很多网络技术的支持,正如小无相功为根基运行少林七十二绝技,而jvm体系又如同逍遥派体系。门下弟子众多又出类拔萃,名声显赫,博采众长,独步天下。

    python

    python - 太极

    Python 是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。可以应用于以下领域:

    • Web 和 Internet开发

    • 科学计算和统计

    • 人工智能

    • 桌面界面开发

    • 软件开发

    • 后端开发

    • 网络爬虫

    Python 语言的简洁性、易读性与太极入门简单类似,但是要达到一定高度也需要长期锻炼,同样达到的效果也极高,精通后威力也巨大,可以以柔克刚,与太极一样 Python 速度慢。

    Go语言

    Go语言 - 北冥神功

    Go(又称Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

    Go 的语法接近 C 语言,但对于变量的声明有所不同。Go 支持垃圾回收功能。

    与 C++ 相比,Go 并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。

    GO 语言的关键特性主要包括以下几方面:

    • 并发与协程

    • 基于消息传递的通信方式

    • 丰富实用的内置数据类型

    • 函数多返回值

    • defer机制

    • 反射(reflect)

    • 高性能HTTP Server

    • 工程管理

    • 编程规范

    语言容易上手,解决了并发编程和写底层应用开发效率的痛点,有 Google 这个世界一流的技术公司在后面支撑,杀手级应用 Docker 的生态圈在这几年完全爆棚。所以,Go 语言的未来是不可限量的。可能会吞食很多 C、C++、Java 的项目。

    北冥神功,金庸小说《天龙八部》中「逍遥派」最高武学,练成北冥神功后,全身每处穴道皆可吸人内力,且兼容天下武功。剧毒不侵。强凶霸道,随手攻击便有莫大威力。真气护体防御大增,受到攻击时反震敌人。速度大增。这些特点与 Go 语言速度极快、性能强、效率高、先进的并发支持模型和丰富的标注库有类似的地方。

    object-c

    object-c - 独孤九剑

    Objective-C 感觉是 C 语言体系中比较出色的大师兄,然后自立门户,不过还会 C 语言,Objective-C 是一种在C的基础上加入面向对象特性扩充而成的编程语言,可以把 Objective-C 看成是 ANSI 版本 C 语言的一个超集,它支持相同的 C 语言基本语法,同时它还扩展了标准的 ANSI C 语言的语法。

    独孤九剑在武功体系里比较独特与 object-c 是苹果开发软件的语言类似,与 object-c 类似风清扬的独孤九剑剑法同样潇洒、优雅、进攻大于防守。

    JavaScript

    JavaScript - 吸星大法

    JavaScript 直译式脚本语言,是一种动态类型、弱类型、基于原型的语言。动态性和跨平台性强。

    JavaScript的优势:

    • 快速的终端反应:Java 脚本为客户端编写,不需要服务器端支持就可运行。也不需要在客户端被编译提高速度优势。在用户电脑上作为脚本执行,依靠任务,结果几乎是立即完成的。

    • 简洁性:JavaScript 很容易学习和实现。提供大量的预编制的功能性对象代码,使得开发一个满足用户需要的脚本变得轻而易举。

    • 用途广泛:JavaScript 和其他语言可以很好的交互,并且广泛应用于各个领域。

    由于 Javascript 的发展非常快,Javascript推出一年半之后,国际标准就问世了。过早的标准化,Javascript 的规格还没来及调整,就固化了。设计缺陷还没有充分暴露就成了标准。例如:

    • 不适合开发大型程序,没有名称空间,很难模块化;允许同名函数的重复定义,后面的定义可以覆盖前面的定义,很不利于模块化加载。

    • 非常小的标准库,只能完成一些基本操作,很多功能都不具备。

    • 全局变量难以控制。

    • 数组和对象的区分,由于 Javascript 的数组也属于对象(object),所以要区分一个对象到底是不是数组,不是很清晰。

    吸星大法,出自金庸的武侠小说《笑傲江湖》,是日月神教教主任我行修习的武功,任我行仗以威震江湖的绝学。修炼者有任我行、令狐冲,唯一害处是有内力反噬之险。同为吸取别人内力的一流武功。给人的感觉就是北冥神功是正版,化功大法是盗版,吸星大法是删减版。

    JavaScript 如同吸星大法 用好了神奇,能最简单实现目的,标准有删减的缺陷,用不好控制,还可能反噬。

    C#

    C# - 蛤蟆功

    C# 的声音,如同蛤蟆功不受待见一样。是微软公司发布的一种由 C 语言 和 C++ 衍生出来的面向对象的编程语言、在继承 C 语言 和 C++ 强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C# 综合了 VB 简单的可视化操作和 C++ 的高运行效率,以 .NET 框架类库作为基础,拥有类似 VB 的快速开发能力,完全面向对象和类型安全。

    由于 C# 是后生,所以其很多语法都是其它语言的改进。从整体看,C# 语法比 java 更优雅。支持事件、委托、属性、Linq等一系列让业务开发更简单的功能。

    仅能运行在Windows平台)使其渐渐被排斥于主流之外。如今偏居一隅,难以影响中原大势。

    蛤蟆功,欧阳锋独创,成为南宋时期天下武林五大高手之一,号称西毒。是一门极厉害的功夫。威力足以跟降龙十八掌打成平手,精神出问题的欧阳锋和洪七公一战也能打成平手,两人内力耗尽最终死在华山上,可见蛤蟆功的威力。

    与蛤蟆功一样,C# 功力深厚,刚出现时风光无限,但在 .net 庞大的类库下也显得有些臃肿,再加上仅能运行在 Windows 平台所以发展相对缓慢,出现了很多看不起 C# 的声音,如同蛤蟆功不受待见一样。

    PHP

    PHP - 降龙十八掌

    PHP 实用性强,跨平台强,效率高,容易部署,完全开源,支持几乎所有的流行的数据库及操作系统。

    PHP 是在服务器端执行的脚本语言,独特的语法混合了 C、Java、Perl 以及 PHP 自创的语法。利于学习,使用广泛,专注于 Web 开发,写中小型网站后台的首选。PHP 主流框架依然基于 MVC 模式,但也在不断地创新,比如 Codelgniter 框架,性能高、速度快,适用于共享主机;Seagull 则功能更加强大,代码库的标准化和模块化更高,同时也有较多的文档提供支持。

    缺点:

    • 对多线程支持不太好,大多数时候只能简单的模拟去实现的。

    • 语法不太严谨。

    • PHP的解释运行机制繁琐。

    每当有编程语言之争时,总有人说“ PHP 是世界上最好的语言”,当然,也有很多批评的声音,没有一种语言是被所有人接受,影响 PHP 声誉可能和 PHP 薪资有关,从“ PHP 是世界上最好的语言”这一点来说勉强与被扫地僧称为天下第一的降龙十八掌匹配。

    侠客 - 程序员

    如果把编程语言比喻为武功绝学,那么一代大师都是很牛逼的程序员。

    在武侠小说中,张三丰是位武学奇才,技击之术冠绝天下。如果放到现在来看,张真人的角色很可能是个天才程序员。师从觉远大师,学习了九阳神功,如果是程序员就是精通 从语言这门偏内功的语言,对以后的发展至关重要。后来张真人又学习了很多其他武功,自创了《太和功》、《九转玄功》、《纯阳功》等内息功法,是一位编程能力很高,创新能力不可小觑的程序员。

    在武侠小说中,绝顶高手,都不止会一门武功,天下之术,皆为我用,但是绝对有一门武功达到炉火纯青的地步,作为程序员不要想着集成和借鉴别人的东西,自己也需要“练武”。

    代码的世界,也是江湖。对编程思想理解越透彻,内功便深厚,多掌握一门语言,便是多了一门武艺。

    最后推荐一个很有料的资源仓库给大家:

    资源仓库,点击进入

    图片来源于网络,如有侵权,联系删除。

    免喷申明:本文纯属娱乐,水平有限,只写了几种语言,欢迎点赞,收藏,评论转发。

    展开全文
  • Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型、高级编程、通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程语言的优点,...

    5d1ab94017b78700.jpg

    Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型、高级编程、通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP。

    Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。

    相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。

    与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。

    Python 解释器本身几乎可以在所有的操作系统中运行。Python的其中一个解释器CPython是用C语言编写的、是一个由社群驱动的自由软件,当前由Python软件基金会管理。

    Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多重继承,有益于增强源代码的复用性。Python支持重载运算符,因此Python也支持泛型设计。相对于Lisp这种传统的函数式编程语言,Python对函数式编程只提供了有限的支持。有两个标准库(functools, itertools)提供了与Haskell和Standard ML中类似的函数式程序设计工具。

    虽然Python可能被粗略地分类为“脚本语言”,但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。

    Python的支持者较喜欢称它为一种高端动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shell script、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

    Python本身被设计为可扩展的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩展模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。

    因此,有很多人把Python作为一种“胶水语言”使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google应用服务引擎使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。

    《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004年,Python已在Google内部使用,Google召募许多Python高手,但在这之前就已决定使用Python。他们的目的是尽量使用Python,在不得已时改用C++;在操控硬件的场合使用C++,在快速开发时候使用Python。”

    Python的设计哲学是“优雅”、“明确”、“简单”。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”,也因此它和拥有明显个人风格的其他语言很不一样。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。这些准则被称为“Python格言”。在Python解释器内运行import this可以获得完整的列表。

    以上就是python是一种什么类型的编程语言的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • 编程语言 - 强弱/动静态类型

    千次阅读 2020-04-28 12:35:58
    了解编程语言的分类及显著的区别, 帮助理解编程语言的本质,和帮助快速学习一门新的语言. 2.学习/操作 1. 动静态类型 要理解一门语言是静态类型还是动态类型,最本质的判断方法是看在什么时间段对类型就...
  • n/)是一种广泛使用的解释型、高级编程、通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP。Python的设计哲学强调代码的可读性和...
  • C++编程语言中stringstream类介绍

    万次阅读 多人点赞 2018-09-10 23:20:54
    本文主要介绍 C++ 编程语言中 stringstream 类的相关知识,同时通过示例代码介绍 stringstream 类的使用方法。 1 概述 <sstream> 定义了三个类:istringstream、ostringstream 和 stringstream,分别用来...
  • 浅谈编程语言类型系统

    千次阅读 2019-03-11 21:56:35
    编程语言的核心定位为:基本数据类型+计算逻辑+语言规则设计(例如面向对象语言中的集成和实例化规则)。今天终于找到了对该思维的学术定义——类型系统。 二、类型系统解释 类型系统(type system)是一门编程语言最...
  • 编程语言

    千次阅读 2019-11-10 21:45:39
    编程语言学习 首先要思考学习编程语言的目的,目的是为了让计算机知道自己要干什么。只要能实现目的就行,当然花的时间成本越少越好。 机器语言太难,汇编有点难(不同的芯片还不一样),所以选择高级语言。 ...
  • 第四代编程语言_几代编程语言

    千次阅读 2020-07-20 09:46:05
    第四代编程语言 几代编程语言 (Generations of programming language) Programming languages have been developed over the year in a phased manner. Each phase of developed has made the programming language ...
  • 十大编程语言Lots of programming languages to choose from and you don’t know where to start? This listicle is for you! We’re discussing the best programming languages of 2020 today. 许多编程语言可供...
  • 编程语言的主要类型Common programming paradigms include imperative which allows side effects, functional which disallows side effects, declarative which does not state the order in which operations ...
  • 关于编程语言的静态类型、动态类型、编译型以及解释型的区别目录用 [TOC]来生成目录:关于编程语言的静态类型动态类型编译型以及解释型的区别目录 静态类型和动态类型的区别 编译型和解释性的区别 Java语言是静态...
  • SQL Server、JDBC 和 Java 编程语言数据类型之间的默认映射 下表列出了基本 SQL Server、JDBC 和 Java 编程语言数据类型之间的默认映射: SQL Server 类型 JDBC 类型 (java.sql.Types)
  • 另外编程语言除了编译型和解释型,还有静态语言、动态语言、强类型语言、弱类型语言。那么每种语言类型是什么样子的呢,下面让我们来看看吧。  但是在此之前,我们需要先了解一下计算机原因的发展史,从低级语言到...
  • 本文主要介绍在 C++ 编程语言中,将整型转换为字符串类型的具体方法。 1 使用to_string函数 在 C++11 标准中,可以使用 to_string 函数,将整型转换为字符串类型。 1.1 to_string函数介绍 to_string 函数的用法...
  • 编程语言种类

    万次阅读 2018-09-13 20:42:49
    编程语言种类 编程语言有很多种,常用的有C语言、C++、Java、C#、Python、PHP、JavaScript、Go语言、Objective-C、Swift、汇编语言等,每种语言都有自己擅长的方面,例如: 编程语言 主要用途 ...
  • C++编程语言中重载运算符(operator)介绍

    万次阅读 多人点赞 2018-06-11 16:40:12
    本文主要介绍在 C++ 编程语言中使用关键字 operator 重载运算符(也称“重载操作符”)的相关知识,同时通过示例代码介绍使用关键字 operator 重载运算符的具体方法。 1 概述 1.1 What operator 是 C++ 的一个...
  • atitit 编程语言课程 v1 t55.docx 1. 编程语言概念(what 5 1.1. 自然语言与编程语言的关系 5 1.2. 开发中常用的编程语言 5 1.3. 编程语言代际 5 1.4. 编程语言能力模型金字塔 6 2. 学习编程语言的用途 7 ...
  • C、Java、Python作为常据世界编程语言排行榜的前三甲,必然有其得天独厚的优势。以下是2021年5月最新的高级编程语言排行榜,可以看到,Python已经超越Java语言跃居世界第二位,为什么Python越来越受欢迎了呢?看完...
  • 编程语言分类

    万次阅读 2017-02-22 12:39:55
    有一种说法:一个好的计算机专业毕业生,应该掌握 一门面向过程的语言 一门面向对象语言 一门脚本语言 ...如果学有余力,最好 ...目前编程语言主要分为三大类: 1.机器语言 2.汇编语言 ...
  • 编程语言的编程模型

    千次阅读 2012-07-26 16:28:45
    编程模型 面向过程的语言 面向对象的语言 Ruby 基于栈的语言 PostScript, Forth 基于规则的语言 ...函数式编程语言 相同的输入得到相同的结果。内部不保存状态---> 不存在并发问题 ErLa
  • 编程语言中的数据类型

    千次阅读 2010-01-01 22:01:00
     为了方便程序员对数据进行操作,高级程序设计语言的实现一般都提供了基本数据类型。 程序员利用已有的数据类型来定义程序中用到的变量或常量。 对程序员来说,我们只需关心变量或常量的两个属性:第一,它的名字...
  • PLSQL编程语言

    千次阅读 2018-08-17 23:52:55
    PL/SQL编程语言 PL/SQL(Procedure Language/SQL) PL : P 过程化 L 语言 SQL:结构化查询语言 PLSQL 是 Oracle 对 sql 语言的过程化扩展, 指在 SQL 命令语言中增加了过程处理语句(如分支、循环等), 使 SQL ...
  • 本文主要介绍 C/C++ 编程语言中指针类型的空间占用情况。 1 示例程序 这里使用一个示例程序进行讲解,示例程序代码(pointer_sizeof.c)内容如下: #include <stdio.h> int main() { // 定义指向char...
  • 《用 C 语言开发一门编程语言 — 交互式解析器》 《用 C 语言开发一门编程语言 — 跨平台的可移植性》 《用 C 语言开发一门编程语言 — 语法解析器》 《用 C 语言开发一门编程语言 — 抽象语法树》 《用 C 语言开发...
  • 主流编程语言简述

    千次阅读 2020-08-05 18:04:28
    本文将简要的介绍一些主流的编程语言,对于一些没有列举到的,因为真的太多了,如果真的感兴趣,不放自己查一下它。本文介绍的编程语言简述的内容来自John Sonmez《软技能2 软件开发者职业生涯规划》和一些网上资源...
  • 编程语言总结

    千次阅读 多人点赞 2018-12-12 21:22:58
    学了C/C++,并了解了一点Python,对编程语言之间的共性有一点点自己的认识,总结如下: 1、编程语言的结构 语言本身是一种实现沟通烦人工具,从这个角度考虑,编程语言本身是一个实现人与计算机交流,从而控制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 812,375
精华内容 324,950
关键字:

编程语言类型